一、JDK安装及配置
1.系统要求:
JMeter需要JDK环境(1.8版本以上),安装JDK
2.配置JDK环境变量:
变量名:【JAVA_HOME】
变量值:【C:\Program Files\Java\jdk1.8.0_201】【jdk安装路径】
变量名:【path】
变量值:【\;%JAVA_HOME%\bin;】
变量名:【CLASSPATH】
变量值:【.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;】
3.验证JDK安装成功:
运行cmd->输入java -version->显示java版本就表示jdk安装成功
二、jmeter安装与配置
1.http://jmeter.apache.org/下载最新版本的Jmeter,解压文件到任意目录,安装路径避免空格和 中文
2.配置jmeter环境变量
【变量名】JMETER_HOME
【变量值】E:\liang\tools\apache-jmeter-3.3(根据实际的jmeter解压路径填写)
【变量名】CLASSPATH
【变量 值】%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER _HOME%\lib\logkit-2.0.jar;
3.启动Jmeter:
双击Jmeter解压路径(E:\liang\tools\apache-jmeter-3.3\bin)下面的jmeter.bat
三、jmeter简单接口测试操作(以http请求为例)
1、新建线程组:
2、添加http请求:
3、填写请求信息()
测试的接口来源--正常情况下来源于接口文档(或者工具抓取)
接口文档包含的内容:接口地址,请求方式,请求参数,返回结果,(示例,鉴权等)
示例接口--城市天气查询(有可能会被封掉,只做说明使用)
接口地址:https://www.apiopen.top/weatherApi
返回格式:json
请求方式:get/post
接口备注:通过城市名称或城市查询天气预报情况
请求参数说明:city
名称:用于标识一个sample。建议使用一个有意义的名称
注释:对于测试没任何影响,仅用来记录用户可读的注释信息
协议:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS
服务器名称或IP:HTTP请求发送的目标服务器域名或IP
端口号:目标服务器的端口号,默认值为80
请求方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
路径:目标URL路径(URL中去掉服务器地址、端口及参数后剩余部分)
Content encoding:编码方式,默认为ISO-8859-1编码,一般配置为utf-8
同请求一起发送参数:在请求中发送的URL参数,可以将URL中所有参数设置在表中,表中每行为一个参数 (对应URL中的 key=value)
自动重定向:如果选中该项,发出的http请求得到响应是301/302,jmeter会重定向到新的界面
Parameters、Body Data以及Files Upload的区别:
1. parameter是指键值对类型的参数
2、Body Data指的是实体数据,就是请求报文里面主体实体的内容,一般我们向服务器发送请求,携带的实体 主体参数,可以写入这里
5、Files Upload指的是:有本地资源上传的接口请求
4.添加查看结果树,记录接口请求数据,查看接口请求结果
5.运行及结果查看
6.断言,以响应断言为例(相当于功能测试的期望结果与实际结果对比)
注:绿色只代表与服务器进行了正常的通讯,并不代表接口测试ok了,设计入参和期望结果,合理设置断言,断言通过才能保证测试结果
(1)Apply to应用范围:我们大多数勾选“main sample only”就够了,因为我们一个请求,实质对服务器只有一次请求
(2)要测试的响应字段:一般http就用响应文本,就是服务器的响应文本
(3)模式匹配规则:
包括:返回结果包括你指定的内容,支持正则匹配。
匹配:完全相等。
Equals:实际与匹配差不多。
SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串。
否:取相反。
或者:添加多个断言,一个通过则通过
四.Tips
1.请求数据中有乱码。
解决方法:设置请求的Content encoding 为 utf-8
设置implementation为java
2.响应结果有乱码
解决方法:Jmeter解压的bin目录下,找到jmeter.properties文件,打开后新增一行内容: sampleresult.default.encoding=utf-8,保存后重启jmeter
3、POST请求是JSON格式时
解决方法:需要对该请求设置信息头Content-Type为“application/json”,请求参数放在“body data”里面
4、需要鉴权的接口
解决方法:了解需要校验什么(token,cookie),一般是在请求头中要带上鉴权的标识,所以可以添 加HTTP信息头管理器,将要校验的数据放进去就可以了