性能测试工具 [Jmeter] 将压测返回的错误信息写入 jmeter.log

麦兜珊 · 2019年09月27日 · 2316 次阅读

将压测返回的错误信息写入 jmeter.log

    很多测试小伙伴在使用 jmeter 进行性能测试过程中,经常会遇到一个令人头疼的问题:压测返回报文与断言不匹配时,如何将返回的原始报文保存到日志中,方便后续定位问题。此时传统的响应断言 (Response Assertion)方式就不满足需求了,需要自己通过写BeanShell Assertion的方式来实现。下面就来演示具体的步骤 (不啰嗦,直接切入主题😄 )。

  • 1. BeanShell Assertion 位置
      测试计划 (Test Plan)→线程组 (Thread Group)→取样器 (Http Request)→BeanShell Assertion
  • 2. BeanShell Assertion 代码组成内容
//需要将org.json.jar包放置到jmeter安装目录的lib文件夹下,然后引入jar包
//jar包下载位置:https://mvnrepository.com/artifact/org.json/json/20190722
import org.json.*;
//获取返回的报文
String response = prev.getResponseDataAsString();
//将返回报文转换为json对象,判断其中的code,如果code为非20000,则将结果输出到log文件中
JSONObject jsonObject2 = new JSONObject(response);
if(jsonObject2.get("code").toString() != "20000"){
        //如果返回的报文中状态码不是20000,则将此用例的状态设置为失败并且将返回报文写到jmeter的log文件中
          Failure=true ;
        log.info("*****************");
        //将日志级别修改为error,方便定位查找
        log.error("返回报文异常:"+response);
}


暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册