本文共 2525 字,大约阅读时间需要 8 分钟。
- 单线程中读取变量和使用变量
// 获取变量String hotelSystemConnectionId = vars.get("hotelSystemConnectionId");// 存储变量vars.get("hotelSystemConnectionId",hotelSystemConnectionId); // 格式为:vars.get("变自定义变量名",值)// 值得注意的是:vars.get只能存储string的值,如果是object对象需要使用另外的方法'''目前已知的是只能存储:List、Mapjsonobject好像都不行'''// 存储变量vars.putObject("hotelSystemConnectionId", Object);// 获取变量vars.getObject("hotelSystemConnectionId");
- 多线程中读取变量和使用变量
props.get("hotelSystemConnectionId");props.get("hotelSystemConnectionId",hotelSystemConnectionId);props.putObject("hotelSystemConnectionId", Object);props.getObject("hotelSystemConnectionId");vars和props的区别就是props可以跨线程组使用,并且props返回的是Hashtable对象
- 线程中打印日志 在windows用界面右上角可以点击查看到打印的日志 如果是在Linux上,那么运行完成后,查看jmeter.log可以看到该日志
// 打印任意日志:log.info("hotelSystemConnectionId:" + hotelSystemConnectionId);// 有时候,你并不像打印info级别的日志,可以在jmeter的bin目录下编辑jmeter.properties文件,修改log等级为error'''操作步骤:1、jmeter的bin目录下编辑jmeter.properties文件,其中将#jmeter.loggerpanel.display=false 解注释并修改为true [jmeter.loggerpanel.display=true]2、修改jmeter的bin目录下编辑log4j2.xml文件,搜索level,然后修改成对应的error级别//打印error级别的日志log.error("anything");// 如果想在cmd显示日志,可以使用print("anything");'''----------------------------- 请求 ----------------------------// 获取到请求的boby (实际上会同时返回url,和请求boby)log.info("获取到请求的boby:",prev.getSamplerData());// 获取请求的urllog.info("获取请求的url:"+prev.getUrlAsString());----------------------------- 响应 ----------------------------// 获取响应结果log.info("获取响应结果:"+prev.getResponseDataAsString()); log.info("获取响应结果: " + prev.getResponseMessage()); // 这个不是string类型的// 获取响应code (需要用int接收)log.info("获取响应code:",prev.getResponseCode());// 获取响应headerslog.info("获取响应headers:",prev.getRequestHeaders());// 获取响应Body大小prev.getBodySizeAsLong(); ----------------------------- 解决乱码 ----------------------------prev.setDataEncoding("utf-8");
重磅代码(场景是我需要记录接口响应的时间), 注意这段代码不能使用BeanShell PreProcessor , 想你也知道啊,ResponseHeaders你在请求前你也拿不到啊 是不是
String backtim = prev.getResponseHeaders();String a= backtim.substring(backtim.indexOf("Fri")+4,backtim.indexOf("GMT")+3); //每天都要变Date date = null;log.info("~~~~~~~"+c);try { date = new SimpleDateFormat(" d MMM yyyy K:m:s z",Locale.ENGLISH).parse(a); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); }SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String ti = sf2.format(date);log.info(ti);
转载地址:http://xirki.baihongyu.com/