Postman教程-Pre-request Script和Tests脚本的介绍

前面章节解决了“请求本身”的问题,但“请求前后的动作”是怎样处理的呢?比如在发送一个请求前,需要获取当前时间戳,这就需要用到Pre-request Script的知识了。另外,似乎还忽略了一个非常重要的知识点,请求返回响应后,如何自动判断响应是否正确呢?这就需要用到Tests的知识。本章将重点介绍Pre-request Script和Tests的相关知识。

对于单个请求而言,两个脚本执行顺序:

Pre-request Script:在发送请求之前执行

Tests:在发送请求之后执行

Postman教程-Pre-request Script和Tests脚本的介绍_第1张图片

站在集合角度,执行顺序如下:

① 与集合相关的Pre-request Script脚本将在集合中的每个请求之前运行。

② 与文件夹相关联的Pre-request Script脚本将在文件夹中的每个请求之前运行。

③ 与集合相关的Tests脚本将在集合中的每个请求之后运行。

④ 与文件夹关联的Tests脚本将在该文件夹中的请求之后运行。

集合和文件夹也能设置脚本,这点我之前没关注过:

Postman教程-Pre-request Script和Tests脚本的介绍_第2张图片

因此可以得出结论:

集合级脚本>文件夹级脚本>请求级脚本   {优先级从高->低}

Pre-request Script脚本的使用场景

一般用来在发送请求之前对数据进行一些预处理,比如获取当前时间戳、随机数之类的用于接口传参。

常见的函数以及用法有:

pm.environment.get("variable_key");
pm.globals.get("variable_key");
pm.variables.get("variable_key");
pm.collectionVariables.get("variable_key");
pm.environment.set("variable_key", "variable_value");
pm.globals.set("variable_key", "variable_value");
pm.collectionVariables.set("variable_key", "variable_value");
pm.environment.unset("variable_key");
pm.globals.unset("variable_key");
pm.collectionVariables.unset("variable_key");
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});

说明:

postman中的自己编写的脚本目前一般是只支持用js,但是你可以通过其他的方式去间接的嵌入python脚本, postman在Pre-request Script脚本中是可以发送请求的,那么你可以把写的python或者其他语言的脚本发布为api的接口,然后在postman中以接口的形式去进行调用。

Tests脚本使用场

Postman工具借助测试脚来帮助用户自动判断接口请求是否正确,相当于Load Runner工具中的检查点或者JMeter中的断言功能。

列举结果最基础的断言里面常用的函数:

//检查响应状态是不是200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});


//检查返回结果会否包含某个字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});


//响应时间会否小于200毫秒
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});


官网上,一些脚本的使用案例,感兴趣的可以自己学习:

https://learning.postman.com/docs/writing-scripts/script-references/test-examples/

英文文档并不可怕,一些简单的英文单词什么的还是应该要能够看懂的。

往期推荐

Postman教程-变量、集合的基本使用

Postman教程-通过设置代理/拦截器捕获请求信息

Postman教程-Response相关的基本操作

Postman教程-Send Requests相关的基本操作

Postman教程-接口测试流程&发送第一个请求

Postman+Newman+Git+Jenkins实现接口自动化测试持续集成

2020年小博公众号文章集锦

给大家分享一下在长沙租房子的经历

你可能感兴趣的:(python,javascript,js,编程语言,软件测试)