Groovy 使用属性展开的元素的动态值
指的是房地产扩张 soap请求的一个元素定义如下。Groovy 使用属性展开的元素的动态值,groovy,soapui,Groovy,Soapui,指的是房地产扩张 soap请求的一个元素定义如下。 ${=def list=[12,13,12];list.join(',')} 当请求被提交时,它会正确评估并发送请求,如下所示(来自原始请求): 12,13,12 但是,无法使其以如下所示的动态值工作,我的意思是它导致以下错误 ${=def a=(int)(Math.random()*5);def list=[];a.times{list.add((int)(Math.random()*1000))};list.join(',')} 但是当单独
${=def list=[12,13,12];list.join(',')}
当请求被提交时,它会正确评估并发送请求,如下所示(来自原始请求):12,13,12
但是,无法使其以如下所示的动态值工作,我的意思是它导致以下错误
${=def a=(int)(Math.random()*5);def list=[];a.times{list.add((int)(Math.random()*1000))};list.join(',')}
但是当单独运行时,相同的脚本运行得非常好。
错误如下:
启动失败:
Script16.groovy:1:应为“}”,在第1行第94列找到“”。
添加((int)(Math.random()*1000))
^
org.codehaus.groovy.syntax.SyntaxException:应为“}”,在第1行第94列找到“”。
位于org.codehaus.groovy.antlr.antlrpasserplugin.transformcstinoast(antlrpasserplugin.java:139)
在org.codehaus.groovy.antlr.antlrpasserplugin.parseCST(antlrpasserplugin.java:107)
位于org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236)
位于org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:163)
位于org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:839)
位于org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:544)
位于org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:520)
位于org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:497)
位于groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:306)
位于groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:287)
位于groovy.lang.GroovyShell.parseClass(GroovyShell.java:731)
位于groovy.lang.GroovyShell.parse(GroovyShell.java:743)
位于groovy.lang.GroovyShell.parse(GroovyShell.java:770)
位于groovy.lang.GroovyShell.parse(GroovyShell.java:761)
在com.eviware.soapui.support.scripting.groovy.soapuigroovysscriptengine.compile上(soapuigroovysscriptengine.java:148)
位于com.eviware.soapui.support.scripting.groovy.soapuigroovysscriptengine.run(soapuigroovysscriptengine.java:93)
位于com.eviware.soapui.model.propertyexpansion.resolvers.EvalPropertyResolver.doEval(EvalPropertyResolver.java:191)
位于com.eviware.soapui.model.propertyexpansion.resolvers.EvalPropertyResolver.resolveProperty(EvalPropertyResolver.java:170)
在com.eviware.soapui.model.propertyexpansion.PropertyExpander.expand上(PropertyExpander.java:180)
位于com.eviware.soapui.model.propertyexpansion.PropertyExpander.expandProperties(PropertyExpander.java:113)
位于com.eviware.soapui.impl.wsdl.submit.filters.PropertyExpansionRequestFilter.filterWsdlRequest(PropertyExpansionRequestFilter.java:45)
位于com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.FilterableStractHttpRequest(AbstractRequestFilter.java:37)
位于com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.filterRequest(AbstractRequestFilter.java:31)
位于com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:184)
位于com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:123)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
在java.util.concurrent.FutureTask.run(FutureTask.java:166)中
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:722)
原因:Script16.groovy:1:94:应为“}”,但找到了“”
位于groovyjarantlr.Parser.match(Parser.java:211)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.closableBlock(GroovyRecognizer.java:8620)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.appendedBlock(GroovyRecognizer.java:11397)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.pathElement(GroovyRecognizer.java:11349)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.pathExpression(GroovyRecognizer.java:11464)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.postfixExpression(GroovyRecognizer.java:13175)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.unaryExpressionNotPlusMinus(GroovyRecognizer.java:13144)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.powerExpressionNotPlusMinus(GroovyRecognizer.java:12848)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.乘法表达式(GroovyRecognizer.java:12780)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.additiveExpression(GroovyRecognizer.java:12450)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.shiftExpression(GroovyRecognizer.java:9664)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.relationalExpression(GroovyRecognizer.java:12355)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.equalityExpression(GroovyRecognizer.java:12279)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.regexExpression(GroovyRecognizer.java:12227)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.andExpression(GroovyRecognizer.java:12195)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.exclusiveOrExpression(GroovyRecognizer.java:12163)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.inclusiveOrExpression(GroovyRecognizer.java:12131)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.logicalAndExpression(GroovyRecognizer.java:12099)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.logicalOrExpression(GroovyRecognizer.java:12067)
位于org.codehaus.groovy.antlr.parser.GroovyRecognizer.ConditionalPression(GroovyRecognizer.java:4842)
在
(0..(Math.random() * 5 as Integer)).collect { Math.random() * 1000 as Integer }.join(',')
<ns:PRODUCTID>${=return '}'}</ns:PRODUCTID>
<ns:PRODUCTID>${= 5 + ${= 3+4 } }</ns:PRODUCTID>
// in raw View you will see <ns:PRODUCTID>12</ns:PRODUCTID>