Postman 脚本入门:初学者必备指南

在探索 API 测试自动化环墁下,Postman 脚本显现其强大功能和灵活性,它不仅仅是 API 测试的工具,更是一个综合性的自动化平台。

Postman 脚本简介

Postman 允许用户在 API 请求生命周期中运行 JavaScript 脚本,这些脚本分为以下三类:

  1. 预请求脚本(Pre-request Script) :发送请求前执行,常用于配置环境和预处理数据。
  2. 测试脚本(Tests) :在响应到达后执行,用来校验响应的数据和状态码。
  3. 集合脚本(Collection Scripts) :在整个请求集合的开始和结束时执行,用于设置和清理测试环境。

这些脚本能够与 Postman 的环境和全局变量进行交互,增加了测试的自动化、数据驱动性和请求的动态性。

编写 Postman 脚本的技巧

环境变量的设定与使用

环境变量的使用可以在不同环境间重复使用相同的请求。以下代码片段展示如何在脚本中设置和调用环境变量:

// 设置环境变量
pm.environment.set("userToken", "abcde12345");

// 调用环境变量
let userToken = pm.environment.get("userToken");
console.log(userToken);

示例:预请求脚本

在 API 请求发送之前,可以使用预请求脚本进行必要的数据处理或生成认证令牌:

// 生成一个认证令牌,并将其加入请求头中
var jwt = require('jsonwebtoken');
var payload = {"userId": "user123"};
var secret = "secretkey_example";

var token = jwt.sign(payload, secret);
pm.request.headers.add({key: "Authorization", value: "Bearer " + token});

示例:测试脚本

测试脚本用于检验 API 响应,确保它满足预设的条件:

// 检查响应状态码和响应体
pm.test("Status code is 200 and the username is correct", function () {
    pm.response.to.have.status(200);
    var jsonData = pm.response.json();
    pm.expect(jsonData.user).to.eql("JohnDoe");
});

高级应用场景

数据驱动测试

借助外部数据文件(CSV 或 JSON 格式),可以实现数据驱动测试:

// 从CSV文件读取数据驱动测试案例
let userData = pm.iterationData.get("userData");

pm.sendRequest({
    url: 'https://api.example.com/user',
    method: 'GET',
    header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + userData.token
    }
}, function (error, response) {
    pm.test("Test User Data", function () {
        pm.expect(response).to.have.status(200);
        var data = response.json();
        pm.expect(data.id).to.eql(userData.id);
    });
});

动态请求和逻辑处理

通过控制流语句,脚本可以根据条件执行不同的逻辑路径:

// 根据不同的响应状态码进行不同操作
if (pm.response.code === 200) {
    console.log("Operation successful");
} else {
    console.error("Operation failed with status: " + pm.response.code);
}

使用 Apifox 轻松构建脚本

将 API 导入 Apifox 进行修改

将 API 导入到 Apifox 中,迈出完善 API 的第一步。 Apifox 支持各种 API 文件类型,包括 OpenAPISwagger)、Postman 和 Insomnia 等 20 多种。

点击「项目设置 - 导入数据」,选择你需要的类型,拖入文件或者填写 URL 即可,非常简单。

在 Apifox 中添加自定义脚本

完成 API 导入或在 Apifox 上创建新项目后,你可以继续添加自定义脚本。

在 API 的修改文档部分,找到「后置操作」。选择添加「自定义脚本」,可以在此处为 API 请求实施自定义脚本,还可以选择右侧的“代码片段”选项选择自己需要的代码一键套用。

总结

利用 Postman 脚本,用户可以构建深度自定义的测试场景,不仅提升 API 开发与测试的效率,更加确保结果的准确性。

全部评论

相关推荐

会飞的猿:我看你想进大厂,我给你总结一下学习路线吧,java语言方面常规八股要熟,那些java的集合,重点背hashmap八股吧,jvm类加载机制,运行时分区,垃圾回收算法,垃圾回收器CMS、G1这些,各种乐观锁悲观锁,线程安全,threadlocal这些。在进阶一些的比如jvm参数,内存溢出泄漏排查,jvm调优。我这里说的只是冰山一角,详细八股可以去网上找,这不用去买,都免费资源。mysql、redis可以去看小林coding,我看你简历上写了,你一定要熟,什么底层b+树、索引结构、innodb、mvcc、undo log、redo log、行级锁表级锁,这些东西高频出现,如果面试官问我这些我都能笑出来。消息队列rabbitmq也好kafka也好,学一种就行,什么分区啊副本啊确认机制啊怎么保证不重复消费、怎么保证消息不丢失这些基本的一定要会,进阶一点的比如LEO、高水位线、kafka和rocketmq底层零拷贝的区别等等。计算机网络和操作系统既然你是科班应该理解起来问题不大,去看小林coding这两块吧,深度够了。spring boot的八股好好看看吧,一般字节腾讯不这么问,其他的java大厂挺爱问的,什么循环依赖啥的去网上看看。数据结构的话科班应该问题不大,多去力扣集中突击刷题吧。项目的话其实说白了还是结合八股来,想一想你写的这些技术会给你挖什么坑。除此之外,还有场景题、rpc、设计模式、linux命令、ddd等。不会的就别往简历上写了,虽然技术栈很多的话好看些,但背起来确实累。总结一下,多去实习吧,多跳槽,直到跳到一个不错的中厂做跳板,这是一条可行的进大厂的路线。另外,只想找个小厂的工作的话,没必要全都照这些准备,太累了,重点放在框架的使用和一些基础八股吧。大致路线就这样,没啥太多难度,就是量大,你能达到什么高度取决于你对自己多狠,祝好。
点赞 评论 收藏
分享
明天不下雨了:把第二个项目放第一个去,其他没什么问题,多投,这世道就这样
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务