爱陪小樱桃

导航

 

1.测试需求:建立20个用户,访问www.baidu.com,查看在负载达到 30QPS的时候的一个平均的响应时间;

QPS:query per second每秒查询率,是查询服务器每秒能处理的查询次数,在因特网上,作为域名系统服务器的性能常用每秒查询率来衡量;

2.测试步骤:

线程数:虚拟用户数,一个虚拟用户占用一个进程和线程,设置多少虚拟用户数在这里也就是设置多少线程数;

准备时长:单位s:设置虚拟用户需要多少时间全部启动,例如:设置20个,准备时长是10,那么需要10秒钟启动20个线程,也就是每秒钟2个;

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

3.HTTP请求的配置:

名称:用于标识一个取样器,建议使用有意义的名称;

注释:对于测试没啥用,仅用来备注;

服务器IP:HTTP请求发送的目标服务器或者IP地址;

端口号:目标服务器的端口号,默认是:80

timeouts:设置请求和响应时间的超时时间;

协议:HTTP或者HTTPS

方法:发送HTTP的方法:get post ,head put options trace delete等等

content encoding:内容的编码方式,默认是:ISO8859

路劲:目标URL,注意不包括服务器的地址和端口

自动重定向:如果选中该项,当发送的HTTP请求是302/301的时候,jmeter自动重定向到新的页面;

use keep alive:jmeter和目标服务器之间使用keep-alive方式(又称持久链接,链接重用)进行HTTP通信,默认是选中的

use multipart /from -data for HTTP POST :当发送HTTP请求的时候,使用use multipart /from -data 方法发送,默认不选中;

通请求一起发送参数:

可以在发送的请求的时候把参数一起发送;

通请求一起发送文件:在请求发送文件,通常HTTP文件上传行为可以通过这种方式模拟

从HTML获取资源:默认不勾选,如果勾选,jmeter在发出请求后,得到响应后,会对HTML的文件进行分析并获取HTML的内容,包括图片,flash等等;

用作监视器:此取样器被当做监视器,在监视结果中可以看到取样器的图形化统计信息,默认不选中;

save response as md5 hash :选中该项,在执行时仅仅记录服务端返回的MD5的值,而不记录完整的响应数据,在需要进行数据量非常大的测试的时候,建议选中该项,以减少取样器记录响应数据的开销;

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

3.设置QPS限制:

jmeter提供了一个非常有用的定时器:Constant Throught Timer(常数吞吐量定时器),该定时器可以方便的控制给定的取样器发送请求的吞吐量;

 

Constant Throughtput Timer :的主要的属性:

Target throughtput(in samples per minute):目标吞吐量,这里是每分钟发送的请求数量,实际填的数量为:60*QPS 其次,Calculate Throughput based on :有5个选项,分别是:

This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的target Throught 乘以该线程的数量;

all active threads :设置的target throughput 将分配在每个活跃的线程上,每个活跃的线程在上次运行结束后,等待合理的时间后再次运行,活跃线程,指的是同一个时刻,同时运行的线程;

all active threads(shared):与all active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃的线程上一次运行结束后,等待合理的时间后再次运行;

all active threads in current threads group:设置的target throughput 将任务分配在当前线程租的每一个活跃的线程上,当测试计划中只有一个线程组时,该选项和all active threads的效果一样,

all active threads in current threads group(shared)和all active threads in current threads group基本相同,唯一的区别是,每个活跃的线程都会在所有活跃线程的上一次运行结束后等待,合理时间后再次运行;

第四步:添加监听器:

脚本的主要部分设置完成后,需要通过某种方式获得性能测试中的测试结果,在本例中我们只关心,请求响应时间;

Jmeter 中使用监听器元件,收集取样器记录的数据并以可视化的方式来呈现,Jmeter有各种不同监听类型,因为HTTP请求,我们可以在添加聚合报告,更为直观的查看测试结果。

添加聚合报告:右键点击线程组,在弹的菜单(添加---监听---聚合报告)中选择聚合报告。

添加查看结果树(添加---监听---查看结果树)

5、运行脚本

6、聚合报告分析

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数;

响应时间单位:毫秒,见脚本:

7.Jmeter 断言(检查点):

断言是在请求的返回层面增加一层判断机制。因为请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性,下面介绍常用的jmeter三种断言;

1.响应断言:

2.Size Assertion(Size断言)

3.Duration Assertion (持续时间断言)

如果响应时间大于设置的响应时间,则断言失败,否则失败,否则成功!

8.Jmeter参数化:

1.用户参数:这里讲一下,CSV data setconfig

3.随机参数化:

9.JMETER的集合点:

操作步骤----step--定时器---Synchronizing Timer

注意:集合点需要放在集合的元件的前面;

10.jmeter关联:

1.正则表达式的提取器:

添加---后置处理器---正则表达式提取器:

 

正则表达式部分配置说明:

1.引用名称:下一个请求要引用的参数名称,如填写activityID,则可用${activityID}引用它;

2):正则表达式:

()括起来的部分就是要提取的

.匹配任何字符串

+:一次或者多次

?:在找到第一个匹配项后停止

3)莫版:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2$3$3等等,表示解析到的第几个值给title,如:$1$2表示解析道德第1个值;

4)匹配数字:0代表随机取值,1代表全部取值

5)缺省值:如果参数没有取值得到值,那默认给一个值让他取

 

posted on 2018-05-04 23:40  cherry小樱桃  阅读(270)  评论(0编辑  收藏  举报