性能测试工具Jmeter

栏目: 编程工具 · 发布时间: 5年前

内容简介:一、Jmeter脚本录制Jmeter使用概述
编辑推荐:

本文来自于简书,本文简单介绍了性能测试工具Jmeter,以及Jmeter测试脚本和如何配置HTTP代理服务器。

一、Jmeter脚本录制

Jmeter使用概述

性能测试工具Jmeter

录制脚本首先我们需要设置Jmeter:

①测试计划>添加>Threads(Users)>线程组;

②工作台>添加>非测试元件>HTTP代理服务器。

那么又如何配置HTTP代理服务器呢:

1.Global settings Jmeter代理服务器监听的端口,默认8080,可以修改为:8888;

2.目标控制器:测试计划>线程组;(这样设置后,录制下来的HTTP请求会保存在“测试计划>线程组”下面)

3.分组:每个组放入一个新的控制器,这样设置后JMeter会将我们录制下来的HTTP请求进行适当的分组,效果后面能看到;

4.“记录HTTP信息头”“添加断言”“Regex matching(正则匹配)”保持默认配置

5.HTTP Sampler Settings和Content-type,保持默认

6.包含模式(重要配置项:只有请求的url,匹配包含模式中的正则表达式,这条请求才会被录制):如添加“www.baidu.com.*”我们的请求,只有以www.baidu.com开头的请求才会被Jmeter录制下来;

7.排除模式(重要配置项:只有请求的url,匹配排除模式中的正则表达式,这条请求就会被过滤):如添加“.*\.(js|css|png).*”当HTTP请求中包含,js,或css,或png,就会被Jmeter排除掉;

性能测试工具Jmeter

设置Jmeter

Jmeter的HTTP代理服务器就配置好了,在启动这个代理服务器之前,我们还应该去浏览器添加一个本地代理(本文以火狐浏览器做例,其他浏览器设置代理的方法也是一样),如下:

性能测试工具Jmeter

浏览器代理设置

设置好Jmeter和浏览器的HTTP代理服务器之后,浏览器访问任何url地址,都会转发到127.0.0.1:8888,也就是Jmeter的代理服务地址,同时被jmeter记录下来,这样我们就可以开始录制脚本了。

启动Jmeter的HTTP代理服务器

性能测试工具Jmeter

二、Jmeter测试脚本

利用Jmeter测试组件对录制脚本进行加工和编辑;

测试组件介绍:

1.线程组,是Jmeter组件中最核心的测试组件如:打开主页,登录等操作都是Jmeter线程来完成的;线程组,就是管理这些线程的组件;

性能测试工具Jmeter

线程组中的配置项:

①线程数:Jmeter线程的数量,决定着Jmeter用多少个线程去同时执行这些操作(如图模拟10个用户),线程数越大,服务器所承受的压力就越大;

②Ramp-up Period:启动所有Jmeter线程所花费的时间,为了防止Jmeter测试时,瞬间给被测服务器施加太大的压力,从第一个开始慢慢慢慢增加到第10个;(在十秒钟启动10个线程,平均每秒增加1个线程,直到10个都启动完成);Ramp-up Period越大,被测服务器施加的压力幅度越平缓;

③循环次数:决定线程重复循环执行的次数;(如:勾选永远,主页>登录也>登录的动作将无限循环的执行下去)

④调度器:可以详细的设置线程执行测试的时间;(持续时间:设置测试能持续执行多久;持续时间填写之后,上面的结束时间就失效;启动延迟:从当前时刻算起,延迟几秒才开始执行测试,填写之后,上面的启动时间也就失效了)

2.采样器(Sample)

性能测试工具Jmeter

添加采样器:

性能测试工具Jmeter

添加采样器

性能测试工具Jmeter

Connect timeout:指的是,在Jmeter发送请求的时候,会等待多久直到跟服务器的连接正确的建立起来,如果超过这个时间,连接还没有建立,那么Jmeter就判断这次请求是失败的;

Response timeout:Jmeter会等待多久,直到收到服务端的响应数据。

他们的单位都是:“毫秒”;

HTTP请求:Implementation,一般选择空或HttpClient4;Content encoding:如果前面的方法是“POST”,“PUT”“PATCH”和“(。。。没听出来)”这四种方式时的,会使用哪一种字符编码方式;

路径:请求的url路径

参数:也可以手动添加参数

3.断言

性能测试工具Jmeter

给某个请求添加断言:

性能测试工具Jmeter

Apply to:指定了断言的作用范围;保持默认,只对当前的采样器生效;

要测试的响应字段:指的是,断言要检查的目标;重点关注“响应文本”“响应代码”和“响应信息”这三个;响应文本:指的是服务器返回的数据;响应代码:HTTP的响应code(如:200;500;403等);响应信息:http的响应massage:OK,error等;

