Postman 实用接口测试系列 2 - 接口依赖

2020-07-08  本文已影响0人  breathfish

在接口测试中,经常会遇到接口之间存在依赖的情况,比如接口B的输入依赖于接口A的输出。这时候就涉及到接口之间数据的流动。 今天我们这一章要介绍的就是如何使用postman处理接口之间的依赖。
不过在介绍具体如何解决接口依赖的问题前,我会先介绍下一些基础知识,如果大家对于基础已经掌握了,可以直接看第三部分。

大纲:
* Postman的变量介绍
* Postman的变量的操作
* 接口依赖操作的例子

1 Postman的变量介绍

1.1 类型

Postman根据变量的作用范围,提供了5中不同类型的变量:

1.2 生命周期的关系

如下图所示,如果一个变量同时定义在多个地方,则会使用最里面定义的变量。例如一个叫username的变量同时定义在global 和 local里,则会使用local里定义的值。

Variable Scope

2 Postman变量操作

2.1 通过UI进行操作:

2.2 使用变量

使用双花括号就可以使用这个变量了。比如 {{username}}

2.3 通过脚本进行操作:

pm.globals.set("variable_key", "variable_value");
pm.globals.get("variable_key");

pm.collectionVariables.set("variable_key", "variable_value");
pm.collectionVariables.get("variable_key");

pm.environment.set("variable_key", "variable_value");
pm.environment.get("variable_key");

pm.variables.set("variable_key", "variable_value");
pm.variables.get("variable_key");

注意:
Postman 把环境变量和全局变量是存为string类型,如果我们要存的是一个arrays或者objects,需要使用 JSON.stringify()方法,在检索他们的时候记得使用JSON.parse()方法。

Variable Scopes

3 接口依赖的例子

前面我们介绍了这么多基础知识,现在我们使用他们来解决我们接口依赖的问题。关于这一部分,我将会举一个具体的例子来说明。

背景:

假设我们有一个login接口,它会生成token,query接口需要使用token才可以访问。也就是query接口依赖于login接口.

如何选择变量:

按照其他提到的,首先非必要情况尽量不要使用全局变量,所以全局变量排除。
其次,我们这个接口不仅仅有DEV环境,还会有QA和Prod环境,所以也排除了collection变量。
再次,我们并不希望代码跑完token的值就没了,因为除了query接口,我们还会有一系列登陆后才可以使用的接口都需要这个token。
综上,我们选择了环境变量。

步骤:

1.创建一个环境,命名为DEV
2.在login接口的test加入如下代码,导出他的token

var data \= JSON.parse(responseBody);

if(data.accessToken){

postman.setEnvironmentVariable("access-token", data.accessToken);

3.选择环境DEV,跑login接口 ,之后我们会发现环境变量里多一个一个变量叫做access-token, 同时它的值就是login接口返回的response的token

4.query接口通过{{access-token}} 使用变量

这样一个接口依赖的例子就结束啦。下一章将会介绍如何编写测试代码。

上一篇 下一篇

猜你喜欢

热点阅读