jmeter使用BeanShell断言
2017-06-08 20:05
429 查看
1. 首先存储一个接口的响应结果,如在http请求的BeanShell PostProcessor:
或者是jdbc request中BeanShell PostProcessor:
变量存储好后,再需要断言的接口后面添加BeanShell断言,使用Failrue来标识断言失败,FailureMessage标示断言失败的原因,如:
断言结果是:
使用第三方jar包,结合fastjar的JSON解析如下:
import java.io.UnsupportedEncodingException; System.out.println(prev.getResponseCode()); String str = prev.getResponseDataAsString(); /* String result = ${__urldecode(str)}; System.out.println("------------"+result); */ String result = ""; try { result = java.net.URLDecoder.decode(str, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } System.out.println("--------"+result); vars.put("result",result); log.info(result);
或者是jdbc request中BeanShell PostProcessor:
columnValue = vars.getObject("testresultvariable").get(0).get("app_id"); vars.put("value",columnValue);
变量存储好后,再需要断言的接口后面添加BeanShell断言,使用Failrue来标识断言失败,FailureMessage标示断言失败的原因,如:
String result = vars.get("result"); if(!result.contains("\"result\":2")) { Failure = true; FailureMessage = "分润查询失败"; }else{ FailureMessage = "分润查询成功"; }
断言结果是:
使用第三方jar包,结合fastjar的JSON解析如下:
import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.*; import com.jmeter.*; listexc = new ArrayList(); listexc.add(351); listexc.add(301); listexc.add(302); listexc.add(304); listexc.add(305); listexc.add(306); list = new ArrayList(); flag = "false"; if ((prev.getResponseCode() != null) && (prev.getResponseCode().equals("200") == true)) { String json = prev.getResponseDataAsString(); JSONObject jo = JSON.parseObject(json); if(jo.containsKey("events")) { JSONArray ja = jo.getJSONArray("events"); if(ja.size()>0) { flag = "true"; for(int i = 0;i<ja.size();i++) { System.out.println(ja.get(i)); JSONObject joe = ja.getJSONObject(i); System.out.println(joe.get("eventId")); list.add(joe.get("eventId")); } System.out.println(list.size()); System.out.println(new EventCompare().compare(listexc,list)); if(!new EventCompare().compare(listexc,list)){ Failure = true; FailureMessage = "事件校验失败,预期结果和实际结果不一致,预期事件:"+listexc+" ,实际事件:"+list; } }else{ flag = "false"; Failure = true; FailureMessage = "事件校验失败,轮询接口返回没有eventId"; } vars.put("result",flag); System.out.println(list.size()); /* System.out.println(listexc.containsAll(list)); if(listexc.containsAll(list)) { Failure = true; FailureMessage = "事件校验失败"; } */ }else { Failure = true; FailureMessage = "事件校验失败,轮询接口返回没有events"; } }else { Failure = true; FailureMessage = "事件校验失败,轮询接口返回空"; }
相关文章推荐
- Jmeter使用BeanShell 断言进行判断
- jmeter中beanshell断言的使用
- JMeter中BeanShell断言使用一
- Jmeter 接口测试中使用Beanshell断言: 将接口响应报文与数据库结果对比
- Jmeter入门实战(二)如何使用Jmeter的BeanShell断言,把响应数据中的JSON跟数据库中的记录对比
- 如何在Jmeter中使用Beanshell-小强性能测试培训班学生作品
- BeanShell 在 JMeter中的使用
- jmeter使用BeanShell Sampler测试自己写的java接口(一)
- JMeter中的BeanShell使用
- JMeter BeanShell断言使用
- jmeter中使用Beanshell处理多个枚举类型参数
- Jmeter:使用BeanShell
- JMeter BeanShell 的使用-请求加密-返回自动解密处理
- 使用Jmeter的BeanShell Sampler生成需要的参数
- jmeter随笔(29)-关于自己的jar包和beanshell的使用
- 接口测试工具-Jmeter使用笔记(四:响应断言)
- BeanShell in JMeter(Performance Test) —— JMeter中的Beanshell使用
- BeanShell in JMeter(Performance Test) —— JMeter中的Beanshell使用
- JMeter中的BeanShell使用
- jmeter beanshell使用说明