Postman多环境的高级应用
前言
楼主在写这篇文章时,也是基于在实际工作当中遇到的问题总结,也做了一些小的尝试并最终实现了这个小功能,因此及时做一个记录,希望对自己或有相同疑惑的朋友做一个简单的参考,也真诚地欢迎大家提出更好的建议,谢谢大家!
一、楼主遇到的场景是什么?
使用postman进行接口测试时,对于多个环境(例如qa、prod环境)(不同的账号),如何在切换环境(不同的账号)时,就自动地将所对应的环境数据(包括其中的变量)应用到所选择环境下的所有接口中呢?如果每次都需要进行手工操作,那么效率就会特别低下,而且也没有把postman的强大功能发挥出来。是不?所以这个问题我们必须解决。
二、如何进行实现呢?
假如我们现在有一套接口需要测试,并且有两个环境(不同的账号),一个是QA(账号1)、一个是Prod(账号2)。当然啦,所有的接口都不变,只是环境(不同的账号,参数值或个数不同)不同而已,那么需要对这两个环境(不同的账号)都需要测试这套接口时,我们该如何下手呢?
首先,我们要明白第一个问题,那就是这个接口:登录。如果没有这个登录接口来返回一个token,那么后续的所有接口都无法正常测试(这套接口比较特殊,除了登录其余的接口都是get请求,都需要附带token进行调用,大家按照实际情况处理就行),所以我们先需要将这个问题解决。
接下来,我会大部分以图片的形式(图片中会加说明)进行步骤操作说明。接着往下走~
1、登录接口的后置处理,在响应信息中对token所在的json数据中提取,并指定为一个变量,以便后续的接口可以直接引用,如下图所示。记得处理的代码中,格式要和你实际返回的带有token信息的格式匹配上,也就是取json的值,编写的格式。
2、登录接口取的token,我们应该在其他接口中如何使用呢?我这里简单只拿一个接口演示下就行,其他的剩余接口都是一样的写法,很简单。
到这里,是不是第一个大问题就解决了呢?其实也不是很难,只要善于利用postman中提供的各种方法就行,慢慢摸索就出来啦。
那么,第二个大问题来了,如果我只需要切换不同的环境(不同的账号),对应的token也就跟着自动同步到对应的环境,并且对应环境中的变量(值)也同步,该如何操作呢,怎么做,才会实现换个环境,就知道需要什么环境的信息(账号所对应的不同token呢)?
3、我们先增加两个环境,在右上角有一个“设置”图标,点击它,如下图所示
4、注意,添加的两个环境(两个账号不同的参数),添加完成后,现在就有了两个环境(不同的账号),抱歉,这里忘了说了,我这里的两个环境其实是不同的账号(因为不同的账号对应的是不同的菜单,不同的菜单就对应不同的参数个数或者参数值),所以这里我进行分开了。那么接下来该怎么做呢?其实,这里我们只需要将1步骤中的接口,进行Pre-request script处理,也就是前置处理,就能区分出环境变了,那么对应的账号也就变了,看下图所示。
其中的全局变量aoount1、account2、password的含义我在图中进行了说明
那么,其中的mark是什么呢?这个就是判断是什么环境的重点变量啦。在每个环境中都写上相同的变量名:mark,就可以直接快速的判断当前是什么环境,该传入的account是什么啦?如下图所示。
那么上上个图里的account是什么呢?,这就是登录接口中的post要请求的数据,我这里也是做了个引用,如下图是所示
之后我们只需要在右上角切换环境,就会根据mark的值判断是传入哪个帐号咯,从而进行多个账号(不同环境)的token使用啦。
5、当然了,在第1步骤中的Test,我们也可以进行断言,例如如下的简单应用
到这里,其实基本思路就是这些了,也是第一次写,难免会有很多不足和错误,还请大家多多指正。
总结
在实际应用当中,只要我们按照业务规则和测试要点与postman进行合适的结合就行啦~