如何只请求一次登录接口

jmeter的setUp线程组为我们提供了方便,它一般用于请求的前置操作,比如登录,连接DB等。

新建setUP线程组

如图,右键测试计划选择setUP线程组
在这里插入图片描述

如何提取token并将其设为全局变量

新建json提取器

在登录请求下面新建json提取器
在这里插入图片描述
login_token为自定义d的token名称,$.data.authorization_uc为jsonpath,1为匹配次数。

设为全局变量

在登录请求下新建beanshell后置处理器,提取login_token的值命名为token
在这里插入图片描述

__setProperty(Property Name, Property Value, True/False)函数:setProperty函数设置一个JMeter属性的值。该函数的默认返回值是空字符串,所以该函数调用可以在任何函数有效的地方使用。
通过设置可选的第3个参数为 “true”,可以返回原始值。
属性对JMeter来说是全局的,所以可以用来在线程和线程组之间进行通信

参数说明是否必填
Property Name变量名称,自定义
Property Value变量值
True/False是否返回原始值,默认为False,为True会返回一个空值

如何实现接口关联

接口关联是接口测试中绕不开的话题,比如,以下我们要通过get请求一个物资库的数据,这个接口必须要登录后才能获取数据,不然将抛出401错误。

新建线程组及请求

这个线程组是普通的用户线程组
在这里插入图片描述

新建HTTP信息头管理器

我们的token需要放到headers里面发送给服务器,然后用__P函数提取全局变量token
在这里插入图片描述

__P(Property Name, Default Value)函数:一个简化的属性函数,旨在用于在命令行上定义的属性。与__property函数不同的是,没有选项可以将值保存在一个变量中,如果没有提供默认值,就假定它是1。选择1的值是因为它对常见的测试变量有效,如循环、线程数、斜率等。

参数说明是否必填
Property Name要提取的变量名称
Default Value可以自定义默认值,如果未设置,则默认值为1

以上操作无误后,该线程组下所有请求发送时都会自动带上登录后的token了

如何一键切换测试环境

可以通过创建HTTP请求默认值管理器,设置多个接口的base_url,要执行哪个环境,将其他环境禁用即可。
在这里插入图片描述

参考链接

  1. __setProperty函数
  2. __P函数
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