Postman系列四:Postman接口请求设置环境变量和全局变量、测试沙箱和测试断言、测试集运行与导入数据文件
一:Postman中接口请求设置环境变量和全局变量
全局变量和环境变量可以通过Pre-request Script和Tests设置,会在下面测试沙箱和测试断言中讲到。
全局变量的设置:官网参考https://learning.getpostman.com/docs/postman/environments_and_globals/manage_globals/
在这里我选择的是天气预报接口(接口文档官方一直在更新,所以看到跟我说的有啥不同,不要见怪),具体操作如下
1.在浏览器上打开天气预报链接,查看接口文档,获取请求方法和参数,之后复制url,打开Postman新建Request,填入必要的信息发送请求查看结果。
2.在小眼睛右边的设置里面添加全局变量名称和值,变量名称注意规则,不要取汉字啥的。之后在用参数的时候使用{{参数名}}双大括号括起来,在写的过程中postman会自动出来补全让你选择,url后面跟的参数也会自动修改。全局变量可以修改值,也可以删除,还可以下载成json格式的。
环境变量的设置:官网参考https://learning.getpostman.com/docs/postman/environments_and_globals/manage_environments/
依然拿天气预报接口举例(由于之前我在测试的过程中添加了环境变量,找了好长时间,才知道是有删除的,不过不像以前的版本那么明显),操作如下图所示:
一组环境可以添加多个变量值,变量值之间不能重复,环境可以删除、修改、分享、复制、下载、导入等
全局变量和环境变量的区别:全局变量提供了一组变量,这些变量在所有范围内始终可用。您可以有多个环境,但是一次只能有一个环境在一组全局变量中处于活动状态,这些变量总是可用的。环境是一组键值对。键代表变量的名称。你可以使用数据编辑器修改环境的键和值组件。如果你选择了一组环境,环境里面有跟全局变量相同的变量,值会取环境变量的值,就是环境变量优先级大于全局变量。
二:Postman中测试沙箱和测试断言实战
1.测试沙箱简介:
Postman沙箱(Sandbox)是一个JavaScript执行环境,当您为请求编写预请求脚本和测试脚本时,编写的代码在这个沙箱中进行。Postman测试沙箱其实就是结合了JS脚本完成测试中的功能,在请求发起前后实现部分测试操作。
测试沙箱常用功能:(1).Pre-request Script 在请求前,脚本设置前置操作如设置变量等。(2).Tests在请求后对状态码、响应头、响应正文等信息进行断言操作。
2测试断言简介:
一般来说我们需要对测试结果进行校验,判断结果是否符合我们的预期,也就是断言。这个测试断言属于测试沙箱功能的一部分。在接口测试中一般会根据响应状态码或者响应后的数据来进行断言。
3.常用的测试脚本(右边快捷中常用的测试语句,用到console.log()语句的时候,在发送之前先打开控制台,快捷键是crtl+Alt+C)
(1).Pre-request Script中常用的测试脚本有设置环境和全局变量,获取环境和全局变量等。在测试沙箱中,接口请求如果set了环境变量,则优先级大于send上方选中的一组环境。
(2).Tests中用到的测试脚本较多。常用的如下图所示:
对于复杂数组的取值看下图操作:
三:Postman中测试集运行和导入数据文件
在前面的时候,我们提到了测试集的一些内容,测试集的创建方法:1.直接将request保存在Collections中;2.先创建Collections,然后添加request;3.导入别人给的Collections文件。Collections可以直接运行所有的request,也可以用csv或者json文件进行导入多条测试数据。Collections runner运行在一个独立的面板中,可以设置环境,运行次数,从文件获取变量等。
csv文件可以通过excel文件进行转换,转换完之后可以通过notepad++修改编码格式为:utf-8,否则会在运行测试集的过程中选择csv文件会出现乱码,文件中第一行必须是接口请求使用的变量。在测试沙箱中,参数的获取用 data.name(常用写法)或者 data['name']的形式来进行读取。如果测试集选择了csv文件或者json文件运行,不需要再选择一组环境值。