深度探索:在 Postman 中实现自动化测试的全面指南!,2024年最新感悟分享

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

2.3 编写测试脚本

Postman 允许你使用 JavaScript 在 Tests tab 中编写测试脚本,测试脚本可以用来验证响应状态、响应时间、响应体等。比如我要在 [Postman]中将下面返回响应的 token 校验字段提取到环境变量中,我要怎么写脚本呢?

{
“code”: “0”,
“data”: {
“token”: “fgub938t203t9ug0j2r9it2094942”
},
“message”: “success”
}

要提取出上面的 token 校验字段到环境变量中,你可以在 Tests 中写入以下脚本。

var body = JSON.parse(pm.request.body.raw);

var token = body.token;

console.log("Token: " + token);

pm.environment.set(“token”, token);

一般接口的 token 是用来鉴权的,所以你需要将其存到环境变量中,然后在 Collections 中全局引用这个变量,这样其它接口在测试或者是自动化测试的时候就可以继承这个鉴权的 token 了。

有一点要注意,在集合中设置了鉴权的 token 后,在接口中需要选择“Inherit auth from parent”,也就是继承父级(继承自集合中设置的 token),不然不会生效的。

2.4 使用 Pre-request Scripts

Pre-request Scripts 允许你在发送请求之前执行一些脚本。这可以用来动态生成请求参数、设置请求头、修改请求正文等。比如你要在发送请求时在每个请求的请求头加上一些参数,你就可以在集合的 Pre-request Scripts 中编写 Javascript 脚本,这取决于你的需求,形如:

pm.request.headers.add({
key: ‘aaaaa’,
value: ‘bbbbb’
});

2.5 运行测试和查看结果

当上述步骤完成后,也就是你根据你的业务需求,将接口、环境及环境变量、接口鉴权校验、请求头都设置完毕后,你可以试着点击“Send”按钮来调试一下,看看是否符合初步预期,如果符合,接下来就可以在 Postman 中运行自动化测试了。

提个醒,在编写任何自动化测试之前,都要首先确保单个接口能够调试成功,然后逐步往下联调集成,养成良好测试路径,才能事半功倍。

要在 Posmtan 中进行自动化测试,你可以点击集合名上的“。。。”,然后点击“Run collection”选项打开 Runner 页。

在 Runner 页,你可以选择需要测试的接口,然后选择循环次数、间隔时间,也可以上传 Data 文件,这个文件是需要测试的数据,设置完毕后点击“Run ”运行即可。

运行完成后,你可以在 Collection Runner 的结果窗口中查看每个请求的执行情况。这包括请求的响应时间、状态码、响应体等信息,这样,一个简单的自动化测试就完成了。

三、高级功能与最佳实践

3.1 Postman 自动化测试的进阶脚本编写

使用 Chai Assertion Library 增强测试能力

Chai Assertion Library 是一个功能强大的 JavaScript 断言库,可以帮助你编写更复杂、更具可读性的测试脚本。Postman 内置了 Chai Assertion Library,因此你可以直接在测试脚本中使用 Chai 的断言方法。

以下是一些 Chai 断言方法的示例:

  • pm.expect(actual).to.be.equal(expected);:断言实际值等于预期值。
  • pm.expect(actual).to.be.above(expected);:断言实际值大于预期值。
  • pm.expect(actual).to.be.below(expected);:断言实际值小于预期值。
  • pm.expect(actual).to.include(expected);:断言实际值包含预期值。
  • pm.expect(actual).to.have.lengthOf(expected);:断言实际值具有指定的长度。

这些 Chai 断言方法需要包裹在 pm.test() 中使用。在 Postman 中,pm.test() 是用来编写测试脚本的方法,你可以在其中编写你的测试逻辑,包括断言部分。因此,你应该将这些断言方法放在 pm.test() 中,以确保它们在测试中正确执行,并根据断言结果生成相应的测试结果,例如:

pm.test(“Status code is 200”, function () {
pm.response.to.have.status(200);
});

pm.test(“Status code is 200”, function () {
pm.expect(“actual”).to.be.equal(“qq”);
});

如何利用环境变量在多个请求间传递数据

Postman 的环境变量允许你在不同的请求之间传递数据。这可以用来共享一些公共的数据,例如:用户凭证、API 密钥、测试数据等。具体步骤已经在上文的 2.2 和 2.3 小节讲过,不再具体赘述。简单来讲就是在环境变量中设置变量及变量值,然后在 Collection 中通过{{}}引用环境变量即可。

3.2 CI/CD 集成

如何将 Postman 测试集成到 CI/CD 流程中

将 Postman 测试集成到 CI/CD 流程中可以帮助你实现持续集成和持续交付。这样,你可以在每次代码更改后自动运行 Postman 测试,并根据测试结果决定是否将更改部署到生产环境。

以下是一些将 Postman 测试集成到 CI/CD 流程中的步骤:

1.安装 Postman Newman

Postman Newman 是一个命令行工具,可以帮助你在 CI/CD 流程中运行 Postman 测试。要安装 Postman Newman,请按照以下步骤操作:

  • 在你的 CI/CD 服务器上安装 Node.js。
  • 使用以下命令安装 Postman Newman:

npm install -g newman

2.将 Postman 测试导出为 JSON 或 Collection 文件

要将 Postman 测试导出为 JSON 或 Collection 文件,请按照以下步骤操作:

  • 在 Postman 中打开要导出的测试文件。
  • 单击“导出”(Export)按钮。
  • 选择要导出的格式(JSON 或 Collection)。
  • 将导出的文件保存到你的 CI/CD 服务器上。

3.将 Postman Newman 集成到你的 CI/CD 工具中

你可以使用不同的 CI/CD 工具来集成 Postman Newman。以下是一些示例:

  • Jenkins:

pipeline {
agent any

stages {
stage(‘Run Postman Tests’) {
steps {
sh ‘newman run /path/to/postman_collection.json’
}
}
}
}

  • Travis CI:

language: node_js

script:

  • newman run /path/to/postman_collection.json
  • CircleCI:

version: 2.1

jobs:
run_postman_tests:
docker:

  • image: circleci/node:latest
    steps:
  • checkout
  • run:
    name: Run Postman Tests
    command: newman run /path/to/postman_collection.json

上面的流水线命令你可以在 Postman 中生成,还是在自动化测试的 Runner 页,在页面中点击“Automate runs via CLI”选项,然后点击下方的“Configure command”即可。

来到配置页,你可以选择相应的平台(比如 Jenkins、Gitlab)来生成对应的 Postman CLI 命令。

3.3 最佳实践和常见问题

测试用例组织技巧

  • 将测试用例组织成不同的集合(Collection),以便于管理和运行。
  • 使用 Postman 的文件夹功能来组织测试用例。
  • 为每个测试用例编写清晰的描述,以便于理解其目的。
  • 使用标签来标记测试用例,以便于过滤和搜索。

性能和效率优化建议

  • 避免在测试脚本中执行耗时的操作,例如数据库查询或文件读取。
  • 使用 Postman 的 Pre-request Scripts 来设置请求头和参数,而不是在每次请求中都重复设置。
  • 使用 Postman 的 Tests tab 来验证响应,而不是使用 console.log() 或其他方法。
  • 使用 Newman 来运行 Postman 测试,而不是使用 Postman GUI,可以提高性能。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
用 Newman 来运行 Postman 测试,而不是使用 Postman GUI,可以提高性能。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-EXRrAUEV-1713232144634)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值