天天看点

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

目录
一、下载安装方式
二、页面操作说明:
1.添加线程组
2.在线程组中添加取样器Sampler
3.添加监听器
4.添加Http Cookie管理器
5.Jmeter参数化(三种方式)
6.同步定时器(集合点)
7.正则表达式提取器
8.Json提取器
9.响应断言
10.压力测试
11.Jmeter生成多维度HTML报告
一些常用小工具,非必须
12.Jmeter函数助手之__time函数(获取当前时间)
           

Apache JMeter是Apache组织开发的基于Java的压力测试工具。纯java开发的。

一、下载安装方式

1.下载安装JDK(java环境,开源的,网上很容易下载),安装后配置环境变量

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

java添加到环境变量

2.下载解压Jmeter压缩包(无需安装,直接解压即可)

打开jmeter/bin/jmeter.bat(批处理文件),直接双击即可打开Jmeter

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

二、页面操作说明:

1.添加线程组

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

测试计划右键添加线程组

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

线程组页面说明

2.在线程组中添加取样器Sampler

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

右键测试计划添加Sampler

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

请求必填项

3.添加监听器

常用的为:查看结果树、聚合报告

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

添加监听器

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

查看结果树

4.添加Http Cookie管理器

保存上一步取样器结果中返回的Cookie值供下一步使用,不用额外配置,一次自上而下的操作认为是一个用户,都会添加同一个Cookie。

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

5.Jmeter参数化(三种方式)

方法1:添加

前置处理器——用户参数

,使用‘${参数名}’进行调用

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

右键测试计划在前置处理器里添加用户参数

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

在用户参数中添加值

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

方法2:使用

函数读取

.csv文件中的数据(.csv可以用Excel建或者用notepad++)

_CSVRead函数原理:先去读取csv文件,然后读取其中的列,挨个赋值给取样器中的参数。

操作步骤:

点击选项→函数助手对话框(快捷键ctrl+shift+F1)→选择CSVRead函数→第一个参数值放文件路径名称,第二个参数是开始的列,0代表第一列→点击生成

然后复制生成的参数化的字符串到Sampler中粘贴即可,注意改下列号

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用
jmeter 取样器connect time_【工具】Jmeter的下载安装和使用
jmeter 取样器connect time_【工具】Jmeter的下载安装和使用
问题排查:

如果请求里的参数取的有问题,把.csv文件编码改为‘以utf-8无BOM格式进行编码’(在nodepad里可以改编码)

方法3:使用元件读取CSV Data参数(类似方法1使用函数调用.csv文件数据)

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

添加csv读取元件

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

设置参数解读

Delimiter:变量之间的分隔符,.csv文件用‘,’分隔

Allow quoted data?(是否支持引号,默认选False就可以):选择True,可用双引号来识别内部包含逗号或双引号的数据;

比如数据文件中为1,2,"3,"4",5",为false时,则识别为5个数据a=1,b=2,c=“3,d=“4”,e=5”;为True识别为3个数据a=1,b=2,c=3,"4",5。

Recycle on EOF?:True时读取文件到结尾时,再从头读取;False时读取到文件结尾停止读取。

Stop thread on EOF?:和上一个Recycle on EOF相关,当Recycle on EOF为False时,当读取不到数据时是否停止线程,True为停止,False为继续。Recycle on EOF为True时此项无意义,因为一直能读到数据。

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

参数调用

6.同步定时器(Synchronizing Timer),也叫集合点(就是大家在集合好了一起走)

定时器→同步定时器中添加,目的是并发测试,让多个用户同时调用接口,原理是等待n个用户,满足后才一起运行。

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

添加同步定时器

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

同步定时器参数含义

7.正则表达式提取器(属于后置处理器,请求结束后拿的响应的数据):并不直接涉及请求测试,但是对

数据传递

起着很大作用。

添加方式:右键添加→后置处理器→正则表达式提取器,位于具体的请求里面,代表获取这个请求返回的结果中的值。

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

正则表达式提取器添加路径

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

正则表达式页面

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

说明

引用名称:下一个请求要引用的参数名称,上图中名称为uid,其他请求使用${uid}调用这个参数值。

正则表达式:()起来的部分是要提取的内容,()前后为定位用的内容,一般把目标值前后多复制一些,然后把目标值用()取代

.代表匹配任何字符串,不对一些特殊字符做处理,全部取回

