我必须多次运行testStep,并从外部文件加载不同的数据(使用文件对象循环为每个记录运行testStep),并从每个值的响应中验证数据。 我能够做到这一点,它的执行和工作正常。但是当断言失败时,执行不会停止,它将继续并显示testStep已通过。 每当它失败时,我都可以在“脚本日志”窗口中看到失败,因为我正在将log.info与run.status一起使用
并且我在测试用例选项上选中“中止是否测试是否发生任何错误”复选框和“如果testStep失败则失败tes案例”复选框。
仍然继续执行测试用例
重要说明:以上情况发生在断言在记录中间失败时,如果最后一条记录失败,则停止执行。
我使用的代码
此Groovy脚本代码:文件根据文件中的行数迭代testStep
// Get tha path to an input file from a custom property
def inputFilePath = testRunner.testCase.testSuite.getPropertyValue( "inputFile" )
// Get the test case we want to Run
def tc=testRunner.testCase.testSuite.testCases["DetectRules"].testSteps["Rules_DENF_224"]
// Iterate through the input file
File file = new File(inputFilePath.toString()).eachLine{
// Set Test Suite custom properties
testRunner.testCase.testSuite.setPropertyValue( "InValue", it.split(",")[0] )
testRunner.testCase.testSuite.setPropertyValue( "OutValue", it.split(",")[1] )
testRunner.testCase.testSuite.setPropertyValue( "outDesc", it.split(",")[2] )
def runner = tc.run(testRunner,context)
//Get the Json response from execution
def FraudReq = testRunner.testCase.testSuite.testCases["DetectRules"].testSteps["Rules_DENF_224"].testRequest.response.responseContent
// Log info to a output
log.info "Execution of test case with Input value: ${it.split(",")[0]} and expected returned value: ${it.split(",")[1]} and Expected Description is: ${it.split(",")[2]} ${runner.status}"
// Sleep for a second since were using public service
sleep 500
}
this is testStep --> Script Assertion: section
import groovy.json.JsonSlurper
def response= messageExchange.response.responseContent
def jsonsl= new JsonSlurper().parseText(response)
def expected=context.getTestCase().getPropertyValue(“rule number”)
assert expected==jsonsl.results[4].id
如果上述断言失败,则testStep应该停止,但testStep失败,但执行不停止。
任何帮助表示赞赏