1,测试需求:测试20个用户访问http://www.51zxw.net在负载达到30QPS时的平均响应时间

QPS:Query Per Second每秒查询率,是一台查询服务器每秒能够处理的查询次数,在因特网,作用域名系统服务器的性能经常用每秒查询率来衡量。

2.测试步骤:
第一步:添加线程组主要包含三个参数:线程组,准备时长(ramp-up period(inseconds))、循环次数

线程组:虚拟用户数,一个虚拟用户占用一个进程或线程,设置多少虚拟用户数在这里有就是设置多少个线程数
准备时长(单位为s):设置的虚拟用户数需要多长时间全部启动,如果线程数为20,准备时长为10 ,那么需要10秒启动20个线程,也就是每秒启动2个线程

循环次数:每个线程发送请求的次数,如果线程数为20,循环次数为5,那么每个线程发送5次请求,总请求数为20×5=100,如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本

 



第二部:增添http请求



 
一个http请求有着许多的配置参数,下面将详细介绍:
名称:本属性用于标识一个取样器,建议使用一个有意义的名称
注释:对于测试没有任何作用,仅用户记录用户可读的注释信息
服务器名称或ip:http请求发送的目标服务器名称或IP地址
端口号:目标服务器的端口号,默认值为80
timeouts(milliseconds):设置请求和响应的超时时间
协议:向目标服务器发送http请求时的协议,可以是http或者是https,默认值为http
方法:发送http请求方法,可用方法包括GET'、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等
Content encoding:内容的编码方式,默认值为iso8859
路径:目标URL路径(不包括服务器地址和端口)
自动重定向:如果选中该选项,当发送http请求后得到的响应为301/302时,jmeter自动重定向到新的页面
Use keep alive:当该选项被选中时,jmeter和目标服务器之间使用keep-alive方式(又称持久连接、连接重用)进行http通信,默认选中
use multipart/from-date for http post:当发送http post请求时,使用use multipart/from-date方法发送,默认不选中
同请求一起发送参数:在请求中发送URL参数,对于带参数的URL,jmeter提供了一个简单的对参数化的方法,用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的名称1=值1)
同请求一起发送文件:在请求中发送文件,通常http文件上传行为可以通过这种方式模拟
从html文件获取所有有内含的资源:当该选项被选中时,jmeter在发出http请求并获的响应的html文件内容后,还对改html进行分析并获取html中包含的所有资源(图片、flash等)默认不选中,如果用户只希望获取页面中特定的资源,可以在下方的Embedded URLs must match文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载
用作监视器:此取样器被当成监视器,在monitor results listener中可以直接看到基于该取样器的图形化统计信息,默认不选中
save response as md5 hash?:选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据,在需要进行数据非常大的测试时,建议选中该项以减少取样器记录响应数据的开销

tips默认时间单位是毫秒,报告输出文件文件后缀.jtl




第三步:设置QPS限制
jmeter提供一个非常有用的定时器,称为Constant throughput timer(常数吞吐量定时器),该定时器可以方便控制给定的取样器发送请求的吞吐量




Constant throughput timer的主要属性介绍:

target throughput(in sampler per minute):目标吞吐量,注意这里是每分钟发送请求数,实际填的数值为:60×QPS 其次calculate throughput based on:有5个选项,分别是:
1800=60×QPS=60×30




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基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后,等待合理的时间后再次运行






posted on 2017-07-27 15:42  june☂  阅读(330)  评论(0编辑  收藏  举报