1.通过beanshell取样器,获取测试用例的行数
import java.io.BufferedReader; import java.io.FileReader; BufferedReader br=new BufferedReader(new FileReader("C:\Users\user\Desktop\test.txt")); String tmpStr=""; int rowNum=0; while(tmeStr=br.readLine()!=null){ rowNum++; } log.info("-----------------CSV文件行数:--------"+rowNum+"-------------------"); String sRowNum=String.valueOf(rowNum); vars.put("userRow",sRowNum);//将java变量sRowNum的值保存到jmeter变量userRow中
2.通过beanshell取样器,设置全局变量
${__setProperty(newuserRow,${userRow},)}
3.使用全局变量,在需要的地方输入:${__P(newuserRow,)}即可
4.CSV Data Set Config设置中,file encoding设为utf-8,txt格式的文件保存为ANSI格式,也可以正常读取,中文不乱码 。
读取csv格式的文件(csv格式文件必须通过excel另存为生成),file encoding设为gb2312,delimiter设为逗号(,)
5.多个条件组合断言,通过beanshell断言实现
String errorinfo = vars.get("errorinfo");//beanshell取得jmeter变量的值 String oscid = vars.get("oscid"); String res = vars.get("assertinfo"); log.info("--错误信息--"+errorinfo+"----"); log.info("---oscid="+oscid+"-----"); log.info("---配置信息="+res+"-----"); if (errorinfo.equals(res) || (oscid!=null && res.equals("suc")) ) { log.info("11111111"); Failure=false; } else{ log.info("222222"); Failure=true; FailureMessage="test error"; }
6.正则表达式提取器,有多个返回值:模板写法,$1$$2$ 匹配数字1或2
7.xpath提取器,如果内容是html格式,应勾选“use tidy”和“quiet”
xpath举例://title
//a[text()="xinwen"]
//input/@value
//a/text()匹配所有text()的a链接
8.jmeter连接mysql:
测试计划中添加jar包mysql-connector-java-5.1.13-bin.jar
jdbc连接配置如下:
通过beanshell获得查询结果
size=vars.getObject("resultObject").size();//resultObject是请求中设置结果变量 log.info(size+""); for (i=0;i<size;i++) { var data=vars.getObject("resultObject").get(i) log.info(data.get("id"+""));//id为表的列名 }