性能测试工具Jmeter07-Jmeter性能测试实战
测试需求:测试20个用户访问www.baozhenart.com在负载达到30QPS时的平均响应时间
QPS:Query Per Second每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的性能经常用每秒查询率来衡量。 |
测试步骤:
第一步:添加线程组
线程组主要包含三个参数:线程数、准备时长、循环次数
-
- 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里就设置多少个线程数
- 准备时长(单位为s):设置虚拟用户数需要多长时间全部启动。如果线程数为20,准备时长为10,则需要在10秒钟启动20个线程。也就是每秒钟启动2个线程。
- 循环次数:每个线程发送请求的次数。如果线程数为20,循环次数为5,那么每个线程发送5次请求。总请求数为20*5=100.如果勾选了"永远",那么所有线程一直发送请求,一直到停止运行脚本
第二步:增加HTTP请求
一个HTTP请求有着许多的配置参数,下面详细介绍
-
- 协议:向目标服务器发送HTTP请求时的协议,可以是http或者https,默认为http。
- 方法:发送HTTP请求的方法,包括GET、POST、HEAD、PUT、DELETE等
- Content encoding:内容的编码方式,默认值为iso8859
- 路径:目标URL路径(不包括服务器地址和端口)
- 自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter自动重定向到新的页面
- Use keep Alive:当被选中时,jmeter和目标服务器之间使用Keep-Alive方式(又称持久连接、连接重用)进行HTTP通信,默认选中。
- Use multipart/from-data for HTTP POST:当发送HTTP-POST请求时,使用Use multipart/from-data方法发送,默认不选中
- 同请求一起发送参数:在请求中发送URL参数,对于带参数的URL,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对
- 同请求一起发送文件:在请求中发送文件,通常HTTP文件上传行为可以通过这种方式模拟。
第三步:设置QPS限制
Jmeter提供了一个非常有用的定时器,称为Constant Throughput Timer(常用吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量
Constant Throughput Timer主要属性介绍
-
- this thread only:控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的target Throughput乘以该线程的数量
- all active threads:设置的target Throughput将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程
- all active threads(shared):与all active threads的选项基本相同,唯一区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行
- all active threads in current thread group:设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和all active threads选项的效果完全相同。
- all active threads in current thread group(shared):与all active threads in current thread group基本相同,唯一区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。
第四步:添加监视器
在本例中,我们关心的是请求的响应时间。
添加---->监听器---->聚合报告/查看结果树
第五步:运行脚本
第六步:聚合报告分析
-
- Label:每个JMeter的element(例如HTTP Request)都有一个Name属性,这里显示的就是Name属性的值
- #Samples:表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
- Average:平均响应时间---默认情况下是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间
- Median:中位数,也就是50%用户的响应时间
- 90%Line:90%用户的响应时间
- Min:最小响应时间
- Max:最大响应时间
- Error%:测试中出现错误的请求的数量/请求的总数
- Throughput:吞吐量----默认情况下表示每秒完成的请求数(Request per Second),当使用了Transaction Controller时,也可以表示类似LoadRunner的Transaction per Second数
- KB/sec:每秒从服务器端接受到的数据量,相当于LoadRunner中的Throughput/Sec
注:响应时间单位:毫秒