这里记录以下我在测试http/https接口时经常用到的事情,以免长时间不用会忘记
cookie
使用系统为了安全等原因肯定是要认证用户身份,因此接口要验证用户是否登录,那么就需要获取登录cookie.Jmeter里是在配置元件中创建一个HTTP Cookie管理器,如下图
怎么获取cookie?可以先看看cookie是什么样子,先登录系统 按F12如下图找到cookie的name和value
将这些信息填入Jmeter Http Cookie管理器里,如下图,这样我们的cookie就设置好了,cookie是有过期时间的,过期后重新获取即可
header
jmeter创建 http信息头管理器与创建http cookie管理器类似,在配置原件里添加即可,请求头可以包含的信息可以参考此链接https://www.runoob.com/http/http-header-fields.html,根据需要填写信息,我这里只需要几个常用的:
Content-Type:application/json;charset=UTF-8
Accept:application/json, text/plain, /
Accept-Encoding:gzip, deflate,br
(这些信息可以页面请求时按F12抓包看一下具体的请求信息)
用户自定义变量
在配置元件里添加用户自定义变量,填上请求中需要的静态变量和动态变量,静态变量就是 name:王小明这种,动态变量就是根据接口实时获取到的值放入变量里,用来做下一个接口的参数,例如:name:${__P(name,)},这里的变量都是全局变量
在使用中如何给动态变量赋值,我这里是用json提取器拿到参数值,这个值其实可以直接用的,只不过不是全局变量,在其他线程组中拿不到这个值,就需要再创建一个BeanShell后置处理器将值弄成全局变量,下图是根据返回值的接口提取参数值
将参数经过BeanShell后置处理变成了全局变量,其他线程组也可以拿到这个值了
HTTP请求默认值
在配置元件里添加http请求默认值,这里主要写协议,域名,端口,以及编码类型,后面的请求 就不用重复填写这些信息了
这里我遇到了一个坑,就是在域名中包含端口,导致实际请求时请求里包含了中括号,例如域名为:http://10.249.xx.xx:8090/test/other/v1,如图所示
接下来请求会失败,因为jmeter自动给加了个[].如图所示,这样肯定时请求失败的,怎么去掉这个括号呢,只能把端口后面的放在具体的请求里,这个请求默认值里只写ip端口
如图,这样就可以正常请求了
先记录到这里,之后再补充吧