Jmeter教程大全
Jmeter教程
一、jmeter环境要求
Jmeter的安装需要用到java环境,而java环境的配置就是jdk的配置,针对于java环境的配置,可以看一下之间的文章。
二、jmeter的下载
下载的时候可以再jmeter官网上直接下载
这里我使用的已经打包好的压缩包

解压后,得到文件夹:

打开文件夹,找到里面的bin目录

要想启动jmeter的话,直接双击第一个jar文件即可

打开后的页面如下:

当然,jmeter这里我使用了一个非常友好的汉化版本,可以调整为简体中文

三、使用jmeter
1. 创建一个线程组,一个线程组就代表一个接口或多个接口(里面postman里面集合)

2. 添加一个http请求,并填入请求方法、地址和参数

填写请求的url时候,有两种填写方式,无论使用哪一种都可以的:


在请求的时候,有两种常见的请求方式,get和post。填写参数时需要注意:


3. 在jmeter里,无法直接看到响应内容,需要手动的填写监听器。
常见的需要添加的监听器有:查看结果树和聚合报告
Jmeter的响应内容,需要再查看结果树里面看到,而响应统计在聚合报告里可以看到


4.运行jmeter,点击启动即可

5. 可以再查看查看结果树里看到对应的结果请求

6. 如果想清空请求记录,点击清除按钮

7.可以在聚合报告里查看到所有结果的统计情况
聚合报告的内容如下:

Label:请求的名字
Samples:请求数量
Average:平均响应时间(单位:ms)
Median:中位数响应时间
90% Line:90%用户响应时间
95%line:95%用户响应时间
99%line:99%用户响应时间
Min:用户最小响应时间
Max:用户最大响应时间
Error%:错误率
Throughput:吞吐量。默认情况下每秒完成的请求数
Received KB/S:每秒从服务器接收的速度
Sent KB/S:每秒向服务器发送的速度
8. 设置线程组和循环次数
线程组设置为几相当于同时有几个请求一起发送
循环次数设置为几相当于一个请求发送了几遍

可以再聚合报告里看到运行情况
添加断言:


接口的参数化:
使用不同的请求参数,来访问同一个接口地址
Jmeter参数化,需要添加一个CSV数据文件设置:

然后在创建一个文件

里面写上手机号,不同的参数之间换一下行
把文件放在bin目录下(或者放在桌面也行)

找到选择所导入的文件

变量名称就是参数值

Jmeter的环境变量设置:
在jmeter里也是可以跟postman一样,设置环境变量,并且非常的简单,首先在配置元件里添加一个用户定义的变量

然后就可以自定义一些变量名和变量值,然后引用,引用的话是${xxx}的形式,如下:


正则表达式:
解释:
(1)引用名称:下一个请求要引用的参数名称,如填写activityID,则可用${activityID}引用它。
(2)正则表达式:
()括起来的部分就是要提取的。
.匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
注:(.+?)[.\n]+可以匹配换行符在内的所有字符。
(3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值
(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0,如果在LR中,取出的值是一个数组,还得处理一下,LR11版本用一个随机的函数就可以不用写大段的代码来处理数组。
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。
2、关于正则表达式的举例说明
(1)提取单个字符串:
假设测试人员期望匹配Web页面的如下部分:name = "file" value = "readme.txt">并提取readme.txt。
一个符合要求的正则表达式:name = "file" value = "(.+?)">。
():封装了待返回的匹配字符串。
.:匹配任何字 符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
(2)提取多个字符串:
假设测试人员期望匹配Web页面的如下部分:name = "file" value = "readme.txt">并提取file和readme.txt。
一个符合要求的正则表达式:name = "(.+?)" value = "(.+?)"。
引用名称:MYREF
模板:$1$$2$