JMeter对接口进行压力测试

原文1:http://blog.csdn.net/bobchao0730/article/details/51352768

原文2: https://my.oschina.net/hellotest/blog/512482

原文3: http://blog.sina.com.cn/s/blog_68b344770102v619.html

实战教程:http://www.jianshu.com/p/673766f12ed2

Apache JMeter介绍

Apache JMeter是Apache组织开发的基于Java的压力测试工具。JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

步骤
1、双击jmeter.bat



2、右键点击测试计划-》添加-》Threads-》线程组,此时在测试计划下边显露出来线程组选项。点击该选项,显露出来线程组界面。



线程数:启动多少个线程(即模拟多少个用户来同时访问);

Ramp-Up Period:用于告知JMeter 要在多长时间内建立全部的线程,单位是秒。如果ramp-up period 为零,则JMeter 将立即建立所有线程;如果ramp-up period 设置成T 秒,全部线程数设置成N个,则JMeter 将每隔T/N秒建立一个线程。;

循环次数:N个线程运行完毕算是一次,循环次数就是这样的一个请求过程运行多少次。

调度器:持续时间选择例如300(压测5分钟),其他参数不用管

例:
如果这三个参变量作别为100,10,1,则每秒执行100/10=10个请求。

如果这三个参变量作别为100,10,2,则每秒执行100*/10=10个求请,但一共执行100*2=200个请求,执行的总时间为10*2=20秒。

3、右键点击线程组-》添加-》Sampler-》 HTTP请求,此时在线程组下边显露出来HTTP请求选项。点击该选项,显露出来HTTP请求界面。



服务器名字或IP:服务器IP地址,譬如172.20.0.4;
端口号:接口所用的端口号,譬如5432;
connect:表达连署时间,譬如10000毫秒;
response:表达响应时间,譬如10000毫秒。
Implementation选HttpClient4;
协议填http;
Content encoding填utf-8。
途径:接口地址,譬如登录接口/api/user/mobileLogin.jsp
添加参变量,譬如名字为flightNum值为SC1151;名字为flightDate值为2016-3-2。
4、右键点击HTTP请求-》添加-》配置元件-》HTTP信息头管理器,在HTTP信息头管理器界面中点击“添加”按键,添加userid和token两个键值对。这一步是在业务思维规律思索问题的。


5、右键点击HTTP请求-》添加-》监听器-》用表格检查最后结果


6、点击顶部的开始工作按键(绿颜色三边形)。


Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”。今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅。 如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一行数据,共有10个字段,含义分别如下。 Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值 #Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100 Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间 Median:中位数,也就是 50% 用户的响应时间 90% Line:90% 用户的响应时间 Note:关于 50% 和 90% 并发用户数的含义,请参考下文 http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html Min:最小响应时间 Max:最大响应时间 Error%:本次测试中出现错误的请求的数量/请求的总数 Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec