快捷按钮:win+r 会弹出快捷运行弹框,我们输入cmd 后点击回车 会弹出一个控制窗口,我们输入jmeter,然后回车
win+r
首次进入jmeter,页面显示空白页且默认英文
我们可以切换语言 【Options - Choose Language - Chinese】 打开的空白页面会默认新建一个测试计划 我们可以给测试计划重新命名
同样重新命名,然后在登录线程组中新建一个请求 给请求输入对应的接口信息 接口信息: 填写接口信息
右键新建查看结果树,来查看请求结果
运行成功后,我们可以看到返回过来的响应结果
我们还可以添加断言来判断结果是否达到预期 输入需要断言的值msg 添加的断言我们还需要添加断言结果,来查看断言的结果 断言结果的内容显示 我们需要从获取验证码的信息 然后传入登录接口中才能登录成功,因此我们需要提取验证码中的 code及uuid,所以我们需要右键添加提取器
这样便提取了验证码接口中的code及uuid信息出来 由于验证码过于复杂 浪费的时间太久,所以我们另辟蹊径,向开发要了redis 软件来帮助做验证码接口的测试 【打开redis软件】 token信息 此处刷新
需要接口中的uuid 需要与redis对应
接口数据:
右键新建登录请求 输入对应的请求信息 同样我们给登录接口添加结果树及断言、断言结果
当登录接口请求成功后,我们需要提取里面的token,右键添加json提取器
获取用户信息需要拿到登录接口的token数据(一般情况要测系统内的模块 都是要登录后才能可以,所以我们把token可以设置为全局变量) 【右键添加http信息头管理器】 接口信息: 接口信息中,有个请求头部数据信息,是需要我们发起请求的时候填入的所有我们 token放入http信息头管理器里 【注意】接口中去请求头的参数放入http信息管理器中,请求体的参数放入请求的消息体数据处 同样我们可以去添加查看结果树及断言去看发起请求后返回的数据 也可以添加一个整个登录线程组的查看结果树,这样我们就可以看到线程组中所有请求的是否成功及返回的响应数据
也可以添加一个http请求默认值
由于每次请求token都会更换 然后我们需要多次去redis中查看token及code非常的不方便 所有我们可以在jmeter中配置,自动去获取更新的token及code 需要用到的文件: 这个包是用来连接redies的 这个文件我已经上传至资源,需要的自己拿,我们需要把这个包放入jmeter的lib中 commons-pools是jmeter自带的 jmeter需要引用jar包: 这样我们jmeter就用安装插件的一个功能了 然后我们去安装redies插件
回到jmeter: 在登录验证码接口中提取uuid
添加【BeanShell取样器】,讲uuid设置未全局变量 同样我们可以通过函数助手生成 然后我们把设置好的全局变量放入【用户定义的变量】中去,这样其他接口就能引用到里面的值 然后我们再通过连接redies去获取最新的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:${__property(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中
然后我们再把提取到的code及uuid传入登录接口中 这样可直接获取redies的值,可多次运行
【题外话】