接口测试工具之JMeter(1)
1.Jmeter简介
Jmeter是apache公司基于java开发的一款开源压力测试工具,它是java开发的,所以运行的时候必须要安装jdk才可以,jmeter是免安装的,拿到安装包之后直接解压就可以使用了,它也是跨平台的在linux、windows、macos上都可以使用
2.Jmeter使用
2.1 创建http请求流程
1、添加线程组
2、添加http请求
3、在http请求中写入接口url、路径、请求方式、参数
4、添加查看结果树(多个http请求只需添加一个结果树)
5、调用接口、查看返回值
PS :解决两个乱码问题方法
jmeter查看结果树乱码
在jmeter的bin目录下找到jmeter.properties这个文件
1、添加上sampleresult.default.encoding=utf-8
2、重启jmeter
jmeter body data里面乱码
在jmeter的bin目录下找到jmeter.properties这个文件
1、添加jsyntaxtextarea.font.family=Hack
2、重启jmeter
2.2 get请求
get请求一:
入参可以放在路径中或在parameters中添加
get请求二:添加Headers
添加Http信息头管理器
2.3 post请求
post请求一:表单提交
post请求二:json提交
post请求三:添加cookie
添加HTTP信息头管理器
在HTTP信息头管理器中添加cookie信息,cookie值为上述登录接口返回结果中的sign值
post请求四:上传文件
2.4 Jmeter参数化
在调用接口的时候,有入参,那参数里面的值如果经常变化的话,就得每次去改了,很麻烦,这时候咱们就把需要经常变的值,改成可以变化的或者是咱们提前设置好的一些值,这样的话,调用的时候就不用每次都改它的值了.
Jmeter参数化的方式有三种
(1)用户定义的变量
这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的
在线程组中添加一个用户定义的变量,然后写key和value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。
调用
(2)函数生成器
函数生成器可以参照一定的规则生成数据
随机数__Random,可以在你指定的一个范围内取随机值
自增函数__counter
取当前时间__time,不加参数时为时间戳(计算机发明到现在过了多少秒),如果在有一些需要传时间的情况下可以使用,日期格式是:yyyy-MM-dd HH:mm:ss(年-月-日-小时:分钟:秒)
调出函数助手:选项—>函数助手对话框
注册用户接口:
在线程组中将循环次数改为5,即一次调用5次请求,注册5个用户
查看结果树:
(3)从文件中读取
文件读取就是事先写好一些数据,然后从文件中读取,比如说学生金币充值接口,将需充值的学生id写在文件userId.txt中,jmeter在做压测时直接从userId.txt中读取即可
从文件中读取的话,三个步骤
1、读取文件
2、取文件内容里面的参数,给它一个名字
3、使用值
从文件读取,需要在线程组里面添加一个CSV Data Set Config,它就是做前面两步的操作的
参数解释:
Filename:文件路径,若只写文件名字需把文件放在jmeter的bin目录中
Variable Names:变量名称,是用户自己定义的(若有多个变量需用Delimiter中定义的符号隔开)
Delimiter:多个变量间用什么符号隔开,默认为英文逗号
Stop thread on EOF:文件中的数据读完之后是否再循环读取,默认为false
金币充值接口:
第一列为userid,第二列为金币值,中间用英文逗号隔开
查看结果树:
2.5 Jmeter关联
1、 调用第一个接口,然后从这个接口的返回数据里面拿到某个值
2、 放到第二个接口里面来用
例如:金币充值接口
在登录接口中添加jp@gc-JSON Path Extractor
登录接口的返回值:
查看结果树:
添加调试工具Debug Sampler,查看详情
PS:登录接口需放在金币充值接口前面