在下面的代码中,'ScenarioName'表示测试用例名称,'DeviceID'表示输入参数,同时获取响应。现在我需要使用输入csv中给出的字段来交叉检查响应数据的每个字段。所以,如果它匹配,那么我们只会说结果通过或者失败..
截至目前的代码:(它只是命中服务并在结果CSV中写入响应。但在将其写入生成的CSV之前,我们需要验证响应中的所有字段是否都匹配对应于该值的值在输入CSV中指定的特定方案,只有这样我们才能得出结论:测试用例是通过还是失败。)
Beanshell后处理器代码:
scenario = vars.get("ScenarioName");
deviceid = vars.get("DeviceID");
eventname = vars.get("C_EventName");
eventtype = vars.get("C_EventType");
areaName = vars.get("C_AreaName");
n = vars.get("counter");
filename = "C:\\RestService\\"+ n +".csv";
f = new FileOutputStream(filename, true);
p = new PrintStream(f);
this.interpreter.setOut(p);
print( scenario + ", " + etrTimestamp + ", " + eventname + ", " + eventtype + ", " + areaName + ", " + areaType + ", " + additionalInfo + ", " + resultStatusCode + ", " + resultStatusMessage);
f.close();
现在我的输入文件:
ScenarioName DeviceID Execution
Validate event 52226406 Yes
invalid ID 11501233 Yes
但是输入文件应该是:
ScenarioName DeviceID Execution EVENTNAME REsultCODE
Validate event 52226406 Yes Hurricane 200
invalid ID 11501233 Yes Tornado 404
现在我的输出是:
ScenarioName DeviceID Execution EVENTNAME REsultCODE
Validate event 52226406 Yes Hurricane 200
invalid ID 11501233 Yes Tsunami 404
但它应该是:
ScenarioName DeviceID EVENTNAME REsultCODE Result
Validate event 52226406 Hurricane Event Pass
invalid ID 11501233 Tsunami 404 Fail
如果我们验证测试用例,那么让我们说对于DeviceID 52226406,那么只有当所有字段与输入csv中存在的数据完全匹配时我们才会说结果为通过...。但是对于DeviceID 11501233事件类型应该是Tornado但作为回应我们正在作为海啸,所以它应该失败(我们匹配输入CSV后) 我的代码应该怎么做?
答案 0 :(得分:0)
您的要求可以在没有任何脚本的情况下完成,例如:
Rest
,我的期望是JSON Extractor 可以使用Response Assertion比较2个变量:
如果您出于任何原因需要存储实际数据,可以使用Sample Variables属性或Flexible File Writer