1.压力测试工具 jmeter
版本:Apache JMeter 2.10
2.运行环境
1)windows7
2)java version 1.7.0_80
3.创建测试计划
以秒杀活动为例,测试100个用户同时下单时服务器的负载情况
1)确定请求地址:正常的下单流程:用户登录网站(http://xxxx/login)
=》选择某个商品并点击购买(http://xxx/cart/quick-buy.html)
=》选择某种支付方式(http://xxxx/checkout/change-payment)
=》下单(http://xxx/checkout/submit)
2)创建测试计划:
I.创建线程
II.设置线程组参数
参数说明:
线程数:100; 启动100个线程
Ramp-Up Period (in seconds): 1; 1秒内启动100个线程,为0时代表同时启动100个线程
循环次数: 勾选“永远”时,线程组会一直执行,为x时,代表会执行x次线程数为100的线程组
III.添加线程组的配置元件
配置元件作用:
HTTP Cookie管理器:自动保存登录时网站设置的cookie
HTTP 信息头管理器:可以设置请求头部信息。如可以通过设置user-agent来模拟各种浏览器
IV.添加http请求
1)用户登录
确定登录的请求参数:
设置登录的请求参数:
添加数据源:
设置数据源参数:
数据源文件内容为:
2)用户选择商品
3)选择支付方式
4)确认购买(提交订单信息)
5)添加定时器
编辑定时器参数
number of Simulated Users to Group by :100 //线程数达到100个后,再同时访问某个http请求
6)添加察看结果树和聚合报告
聚合报告参数说明:
Lable:Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值;
#Samples:表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100;【我的是用户有100,只迭代一次,因此也是100】
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间;
Median:中位数,也就是 50% 用户的响应时间;
90% Line ~ 99% Line:90% ~99%用户的响应时间不大于这个值;
Min:最小响应时间;
Maximum:最大响应时间;
Error%:本次测试中出现的错误率,即 错误的请求的数量/请求的总数;
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction ;
Received KB/src:每秒从服务器端接收到的数据量;
Sent KB/src:每秒从客户端发送的请求的数量。
7)其它说明
1.线程组下的HTTP Cookie管理器、HTTP信息头管理器、Synchronizing Timer 定时器、对该线程组下的每个http请求都起作用。
2.线程组下的http请求会按照顺序依次执行
4.运行测试计划