场景:每个接口设置断言会比较麻烦,如果使用全局进行断言,但是出现操作成功、保存成功、删除成功等这种不同接口返回,如果实现一个全局接口去断言呢?
Failure = false;-----表示断言成功,
FailureMessage = "……"; ----自定义的成功信息
Failure = true;-----表示断言失败,
FailureMessage = "……";-----自定义的失败信息。
上脚本
方法一:
import org.json.*;
//获取上一个请求的返回
String jsonString = prev.getResponseDataAsString();
JSONObject responseJson = new JSONObject(jsonString);
String fbpcontent = responseJson.getString("message");
value = fbpcontent;
result = value.contains("成功");
if (!result){
msg = "assertion [" + value + " contains '成功']: false;";
AssertionResult.setFailureMessage(msg);
AssertionResult.setFailure(true);
}
额外参考1
String response = prev.getResponseDataAsString();
String code = prev.getResponseCode();
log.info("Respnse is " + response);
log.info(code);
int result1 = response.indexOf("The wait operation timed out");
int result2 = response.indexOf("Oops. Something went wrong ... sorry");
if(code == "200" && result1>=0 || result2>=0){
FailureMessage = "OK,check current";
}
else{
Failure = true;
FailureMessage = "ERROR,check error";
}
额外参考2
String code = prev.getResponseCode();
log.info(code);
if ("200".equals(""+code) == false )
{
// 响应码不等于200时,设置断言失败,并输出失败信息
Failure=true ;
FailureMessage ="Response code was not a 200 response code it was " + code + "." ;
print ( "the return code is " + code); // this goes to stdout
log.warn( "the return code is " + code); // this goes to the JMeter log file
} else {
// 响应码等于200时,设置断言成功,并输出成功信息
Failure=false;
FailureMessage = "Return true, and the response code was " + code;
}
版权声明:本文为legend818原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。