性能测试工具Jmeter

模式匹配规则和要测试的模式;

例子:

响应代码 Equals 200;响应代码 = 200

响应信息 Equals OK;响应信息 = OK

响应文本 包括 夜空黑;响应文本中包括 “夜空黑”三个字 这样的HTTP请求即为成功的,否则失败;

性能测试工具Jmeter

4.参数化

如图:登录名密码为固定的20000000000/netease123,模拟的是同一个用户对操作进行十次。如果要模拟不同用户对页面进行操作,就需要对用户名密码进行参数化;

性能测试工具Jmeter

先在系统中注册10个用户,用户名密码写在一个txt文本中,如下图,中间用英文的逗号隔开;

性能测试工具Jmeter

首先在线程组下添加>配置元件>CSV Data Set Config,这个组件可以帮助我们实现参数化

性能测试工具Jmeter

Filename:

配置文件的绝对路径;

File encoding:JMeter在读取文件的时候使用的字符编码方式;

Variable Names:配置文件中各列代表的数据项;

Delimiter:配置文件中不同列之间的分隔符

接下来的几个配置项全部选用默认值

在login页面的body中修改需要传入的数据,为刚才测试组件中设置的项完全一致

性能测试工具Jmeter

性能测试工具Jmeter

性能测试工具Jmeter

5.HTTP?Cookie管理器:

1.实际的登录动作前后,进行了两次checkLogin;

2.在login操作时,开发者工具(F12)的ResponseHeaders中可以看到,进行了一些set-Cookie操作;换句话说,服务端会返回一些cookie信息给浏览器,浏览器会自动的在后续的所有请求中自动的带上这些Cookie;

3.但在Jmeter不会录制下这些Cookie,正是因为缺少了这个cookie,我们的jmeter线程,即使成功执行了登录操作,后续的请求,服务器依然会认为我们没有登录;

4.那为什么Jmeter没有录制下这些cookie呢?因为这些cookie常常是不固定的,每次测试都有可能不一样,把这些cookie录制到Jmeter,反而会有些问题;

5.那当前的脚本需要进行怎样的加工,才能生效呢?我们在此需要引入另一个测试组件:HTTP Cookie管理器

性能测试工具Jmeter

添加:

性能测试工具Jmeter

勾选“每次反复清除Cookies”,脚本反复执行登录测试,每次执行主页,登录页,登录这一轮测试后,会清除cookie,下一次执行操作时,仍会以一个未登录的状态来执行主页,登录页,登录的操作;

性能测试工具Jmeter

添加HTTP Cookie管理器后执行测试,再查看结果树checkLogin信息,可以看到服务端返回了用户信息,此时服务端认为我们真正完成了登录;

性能测试工具Jmeter

三、JMeter测试执行

性能测试工具Jmeter

性能测试工具Jmeter

查看结果树

添加:

性能测试工具Jmeter

取样器结果:

性能测试工具Jmeter

Load time:请求从发出到接收到完整的返回结果的时间;(即响应时间)

Latency:请求从发出到接收开始接收到响应,一般略小于Load time;

Connect Time:JMeter和服务端建立连接所花费的时间,这个时间端已经包含在Load time中了;

Size in bytes:这次请求的大小;

请求

性能测试工具Jmeter

响应数据:服务端返回的数据

性能测试工具Jmeter

查看结果树这个监听器,需要每个请求的详细信息都显示出来,所以对系统资源是有一定开销的。如果在测试的时候,若系统的吞吐率很高,查看结果树会对性能带来比较大的影响,不建议用这个监听器,以免影响测试结果;

聚合报告:

性能测试工具Jmeter

性能测试工具Jmeter

响应时间曲线

性能测试工具Jmeter

添加>监听器>Response Time Graph

性能测试工具Jmeter

性能测试工具Jmeter

Interval(ms):横坐标的统计间隔;Jmeter会在10秒内的执行的结果做一个平均值的聚合;

Sampler label

selection:可以设置过滤请求,只显示一部分的请求;(如下图:过滤以46和18开头的请求)

性能测试工具Jmeter

性能测试工具Jmeter

只显示46开头的请求

性能测试工具Jmeter

性能测试工具Jmeter

常见问题和解决思路:

小压力(如2个并发数)

性能测试工具Jmeter

性能测试工具Jmeter

性能测试工具Jmeter

性能测试工具Jmeter


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning ARKit for iPhone and iPad

Beginning ARKit for iPhone and iPad

Wallace Wang / Apress / 2018-11-5 / USD 39.99

Explore how to use ARKit to create iOS apps and learn the basics of augmented reality while diving into ARKit specific topics. This book reveals how augmented reality allows you to view the screen on ......一起来看看 《Beginning ARKit for iPhone and iPad》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试