Jmeter
1、安装教程
注意:安装的jdk必须是1.8以上的
2、流程
-
新建一个线程组
线程数:模拟用户的的数量
ramp-up时间/秒:线程数在这时间内完成启动
循环次数:初次测试接口是否联通时不选择永远,填入数字1;当开始模拟用户并发时,选择永远,并打钩调度器
调度器:持续时间:选择在这些用户量的并发下的持续的循环时间
-
创建http请求
协议:根据url进行选择
服务器ip:根据url进行选择
端口:根据url进行选择
方法:根据需求进行选择
post请求最好用消息体数据进行传输参数
路径:url端口号之后的那串
内容编码:正常是utf-8
消息体数据中的参数,既可以直接设置,也可以通过设置变参来循环输入自己想要的参数,变参名为${xxx}
-
http信息头管理器
正常标准的restful接口传输的http信息头都是上图
-
csv数据文件设置
文件名:浏览本地文件,这边最好选择csv格式的文件
文件编码:默认或者rtf-8
变量名:代表csv文件中的名称代表,此处可作为http请求中的消息体数据中的变参,相当于循环输入csv中的数据作为参数
(这边我在实际中选择bankname作为变量名,csv文件中每一个银行的名称作为一行)
-
创建BeanShell PreProcessor
作用,利用脚本,随机生成四字汉字
Parameters:填入参数content_post,此处可作为http请求中的消息体数据中的变参,相当于循环输入csv中的数据作为参数
reset interpreter:重置解释器,如果模拟多用户并发时,设为true,不然每次post的参数都是同一个
随机生成四字汉字的Java脚本:
``` import java.util.Random; public class Random_str { public static String RandomJianHan(int len) { String ret = ""; for (int i = 0; i < len; i++) { String str = null; int hightPos, lowPos; // 定义高低位 Random random = new Random(); hightPos = (176 + Math.abs(random.nextInt(39))); // 获取高位值 lowPos = (161 + Math.abs(random.nextInt(93))); // 获取低位值 byte[] b = new byte[2]; b[0] = (new Integer(hightPos).byteValue()); b[1] = (new Integer(lowPos).byteValue()); try { str = new String(b, "GBk"); // 转成中文 } catch (UnsupportedEncodingException ex) { ex.printStackTrace(); } ret += str; } return ret; } } Random_str ran = new Random_str(); String content1 = ran.RandomJianHan(4); //此处生成的是长度为4的字符串 vars.put("content_post",content1); ```
-
计数器
Maximun value:不要设置过大,无效的数字在post的时候搜不到数据
-
结果树与聚合报告
结果树可以查看每次post的结果
聚合报告可以查看每次执行用户并发时一些参考量
注意:每次执行新的用户并发时,需要清楚结果树以及聚合报告的内容,所以聚合报告的内容要及时导出
原文地址:http://www.cnblogs.com/yiqn/p/16920623.html