一、jmeter环境要求
Jmeter的安装需要用到java环境,而java环境的配置就是jdk的配置
下载安装完jdk之后
在系统变量中添加三个变量:
1 | JAVA_HOME : D:\Java\jdk1.8.0_191 |
1 | Path : %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; |
1 | CLASSPATH : .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (最前面的 . 也要带) |
添加完环境变量之后必须点击全部的确定
之后,在命令行输入 java -version
提示:
即为成功!!
二、jmeter的下载
下载的时候可以在jmeter官网上直接下载
解压后,得到文件夹
打开文件夹,找到里面的bin目录
要想启动jmeter的话,直接双击第一个jar文件即可
打开后的页面如下:
当然,jmeter这里我使用了一个非常友好的汉化版本,可以调整为简体中文
三、使用jmeter
1. 创建一个线程组,一个线程组就代表一个接口或多个接口(里面postman里面集合)
2. 添加一个http请求,并填入请求方法、地址和参数
填写请求的url时候,有两种填写方式,无论使用哪一种都可以的:
在请求的时候,有两种常见的请求方式,get和post。填写参数时需要注意:
3. 在jmeter里,无法直接看到响应内容,需要手动的填写监听器。
常见的需要添加的监听器有:查看结果树和聚合报告
Jmeter的响应内容,需要再查看结果树里面看到,而响应统计在聚合报告里可以看到
4.运行jmeter,点击启动即可
5.可以再查看查看结果树里看到对应的结果请求
6.解决jmeter数据乱码
1 | prev.setDataEncoding("utf-8"); |
7. 如果想清空请求记录,点击清除按钮
8.可以在聚合报告里查看到所有结果的统计情况
聚合报告的内容如下:
1 | Label: 请求的名字 |
9. 设置线程组和循环次数
线程组设置为几相当于同时有几个请求一起发送
循环次数设置为几相当于一个请求发送了几遍
可以在聚合报告里看到运行情况
10.添加断言
11.接口的参数化
使用不同的请求参数,来访问同一个接口地址
Jmeter参数化,需要添加一个CSV数据文件设置:
然后再创建一个文件
里面写上要传入的参数,不同的参数之间换一下行
找到选择所导入的文件
变量名称就是参数值
设置线程组中的循环次数(测试多少个情况下的接口就用设置多少个)
12.Jmeter的环境变量设置
在jmeter里也是可以跟postman一样,设置环境变量,并且非常的简单,首先在配置元件里添加一个用户定义的变量
然后就可以自定义一些变量名和变量值,然后引用,引用的话是${xxx}
的形式,如下:
13.正则表达式
13.1、解释
(1)引用名称:下一个请求要引用的参数名称,如填写activityID,则可用${activityID}
引用它。
(2)正则表达式:
1 | ()括起来的部分就是要提取的。 |
(3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2$$3$
等等,表示解析到的第几个值给title。如:$1$
表示解析到的第1个值
(4)匹配数字:0
代表随机取值,1
代表全部取值,通常情况下填0,如果在LR中,取出的值是一个数组,还得处理一下,LR11版本用一个随机的函数就可以不用写大段的代码来处理数组。
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。
13.2、关于正则表达式的举例说明
(1)提取单个字符串
例1:假设测试人员期望匹配Web页面的如下部分:name = "file" value = "readme.txt">
并提取readme.txt
。
一个符合要求的正则表达式:name = "file" value = "(.+?)">
。
例2:将第一个接口的城市代码,作为第二个请求的参数传入
① 获取城市代码接口
1 | http://toy1.weather.com.cn/search?cityname=nanjing |
② 根据城市代码获取天气接口
1 | http://www.weather.com.cn/data/cityinfo/101190101.html |
(2)提取多个字符串
假设测试人员期望匹配Web页面的如下部分:name = "file" value = "readme.txt">
并提取file
和readme.txt
。
一个符合要求的正则表达式:name = "(.+?)" value = "(.+?)"
。
引用名称:MYREF
模板:$1$$2$
14.json提取器
下一个请求要引用的参数通过json提取器提取出来