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

本文重点介绍Postman中Pre-request Script和Tests的相关知识。阐述了单个请求和集合角度下两者的执行顺序,指出集合级脚本优先级高于文件夹级和请求级。还说明了Pre-request Script用于请求前数据预处理,Tests用于自动判断接口请求是否正确,且Postman脚本一般支持JS,也可间接嵌入Python脚本。
部署运行你感兴趣的模型镜像

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

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

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

Tests:在发送请求之后执行

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

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

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

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

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

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

因此可以得出结论:

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

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年小博公众号文章集锦

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

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

PostmanPre-request Script脚本是用来在发送请求之前执行一些预处理操作的。这个脚本一般是用JavaScript编写的,可以用来解决一些接口自动化的问题,比如接口依赖、接口断言等等。\[2\]在Pre-request Script脚本中,你可以发送请求,也可以通过其他方式间接地嵌入Python脚本。一种方式是将你编写的Python脚本发布为API接口,然后在Postman中以接口的形式进行调用。\[1\]另外,Pre-request Script脚本还可以用来处理Token的过期问题。当Token过期时,你可以在脚本中手动调用登录接口获取最新的Token,从而节省操作步骤。\[3\]总之,PostmanPre-request Script脚本提供了一个执行JavaScript脚本的环境,可以帮助你解决接口测试中的各种需求。 #### 引用[.reference_title] - *1* [Postman教程-Pre-request ScriptTests脚本介绍](https://blog.youkuaiyun.com/liboshi123/article/details/116141831)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [软件测试——Postman Script脚本功能](https://blog.youkuaiyun.com/xfw17397388089/article/details/126763483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Postman + Pre-resuestScript:预请求脚本发送POST请求](https://blog.youkuaiyun.com/J_____Q/article/details/120289138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小博测试成长之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值