Jmeter下载安装
Jdk环境变量配置链接:
https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html
jmeter官网连接:
http://jmeter.apache.org/
操作步骤:
1、下载jdk,配置环境变量
2、下载jemeter安装包
注:对应的jdk版本不可太低,一般jmeter3.0的对应jdk1.7,jmeter4.0对应jdk1.8以上,否者启用jmeter也会报错。
Jmeter配置环境变量
1.)电脑桌面----》“计算机”图标----》鼠标右键选择“属性”----》点击高级系统设置----》高级—》环境变量页面
2) 开始配置环境变量了。在系统变量框,点击“新建”,建立一个变量:JMETER_HOME,值为你解压的jmeter安装路径。(我的在D:\tool\apache-jmeter-5.2.1\apache-jmeter-5.2.1)
3)配置classpath变量,没有的话也要按照上面步骤进行新建,有的话直接进行选中,点击编辑即可。变量值固定为:
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;
4).基本配置完成,然后验证一下是否配置正确,是否可用。首先进到你的jmeter安装路径,找到bin文件夹,点击进去,找到jmeter.bat,鼠标右键用管理员方式运行
,或者直接双击打开,此时会弹出2个界面:
1.个是命令窗口,使用jmeter的时候此命令窗口不能关,你缩小到电脑任务栏即可。
2.还有一个界面是jmeter工作页面,你可以在里面进行相关的操作.具体如图
Jmeter基本使用流程
接口调用
get请求
步骤一:右键点击计划名称->【添加】->【线程(用户)】->【线程组】,打开线程组配置界面
步骤二:添加http请求:
右键点击线程组名称【线程组】->【添加】->【取样器】->【HTTP请求】
步骤四:具体页面,使用get请求调用接口
步骤五:添加监听器
我们为了便于观察执行结果,还需要添加一个监听器。
步骤六:启动,查看执行结果
查看结果树:打开察看结果树,绿色代表测试通过,红色代表测试失败。在此我们可以看到详细的请求头、响应时间、请求参数和返回结果;方便我们进行接口调试
post请求
Post请求方式需要添加请求头信息
使用JMeter完成多个接口组合
以上,单个接口的请求已经完成。在接口测试中,是多个不同接口的组合,因此就会涉及到接口传值。我们可以使用正则表达式和 Json Path Extractor来获取接口返回值。
Json extractor(Json提取器)
1、{ “xxx”: {“yyy”:“要获取的值”}}
引用法子$.xxx.yyy
2、获取json中数组中的某个值,如下的Score
引用法子:$respMsg2[0].Score
使用时以${变量名}取值
正则表达式
所谓正则表达式,即一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
在“http请求”打开鼠标右键–>添加–>后置处理器–>正则表达式提取器
Jmeter参数化方式
1、CSV Data Set Config/CSV数据配置文件
1)线程组右键添加–>配置元件–>CSV 数据文件设置
1、文件名:csv/txt文件的绝对路径
2、文件编码:根据运行环境设置,个人常用的是UTF-8
3、变量名称:每次读取到的值都会按顺序放到设置好的变量名称中,比如有变量名var1,var2,var3,csv中一行元素为a,b,c,那么结果就是var1=a,var2=b,var3=c
4、分隔符:csv文件的分隔符,默认为逗号,如果是tab,那就设置为\t
5、是否允许带引号:如果存在带引号的数据,那么这里就必须设置为true,比如数据元素为a,“b,b,b”,c,d,那么结果就是var1=a,var2=“b,b,b”,var3=c
6、遇到文件结束符再次循环:文件读取到结尾后,还可以继续循环读取
7、遇到文件结束符停止线程:只有当(6)为true的时候,这一项的设置才有意义
8、线程共享模式:一共有三种模式a–所有现场,b–当前线程组,c–当前线程
先来看下txt文件中的具体内容:
2)取值方式:${变量名},一定要与数据配置文件的变量名一致
Get请求:
Post请求:
运行的最终结果(即获取到了文件中的变量值):
在这里插入图片描述
2、用户参数
1)添加-前置处理器-用户参数
2)通过界面下方的添加、删除按钮可以向参数列表增加和删除参数,Up和Down可以上下移动参数的位置;
操作:可添加多个变量或者参数
3、用户定义的变量
用户定义变量的所有数据只会初始化一次,不管你多少线程,循环多少次,它的值是不变的。
PS:User Defined Variables中定义的参数值在test plan执行过程中不能发生取值的改变,因此一般仅将test plan中不需要随迭代发生改变的参数(只取一次的参数)
设置在此处;例如:被测应用的host和port值。