使用jmeter做接口测试----柠檬不萌!

一、乱码解决方案

1、jmeter查看结果树乱码

(1)在jmeter的bin目录下找到jmeter.properties这个文件,添加上
sampleresult.default.encoding=utf-8
(2)重启jmeter
 

2、jmeter body data里面有乱码怎么解决

(1)在jmeter的bin目录下找到jmeter.properties这个文件,添加上
jsyntaxtextarea.font.family=Hack
(2)重启jmeter
 

二、使用jmeter做接口测试

测试接口之前,得有一个接口文档。我们用以下接口文档来讲解:
账号:xiaohei
密码:123456
 
打开jmeter,依次添加:线程组、HTTP请求、查看结果树
 

1、请求方式:get

范例:获取学生信息接口
 

2、请求方式:post

范例:登录接口
 
 
 

3、请求方式:post,入参是json类型

范例:添加学生信息接口
添加学生信息接口文档:http://doc.nnzhp.cn/index.php?s=/6&page_id=10
 
 
 

4、添加cookie

范例:学生金币充值
学生金币充值接口文档: http://doc.nnzhp.cn/index.php?s=/6&page_id=11
 
 
 
 

5、如何添加header信息

范例:获取所有学生信息
 
 
 
 
 

6、文件上传接口

上传文件接口文档地址:http://doc.nnzhp.cn/index.php?s=/6&page_id=13
 
 
 

三、jmeter的参数化

 

1、第一种方法:用户定义的变量

 
这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的
 
 
 
 

2、第二种方法:函数生成器

函数生成器可以参照一定的规则生成数据,这样的比如说生成一些随机数
 
(1)随机函数__Random
 
 
 
(2)计数函数__counter
此函数从1开始,每调用这个函数一次它就会自动加1
第一个参数:True,那么每个用户有自己的计数器,可以用于统计每个线程各执行了多少次。False,全局计数器。
第二个参数:重用计数器函数创建值的引用名。测试人员可以这样引用计数器的值:${test}。这样一来,测试人员就可以创建一个计数器后,在多个地方引用它的值。
 
 
(3)时间函数__time
hh代表12小时制,HH代表24小时制,如果函数的值什么都不写,则值取时间戳。
注释:时间戳,从计算机发明的那一天到现在过了多少秒(可以百度时间戳转换工具,转换成时间)。jmeter是java开发的,java里面的时间戳默认是精确到毫秒,所以要除以1000才是真正的时间戳
 
 
4)唯一id函数__UUID
这个就是每次会生成一个随机的uuid,都是唯一的
 

3、第三种方法:从文件中读取

文件读取就是事先写好一些数据,然后从文件中读取,这样的话,比如说登录接口,账号和密码都是我们事先注册好的
 
添加--配置原件--CSV data set config-添加文件,取名字,在参数中用${你取得名字}代替。
 
 
 
 
 
小提示:
如果把文件放在bin目录下,可以只写文件名,不用放绝对路径了。
 
 
 

四、jmeter的关联

调用第一个接口,从接口的返回数据中拿到某个值,放到第二个接口里面来用
举例:登录得到的cookie,传给金币充值接口
 
 
1、登录时得到如下返回
{
"error_code": 0,
"login_info": {
"login_time": "20180811173721",
"sign": "f9ed588147c86ca4c600a0bac2b13179",
"userId": 1
}
}
 
2、于是得到函数(&代表大括号):
$.login_info.sign
 
3、登录接口下添加“后置处理器--JSON Extractor”,在哪个请求获取数据,就放在哪个请求的下面。
小提示:当返回不是json格式时,可以用正则表达式提取器
 
 
4、把函数复制过去,取一个名字比如sessionid
 
 
5、在金币充值下添加“HTTP信息头管理器”,在HTTP信息头管理器中添加Cookie
 
 
6、填写好金币充值接口
 

 
7、执行,我们看到debug已经取到sessionid了,说明执行成功!
 
 
原文地址:https://www.cnblogs.com/haifeima/p/9471678.html