我为以下响应在测试用例级别设置了一个动态值。
{
"orderDetails": {"serviceOrderNumber": "SO-EUAM-MX-EUAM-16423"},
"transactionDetails": {
"statusMessage": "Success",
"startRow": "1",
"endRow": "400",
"totalRow": "1",
"timeZone": "EST"
},
"customerNodeDetails": {
"startDate": "20180622 06:32:39",
"nodeCreateDate": "20180622 06:32:39",
"customerId": "5562"
}
}
assert context.response, 'Response is empty or null'
def json = new groovy.json.JsonSlurper().parseText(context.response)
context.testCase.setPropertyValue('CustID', json.customerNodeDetails.customerId.toString())
现在,在声明另一个GET API的同时,我将CustID
命名为customerNumber
。
我使用了以下代码:
assert json.customerNodeDetails.customerNumber == "${#TestCase#CustID}"
,对此的答复是:
"customerNodeDetails": {
"nodeLabel": null,
"customerNumber": "5544",
"customerName": "ABCDEFGHIJ ABCDEFGHIJ LMNOPQRSTUV1234",
"taxIdCity": "",
"taxIdState": "",
"salesSegment": "Government",
"dunsNumber": "",
"mdsId": "",
"accountClassification": "B",
"specialCustomerBillCode": ""
}.
但是我收到以下错误消息:
启动失败:Script65.groovy:26:意外字符:'#'@第26行,第54列。eDetails.customerNumber ==“ $ {#TestCase#^ org.codehaus.groovy.syntax.SyntaxException:意外字符:
处org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:138)上的“#” @第26行,第54列。
请让我知道如何获取该值。
答案 0 :(得分:0)
如果要在Groovy脚本中引用属性,则不能像在UI的其他部分中那样直接使用它。您需要扩展它:
def custID = context.expand('${#TestCase#CustID}')
或者,脚本断言中可用的messageExchange
变量为您提供了执行相同操作的另一种方法:
def alternative = messageExchange.modelItem.testStep.testCase.getPropertyValue('CustID');
然后,如果您需要在测试用例级别以外的其他地方定义的属性,则可以使用:
def projectLevelProperty = messageExchange.modelItem.testStep.testCase
.testSuite.project.getPropertyValue('projectLevelProperty');