一、常用的运行脚本
- 获取环境变量(针对不同测试环境,如正式环境、测试环境等)
pm.environment.get("variable_key");
- 获取全局变量(全局统一)
pm.globals.get("variable_key");
- 获取集合变量(针对各个请求所汇集成的集合体)
pm.collectionVariables.get("variable_key");
- 设置变量的方法只需将get改成set,参数传入key,value即可
- tests[’’]函数,结果为布尔值,用于检验该结果是pass还是fail,以下效果等同
1、pm.test("Status code is xx", function () { pm.response.to.have.status(xx);});
2、tests[‘Status code is xx’] = pm.response.to.have.status(xx)/responseCode.code===xx
- 检验响应体里是否包含想要的字符串
pm.expect(pm.response.text()).to.include("string_you_want_to_search")
- 检验Json格式数据里是否有想要的值
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
- 将响应体转成Json格式
pm.response.json()/JSON.parse(responseBody)/xml2Json(responseBody);
- 检验请求头是否包含某个字段
pm.test("Content-Type is present", function () { pm.response.to.have.header("Content-Type"); });
二、变量的作用范围
postman的变量有五种类型,按照变量的作用范围可以分为:
全局变量global > 集合变量collection > 环境变量environment > 数据变量data(文件读取) > 本地变量local(test脚本中var声明的变量)
但变量的优先级呈现的相反顺序,下图展现集合变量以及环境变量的优先级
三、Pre-request Script
Postman中,Pre-request Script的作用相当于Jmeter中的前置处理器。他可以在发送请求之前,对变量进行初始化或者拿到前一个请求的返回结果作为参数,我们只需要在请求中通过{{变量名}}即可拿到该变量。但是他只有在发送请求的时候才会生效,没有发送请求的话将鼠标悬停在上面,是不会有值的。
四、Collection批量执行
我们只需要将一个个的请求放在一个Collection里,点击Run Collection,配置相关项后即可批量执行接口。接口的执行顺序默认按照接口的排序顺序进行执行。也可以在test模块中通过
postman.setNextRequest("接口名")
指定下一个即将执行的接口。
批量执行
导入CSV文件进行数据参数化
1、编写数据文件,另存为csv格式,第一行必须是该列数据的列名
2、在相应请求上,通过{{列名}}方式获取数据
3、选中批量执行的集合,点击run collection,在配置页中导入数据文件,设置相关参数后,点击运行即可
五、完整示例展示
运行结果:
六、Monitor
关于监视器,其实就是定时执行对接口进行测试。但是要注意的是,该定时器对于本地环境是不生效的!需要测试的接口是正式上线的且是公共的能够为大家所访问的,若是使用本地环境进行定时测试,会报
postman-monitoring-request-error-error-neterr-getaddrinfo-enotfound-localhost
的错误,详细参考请见error-neterr-getaddrinfo-enotfound。