流程如下:
客户RQ->被测系统 - >后端系统 - > SUT - >客户回复
后端可以响应各种错误,目标是测试这些错误如何传播到客户端。 我试图使用soapui rest mock来模拟后端系统。我在mock中创建了多个错误响应。但问题是它们是由同一个客户端RQ触发的。 我们的想法是确定正在运行的测试用例的后端响应。
TC 404:客户端RQ - > SUT - >后端模拟响应404 - > SUT - >客户 - >断言404
TC无数据:客户端RQ - > SUT - >后端模拟响应没有数据 - > SUT - >客户 - >断言没有数据错误 ...
由于每个TC的客户端RQ相同,因此动态选择支持模拟响应的唯一方法是知道哪个TC正在运行。
最底层的问题是如何将testRunner.testCase对象传递给模拟响应调度程序脚本
答案 0 :(得分:1)
你走了:
SCRIPT
中读取log.info mockRequest.requestHeaders['TC_NAME'][0]
//read the request header in the mock service
def tcName = mockRequest.requestHeaders['TC_NAME'][0]
def responseFile
if (tcName == 'TC1') {
responseFile = '/set/your/right/response/for/tc1_response.xml'
} else if (tcName =='TC2'){
responseFile = '/set/your/right/response/for/tc2_response.xml'
} else {
//set default file as response
responseFile = '/set/your/right/response/for/default_response.xml'
}
context.content = new File(responseFile).text
在模拟响应中,只需添加${content}
,以便可以根据条件从动态文件加载数据并将其设置为响应内容。
您可能还会找到一些类似的示例here
希望这有帮助。