在平时的测试工作中,经常需要将上一个接口的返回值作为下一个接口的入参,达到参数传递的目的 。今天我就介绍下如何利用 Httprunner 框架进行参数调用,以最常见的登录获取 token为例。
其实,我们要解决的问题就是:
1、如何提取token值?
2、如何传递参数?
首先查看使用 Httprunner - V查看下版本,我这里用的是 3.1.4 。
一、创建登录接口用例
我通过 fiddler 抓包,生成 .har 文件,再通过命令转换成 .py文件。不熟悉的朋友,可以看我的 Httrunner 入门文章,里面介绍了怎么操作。
注意:最好将 gettoken_test.py 文件放在 testcases 文件夹下。
gettoken_test.py 的完整内容如下:
二、提取token值
提取之前,我们需要看一下返回的数据长什么样。现在大部分接口返回都是JSON形式,如图,返回的是JSON 形式,我们需要里面 access_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。
三、传递参数
提取完了,就是如何传递 token。我们使用 $ 符号加自定义的参数名即可。
$access_token
怎么样?是不是很简单,参数传递是我们测试过程中必不可少的内容哦!大家也试一试吧!