前提条件:
1、jmeter接口测试工具
2、接口信息
获取验证码信息
登录接口信息
题外话:
接口返回的数据中如果有文字就会乱码 怎么解决
1、进入jmter文件–进入bin文件夹,找到jmeter.properties文件
2、右键打开,可以用文本模式也可以用Notepad++,我这边是用notepad打开,ctrl+f 搜索iso
3、修改完后重启jmeter
接口测试步骤
1、进入jmeter ,新建一个测试计划,并新建一个http信息头管理器
输入对应的信息头数据信息
2、新建一个登录线程组及获取验证码的请求(因为这是一个需要验证码的登录接口所以我们得先获取它的验证码)
并输入对应的请求信息
3、添加结果树,查看对应的响应数据
4、我们需要将这个uuid提取出来,添加一个json提取器
5、将uuid提取之后,我们需要添加BeanShell取样器把它设置为全局变量
6、然后添加一个【用户自定义的变量】,在这里引用,其他接口就可以直接获取里头的uuid
插曲:函数可以直接用函数助手生成,步骤如下
打开方式:点击【工具】–【函数助手对话框】
2、使用步骤 :选择函数类型–输入名称 -输入对应的值
生成的函数
- 回归正题
以上我们就配置好了登录需要用到的uuid字段 接下里我们获取code字段
7、同样新建一个【BaeShell取样器】
通过以下代码去获取redis中的code
import redis.clients.jedis.Jedis;
import java.util.ArrayList;
import org.apache.commons.lang3.StringUtils;
String host = "47.92.37.7"; //服务器地址
int port = 6379; //端口号
String password = ""; //redis密码
int index = 0; //redis db,默认为0
String key = "captcha_codes:${uuid}"; //key值,需要读取数据的键值
Jedis jedis = new Jedis(host, port);
if(StringUtils.isNotBlank(password)){
jedis.auth(password);
}
jedis.select(index); //选择redis db
String value= jedis.get(key); //通过key值获取对应value
log.info("value:"+value);
vars.put("code",value); //将获取的value值保存到jmeter变量code中
//将获取的value值保存到jmeter变量code中(这就是下一个登录接口中传参需要用到的code 需要获取的值)!!!!
8、添加一个查看结构树,看看code是否正常获取
显示执行成功 ,至此我们就获取到了uuid和code,我们就可以去做登录接口了
9、新建一个登录的http请求,并输入对应的请求参数
10、添加查看结果树,来查看登录接口是否成功
11、我们将返回的token数据设置未全局变量,同样添加一个BeachShell取样器
12、设置为全局变量后,我们需要放入用户自定义变量中供其他接口使用