jmeter接口测试
一、jmeter的介绍
定义:Apache JMeter是Apache组织开发的基于Java的压力测试主具。用于对软件做压力测试,还可以用来做手工接口测试和接口自动化测试。
二、jmeter的安装
(一)安装jdk,点击jdk安装包。
(二)安装后,在dos窗口下检查jdk是否安装成功命令:java -version
(三)电脑属性环境变量==系统变量
1.新建JAVA_HOME:填写jdk安装路径
JAVA_HOME
C:\Program Files\Java\jdk1.8.0_60
2.在path中添加:
path
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
3.新建CLASSPATH,
CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
(四)下载jmeter安装包,解压jmeter安装包,找到bin目录,点击jmeter.bat ,启动,查看到jmeter界面就成功安装。
三、jmeter的使用
(一)编写一个post接口
1.测试计划右键添加threads(users)线程组
2.线程组右键添加samplerHTTP请求
3.填写HTTP请求中的参数:接口名称、协议、服务器和ip、端口号、请求方法、路径、编码格式、请求体
4.线程组添加监听器查看结果树
5.点击【保存】按钮,编写保存地址
6.点击【运行】按钮
7.在查看结果树中可以看到取样器请求你和响应
8.断言接口:找到一个接口http请求添加断言响应断言
(二)编写一个get接口
1.测试计划右键添加threads(users)线程组
2.线程组右键samplerhhtp请求
3.填写http请求中的参数:接口名称、协议、服务器和ip、端口号、请求方法、(接口url+请求体)、编码格式
4.线程组添加监听器查看结果树
5.点击【保存】按钮,编写保存地址
6.点击【运行】按钮
7.在查看结果树中可以看到取样器请求和响应
8.断言接口:找到一个接口http请求添加断言响应断言
(三)依赖接口(cookie管理器)
1.新建一个登录接口,栏目接口,存在依赖关系。
2.执行接口查看到,栏目接口显示是html样式,说明没有依赖。
3.线程组右键配置元件http cookie管理器,保持会话。
4.再执行登录接口和栏目接口查看,运行结果是正确的。
(四)http请求默认值(同一个项目)
1.线程组右键添加配置元件HTTP请求默认值
2.填写HTTP请求默认值
3.填写参数请求协议、ip地址、端口
(五)关联接口
1.填写省份接口、城市接口
2.设置变量:城市接口
byProvinceName ${cs}
3.提取省份接口中的响应体:省份
4.线程组添加后置处理器正则表达式
详解:
正则匹配:
1、引用名称(Name of created variable):
Jmeter变量的名称,存储提取的结果;即下个请求需要引用的值、字段、变量名,后文中引用方法是$
如:cs ,引用 ${c}
2、正则表达式(Regular Expression):
使用正则表达式解析响应结果,()括号表示提取字符串中的部分值,前后是提取的边界内容。
如:
():括起来的部分就是要提取的。
匹配任何字符串。
+: -次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
3、模板(Template):正则表达式的提取模式。
如果正则表达式有多个提取结果,则结果是数组形式,模板1 11,2 22等等,表示把解析到的第几个值赋给变量;从1开始匹配,以此类推。
若只有一个结果,则只能是1 11;
如:$1$
4、匹配数字(Match No):
正则表达式匹配数据的结果可以看做一个数组,表示如何取值:
0代表随机取值,正数n则表示取第n个值(比如1代表取第一个值),负数则表示提取所有符合条件的值。
如:0
5、缺省值:
匹配失败时候的默认值;通常用于后续的逻辑判断,一般通常为特定含义的英文大写组合,比如:ERROR等。
如:
null
(六)jmeter中的参数化
1.通过前置处理器参数化
(1)设置登录接口的请求体:登录账号,密码设置成变量
userAccount ${u}
loginPwd ${p}
(2)接口右键添加前置处理器用户参数
(3)后台新增用户
(4)再编辑用户参数
名称 ,用户名
u ad dsfadsa admin
p 123456 4354353 123456
(5)设置线程数线程组线程数改成对应的线程数(如:5)
(6)添加查看结果树,运行接口,查看结果数结果
(7)需要断言就添加断言
2.通过txt文档或csv来参数化
(1)设置登录接口的请求体:登录账号,密码设置成变量
userAccount ${u}
loginPwd ${p}
(2)新建一个txt文档
内容如下:
admin,123456
ad,
,1234
admin,1435436
sss,
路径:E:\az\sj.txt(以自己存放的路径为准)
(3)接口右键添加配置元件CSV Data Set Config
(4)编辑CSV Data Set Config
a.导入txt文档的路径
b.选择编码格式utf-8
c.设置变量名u,p
(5)设置线程数线程组线程数改成对应的线程数(如:5)
(6)添加查看结果树,运行接口,查看结果树结果
(7)需要断言就添加断言
(七)jmeter进行token测试
1.首先就是抓取三个接口uuid接口、登录接口、build接口
2.填写三个接口
uuid接口:
http://shop.duoceshi.com/apis/auth/code
接口右键添加配置元件正则表达式填写:
变量名 u,
正则表达式:"uuid":"(.+?)"
模板:$1$
匹配数字:1
提取出来的uuid,将放到登录接口的请求体
login接口:
http://shop.duoceshi.com/apis/auth/login
请求体:
boby data
{"username":"admin",
"password":"mS3iFegPbRS0L2OdiBS/mPmjaASq2OvToSyl6rQg9T7qfVqMkfNkuZtlnL1ZrxNdjRa0W+WOEswYZ28XJ80pYw",
"code":"8888",
"uuid":"${u}"
请求头类型要更改:
接口接口右键添加配置元件http信息头管理器
Content-Type:application/json
设置uiid为变量:"uuid":"${u}"
从第一个接口提取除uuid;
登录接口成功后,我们要提取token出来
接口右键添加配置元件正则表达式填写:
内容:
变量 t
正则表达式:"token:"(.+?)"
模板:$1$
匹配数字:1
提取出来的token,将放到biud接口的请求头,
在http信息头管理器中输入:
authorization:${t}
buid接口:
http://shop.duoceshi.com//apis/api/menus/build
直接请求就可以
浙公网安备 33010602011771号