+一次或多次

?匹配到第一个匹配项后就停止

(.+?)经常一起用,代表只取第一个值

模板:正则表达式也可以写多个,用;隔开,$1$代表取第一个模板的正则表达式

扩展

但是,在JDBC请求后的响应结果中,往往需要关联的内容是只有左边界而没有右边界的,此时,我们怎么去关联呢?

实现的关键就在正则表达式的编写,提取一段字符串后所有内容用 [^"]+ 实现,这里的具体实例是n([^"]+)n,意思是提取cpgroupname后面所有内容,加上n是因为这里有换行(空格用s)

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

8.Json提取器:对于响应结果是Json体的就可以用

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

Json表达式提取器

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

Compute concatenation var(suffix_ALL):用于匹配到多个结果时,勾选此项会生成一个名称为“变量名_ALL”的列表,一般不用。

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

说明:如果json路径有层级结构,格式

$.key1.key2[0].key3

.区分层级,列表的话用[]下标

9.响应断言

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

添加断言

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

注意:响应代码取的的是“取样器结果”中的Response Code,不是“响应数据”中的。

响应信息取的是“取样器结果”中的Response message

响应文本取的是“响应数据”中的信息

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

匹配模式:包括是包含即可,匹配是完全一样

断言中也可以使用变量${}作为预期结果,需要跟着用户改变的话直接加到用户参数中即可。

10.压力测试

linux服务器上安装插件,帮助统计服务器资源使用情况反馈回来,相当于资源获取器

java -jar /home/AIbert/ServerAgent-2.2.1/CMDRunner.jar(插件地址) --tool PerfMonAgent --udp-port 7777 --tcp-port 4445(分配端口)

服务需要每次开启,测试完成后Crtl+C退出;

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用
jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

Jmeter中添加监听器

说明:PerfMon Metrics Collector资源监听器

Response Times Over Time响应时间监听器

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用
11.Jmeter生成多维度HTML报告
  • 关闭Jmeter
  • 如果没有.jtl文件,进入Jmeter下/bin目录,按住shift+右键,选择在此处打开命令窗口;Ctrl+C退出;
jmeter 取样器connect time_【工具】Jmeter的下载安装和使用
  • 运行命令:jmeter -n -t source.jmx -l result.jtl -e -o /tmp/ResultReport

参数说明:-n以非GUI方式运行Jmeter

-t source.jmx脚本路径(改成你的测试计划的路径)

-l result.jtl运行结果保存路径(.jtl),此文件必须不存在

-e 在脚本运行结束后生成HTML报告

-o 用于存放HTML报告的目录(建议放在根目录下,目录中无汉字)

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

命令行

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

生成文件

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

HTML图表

图表说明:

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

Apdex参数越接近1说明性能表现越好,反之越接近0则越差。

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

聚合报告

聚合报告图表,和Jmeter聚合报告数据一致

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

错误统计页面

12.Jmeter函数助手之__time函数(获取当前时间)

功能:__time函数可以获取到当前的时间并传参供调用

jmeter 取样器connect time_【工具】Jmeter的下载安装和使用

使用方式:1.打开函数助手,找到__time这个函数,可以看到该函数有两个参数,即格式和参数名称,两者都不是必填项。

  • 格式 :格式如果不填那么就是默认获取当前时间的毫秒数(此项也常被用于接口参数中那些不允许重复的字段);
  • 参数名称 :非必填项,如果填了,则生成的时间会被放到该参数中,可以在任意地方调用这个参数,常用于多接口中某个值使用同一个时间参数的情况;

${__time(,)}:获取当前时间的毫秒数;

${__time(,time_ms)}:获取当前时间的毫秒数并存入参数time_ms中;

${__time(/1000,)}:获取当前时间的秒数;

${__time(/1000,time_s)}:获取当前时间的秒数并存入参数time_s中;

${__time(yyyy-MM-dd,)}:获取当前日期;

${__time(yyyy-MM-dd,time_date1)}:获取当前日期并存入参数time_date1中;

${__time(yyyy-MM-dd HH:mm:ss,)}:获取当前时间,固定格式;

${__time(yyyyMMddHHmmss,time_2)}:获取当前时间,固定格式,并存入参数time_2中;

${__time(YMDHMS,)}:获取当前时间,固定格式

2.点击生成按钮即可生成函数字符串,copy后放到需要的位置即可;