metersphere全局脚本断言

  • Post author:
  • Post category:其他


场景:每个接口设置断言会比较麻烦,如果使用全局进行断言,但是出现操作成功、保存成功、删除成功等这种不同接口返回,如果实现一个全局接口去断言呢?

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 版权协议,转载请附上原文出处链接和本声明。