在运行Jmeter脚本时,其中一个步骤失败,但成功结果将在样本结果中显示为:
Sample Count: 1
Error Count: 1
Response code: 200
Response message: OK
但错误消息将在响应数据中显示为:
Unfortunately, we could not delete your entire itinerary because of a database synchronization error.
If you could please re-load your itinerary and try again, we would appreciate it.
Thank you for your patience.
我需要重新提交请求,因为我使用While循环比较响应数据,然后尝试重新提交不起作用的请求。
if(ResponseData.equals("Unfortunately")==true)
{
log.error("Database synchronization error...Re sending Request");
vars.put("resubmitflag","true");
}
问题我相信我没有使用正确的功能 ResponseData.equals不能像我们如何比较整个响应数据那样工作 这是不可能的。
请有人帮助您继续操作以及需要使用哪些功能。
答案 0 :(得分:1)
如果您正在谈论B eanshell Post Processor,那么您的代码会遇到一些问题。
ResponseData
不是Beanshell Post Processor可用的东西。您需要使用data
(字节数组前一个采样器响应表示)或prev
(代表前一个采样器的SampleResult类)。 equals
方法检查2个字符串是否相同。在您的情况下,您需要考虑startsWith
或甚至contains
方法。 请参阅以下代码示例以供参考
String response = new String(data);
if (response.contains("Unfortunately")){
log.error("Database synchronization error...Re sending Request");
vars.put("resubmitflag","true");
}
或
String response = prev.getResponseDataAsString();
.....
有关详细信息,请参阅How to use BeanShell指南。
希望这有帮助