news 2026/6/9 21:29:23

Postman接口测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Postman接口测试
pre-request script 介绍

在过往的工作中,遇到很多测试小伙伴使用 postman 的时候都是直接通过 api 文档的描述请求,检查返回的数据是否正常,很少会用到 pre-request Script 这个功能,甚至也有不少开发的小伙伴也是很少用到这个功能。这个功能类似于 python unittest 里面的 setup 或者是 pytest 里面的 conftest 文件,在执行测试前先执行的函数。

pre-request script 应用

pre-request script 是 postman 执行前的前置条件功能。它能够做到 request 请求前的工作。包括:

以上都是可以在 pre-request script 功能做的。

postman 执行顺序

首先来讲一下,postman 的执行顺序,其实这个只看一张图就够了。

从 postman 的介绍中,可以知道 postman 执行的顺序会先去到 pre-request script 检查是否有需要执行的前置条件。

pre-request script 场景实践

场景一:登录验证加密

现在有一个我们项目中,登录接口是通过 user token 登录的。前端页面需要填写 username 以及 password,再通过 js 进行 MD5 加密处理,最后请求接口验证返回登录状态。

  1. api : /api/login

  2. method : post

  3. headers :

  4. token: user_token

  5. Content-Type: application/json

生成 user_token 方式: username&psaaword 大写

上面就是接口文档说明的,要通过 md5 方式对 username&password 进行加密。那么在 pre-request script 里面,我们可以这样做。

点开环境变量会看到已经生成了 user_token 对应的加密 token 了。

场景二:切换环境变量

可能对应这个场景比较少人会用上,但是不得不说,这个场景确实有用。

平时我们切换测试或者产线环境的时候,都是命名不同的环境名称,然后将对应环境的 HOST 填写到环境变量里面去。经常我们会命名这样的:TEST_HOST,PROD_HOST 这样的方式,当我们切换环境的时候,在 request 中改 HOST 即可。

如果我们可以在请求前,可以自动切换不同的 HOST 就更好。

我们可以这样做,首先在 collection 中定义不同环境的 HOST。

其次,我们在 pre-request script 中定义我们的函数

  1. let varbs = new Set()

  2. pm.collectionVariables.values.each(v => {

  3. varbs.add(v.key.toUpperCase())

  4. })

  5. pm.collectionVariables.values.each(v => {

  6. let envVarbKey = [pm.environment.name, v.key].join("_").toUpperCase()

  7. if (varbs.has(envVarbKey)) {

  8. pm.collectionVariables.set(v.key, pm.collectionVariables.get(envVarbKey))

  9. }

  10. });

这里面的意思,就是根据环境名去 variables 中寻找我们对应的 HOST

最终,我们只需要在不同环境中维护 api-key 等参数即可。

场景三:获取另外接口的响应值并进行更新

在请求的时候,需要获取到另外一个接口的响应值,并将响应值作为当前 request 的参数。在这里,pre-request script 不仅仅能写函数,还能写请求函数。

  1. // Refresh the OAuth token if necessary

  2. var tokenDate = new Date(2022,9,3);

  3. var tokenTimestamp = pm.environment.get("OAuth_Timestamp");

  4. if(tokenTimestamp){

  5. tokenDate = Date.parse(tokenTimestamp);

  6. }

  7. var expiresInTime = pm.environment.get("ExpiresInTime");

  8. if(!expiresInTime){

  9. expiresInTime = 300000; // Set default expiration time to 5 minutes

  10. }

  11. if((new Date() - tokenDate) >= expiresInTime)

  12. {

  13. pm.sendRequest({

  14. url: pm.variables.get("Auth_Url"),

  15. method: 'POST',

  16. header: {

  17. 'Accept': 'application/json',

  18. 'Content-Type': 'application/x-www-form-urlencoded',

  19. 'Authorization': pm.variables.get("Basic_Auth")

  20. }

  21. }, function (err, res) {

  22. try{

  23. pm.environment.set("OAuth_Token", res.json().access_token);

  24. pm.environment.set("OAuth_Timestamp", new Date());

  25. // Set the ExpiresInTime variable to the time given in the response if it exists

  26. if(res.json().expires_in){

  27. expiresInTime = res.json().expires_in * 1000;

  28. }

  29. pm.environment.set("ExpiresInTime", expiresInTime);

  30. }

  31. catch(e) {

  32. console.log('Unable to load access token from response);

  33. }

  34. });

  35. }

这里面的函数,主要是通过检索 token 是否过期,重新生成 token 的请求方法。比较简单理解。

1、检查 token 是否过期

2、如果过期,就生成新的 token

3、将新的 token 设置到环境变量,然后记录设置的时间

总结

以上就是这篇文章主要讲的内容,主要是讲解 pre-request script 在工作中的应用场景,希望可以帮助到大家。

扩展

前面说到的加密方式,有很多种,不仅仅是 MD5 加密,同时还有 RSA,AES,bash64 SHA1 等等。

这几种加密方式有什么不同,在这里简单讲一下:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:26:01

使用Open-AutoGLM做短视频的7个隐藏功能(90%的人都不知道)

第一章:Open-AutoGLM在短视频创作中的核心价值Open-AutoGLM作为新一代开源自动化生成语言模型,在短视频内容生产领域展现出颠覆性的技术优势。其核心价值在于将自然语言理解、多模态内容生成与智能编排能力深度融合,显著降低专业级视频创作的…

作者头像 李华
网站建设 2026/6/9 21:17:44

从IT支持到网络安全分析师:我的GRC职业旅程与技术洞见

从IT支持到网络安全分析师:我的GRC职业旅程 如果有人几年前告诉我,有一天我会在治理、风险和合规领域为组织提供指导,我可能会大笑。那时,网络安全听起来像是专属于满墙监视器的暗室里那些神秘专家的领域。我只是一个IT支持技术员…

作者头像 李华
网站建设 2026/6/9 21:21:15

毕业论文救星!8个免费AI生成器20分钟搞定文理医工全覆盖

还在为毕业论文的庞杂工程而彻夜难眠吗?从选题、开题、文献综述到初稿撰写、格式排版、降重修改,每一步都足以让大学生和研究生们心力交瘁。传统的写作方式耗时耗力,效率低下,早已无法满足快节奏的学术要求。 今天,作…

作者头像 李华
网站建设 2026/6/9 21:24:04

EasyGBS扩展市场:视频监控系统的“应用商店”,拖入安装、即装即用!

面对不断涌现的新需求,传统的视频监控平台升级往往意味着漫长的等待和高昂的成本。但现在,这一切正在被改变。想象一下,你的视频监控平台不再是一个功能固定的“黑盒子”,而是一个可以像智能手机一样,通过“应用商店”…

作者头像 李华