Httprunner 3.0 接口自动化之 token 传参

时间:2024-03-28 22:49:33

在平时的测试工作中,经常需要将上一个接口的返回值作为下一个接口的入参,达到参数传递的目的 。今天我就介绍下如何利用 Httprunner 框架进行参数调用,以最常见的登录获取 token为例。

 

其实,我们要解决的问题就是:

1、如何提取token值?

2、如何传递参数?

 

首先查看使用 Httprunner - V查看下版本,我这里用的是 3.1.4 。

Httprunner 3.0 接口自动化之 token 传参

 

一、创建登录接口用例

我通过 fiddler 抓包,生成 .har 文件,再通过命令转换成 .py文件。不熟悉的朋友,可以看我的 Httrunner 入门文章,里面介绍了怎么操作。

注意:最好将 gettoken_test.py 文件放在 testcases 文件夹下。

Httprunner 3.0 接口自动化之 token 传参

 

gettoken_test.py 的完整内容如下:

Httprunner 3.0 接口自动化之 token 传参

 

二、提取token值

提取之前,我们需要看一下返回的数据长什么样。现在大部分接口返回都是JSON形式,如图,返回的是JSON 形式,我们需要里面 access_token 字段的值。

Httprunner 3.0 接口自动化之 token 传参

 

Httprunner 是使用 .with_jmespath 提取JSON响应数据,并返回给一个自定义变量。

extract

.WITH_JMESPATH

Extract JSON response body with jmespath.

with_jmespath(jmes_path: Text, var_name: Text)

  • jmes_path: jmespath expression, refer to JMESPath Tutorial for more details
  • var_name: the variable name that stores extracted value, it can be referenced by subsequent test steps

 

在这里,我们只需要加上

.extract( )

.with_jmespath("body.body.access_token", "access_token") # 提取返回参数中的token,传给access_token

 

为了方便记忆,传给变量的名字我也设为 access_token。

Httprunner 3.0 接口自动化之 token 传参

 

 

三、传递参数

提取完了,就是如何传递 token。我们使用 $ 符号加自定义的参数名即可。

$access_token

Httprunner 3.0 接口自动化之 token 传参

 

怎么样?是不是很简单,参数传递是我们测试过程中必不可少的内容哦!大家也试一试吧!