当前位置: 首页 > article >正文

Postman的使用

Postman的使用

  • Postman断言
    • Postman常用断言
      • 1、断言响应状态码
      • 2、断言包含某个字符串
      • 3、断言JSON数据
      • 4、Postman断言工作原理
    • Postman关联
      • Postman自动关联
      • 创建环境
    • 3、Postman参数化
      • CSV文件
      • JSON文件
      • 1、用例集的导入导出
      • 2、环境导出

Postman断言

让Postman工具代替人自动判断预期结果与实际结果是否一致

Postman常用断言

1、断言响应状态码

// 断言响应状态码未200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm.test(“Status code is 200”, function () { … });: 这一行是一个测试用例的开始。在 Postman 中,你可以使用 pm.test 函数来创建测试用例,该函数接受两个参数:测试用例的描述(作为字符串)和一个包含测试逻辑的函数。在这里,描述是"Status code is 200",它表明这个测试用例的目的是验证响应的状态码是否为 200。

pm.response.to.have.status(200);: 这一行是测试逻辑的一部分。pm.response 是一个 Postman 全局变量,代表了当前请求的响应。pm.response.to.have.status(200) 的意思是要检查当前响应的状态码是否等于 200。如果状态码为 200,测试将通过;否则,测试将失败。

2、断言包含某个字符串

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

pm.test(“Body matches string”, function () { … });: 这一行开始了一个测试用例。在 Postman 中,你可以使用 pm.test 函数来创建测试用例,它接受两个参数:测试用例的描述(作为字符串)和一个包含测试逻辑的函数。在这里,测试用例的描述是"Body matches string",表明这个测试用例的目的是验证响应正文中是否包含特定的字符串。

pm.expect(pm.response.text()).to.include(“string_you_want_to_search”);: 这一行是测试逻辑的一部分。它使用了 Postman 的测试断言函数,pm.expect 来验证响应正文中是否包含指定的字符串。具体步骤如下:

pm.response.text(): 这是一个 Postman 全局函数,用于获取当前请求的响应正文(Body)内容。pm.response 表示当前请求的响应,而 .text() 获取响应的文本内容。
.to.include(“string_you_want_to_search”): 这部分代码是一个断言,它要求响应正文中包含特定的字符串,这个特定字符串应该替换成你要搜索的实际字符串。如果响应正文中包含了这个字符串,测试将通过;否则,测试将失败。
在这里插入图片描述

3、断言JSON数据

pm.test("断言 success 的值为true", function () {
    var jsonData = pm.response.json(); //响应体数据
    pm.expect(jsonData.success).to.eql(true);
});
pm.test("断言 code 的值为10000", function () {
    var jsonData = pm.response.json(); //响应体数据
    pm.expect(jsonData.code).to.eql(10000);
});
pm.test("断言 message 的值为操作成功", function () {
    var jsonData = pm.response.json(); //响应体数据
    pm.expect(jsonData.message).to.eql("操作成功!");
});

上述代码是一个在 Postman 中使用的测试脚本,它用于验证 HTTP 请求的响应数据。以下是代码的关键要点:

pm.test(“Your test name”, function () { … });: 这行开始了一个测试用例,其中描述了测试的目的。

var jsonData = pm.response.json();: 代码解析响应数据为 JSON 格式,并将其存储在名为 jsonData 的变量中,以便后续访问和验证。

pm.expect(jsonData.value).to.eql(100);: 这部分代码使用断言函数验证 JSON 数据中的 value 字段是否等于 100。如果验证通过,测试成功;否则,测试失败。

4、Postman断言工作原理

Postman断言的工作原理简述如下:

1、发送请求: 在Postman中创建API请求,发送请求至目标API服务器。
2、接收响应: Postman接收来自API服务器的响应,包括响应状态码、响应头和响应正文。
3、定义断言: 在Postman中,你可以定义断言,这是测试脚本中的规则,用于验证响应数据的各个方面。断言可以包括验证响应状态码、响应时间、响应头、响应正文等。
4、执行测试脚本: 编写测试脚本,其中包含一个或多个断言。这些测试脚本使用Postman的JavaScript库执行断言,检查响应是否满足断言的条件。
5、分析结果: 测试脚本执行后,Postman分析每个断言的结果。如果断言条件成立,测试继续执行。如果断言失败,测试被标记为失败。
6、报告测试结果: Postman会生成测试报告,指出哪些测试通过,哪些测试失败,并提供有关失败的详细信息。这有助于快速发现API中的问题。

Postman关联

当接口与接口之间,由依赖关系。

Postman自动关联

假定:接口B产生的数据,被加快A依赖。
核心代码:

var jsonData = pm.response.json();

//2、设置全局变量
pm.global.set("全局变量名",全局变量值)
//3、设置环境变量
pm.environment.set("环境变量名",环境变量值)
//4、在Postman中提取全局、环境变量

创建环境

全局变量是在整个Postman应用中可用的,不受环境的限制,可以在不同环境和请求之间共享。它们通常用于存储全局设置、配置信息、共享的数据和跨环境的数据。

环境变量是在特定环境中定义的,每个环境可以有自己的一组环境变量。它们在该环境内可见,可用于请求、脚本和测试用例,但不跨越环境边界共享。环境变量通常用于存储与特定环境相关的数据,如不同服务器的URL、API密钥或令牌,以及在不同环境中需要自定义的数据。

var jsonData = pm.response.json();
// 从 JSON 数据中提取城市信息
var city = jsonData.weatherinfo.city;
// 将提取的城市信息存储为全局变量,以便在其他请求中使用
pm.globals.set("global_city", city);

在这里插入图片描述
在这里插入图片描述
员工查询
http://ihrm2-test.itheima.net/api/sys/user/1716787530734514176

3、Postman参数化

仅测试数据不一样(提高复用率)
同一个接口不同测试点时
数据文件格式:
1、CSV:Postman读取CSV不能测试bool类型、不能存储复杂类型、不能实现参数测试。
应用场景:数据量大,数据格式简单。
2、 JSON:
应用场景:数据量较少,数据组织格式复杂。需要进行参数测试

CSV文件

GET https://cx.shouji.360.cn/phonearea.php?number=13012345678(查询手机号)

JSON文件

1、用例集的导入导出

2、环境导出

newman run
前提:为了运行newman,你要确保系统中安装的Node.js版本是大于v6的。

命令常用选项:

1
newman [optiions]
-h:显示命令行帮助,包括选项列表和简单的使用案例。

-v:显示当前newman的版本。

1
newman run json文件 [options]
-e source:用来指定环境变量文件的路径。

-g source:用来指定全局变量文件的路径。

-r reporter-name:用来指定产生的数据结果的模型,如json,html等。
–reporter-html-export:指定html报告写出的路径。
1
newman run test.json -e testing.postman_environment.json --reporter-html-export c:\newmanoutput\test_result.json
注:在使用–reporter-html-export进行导出测试结果前,首先需要使用npm install -g newman-reporter-html安装reporter-html-export,否则测试结果无法自动生成到指定的目录中。

当你使用 newman run 命令时,你可以指定一些参数以自定义其行为。以下是一些常用参数的中文说明:

集合文件: 这是你要运行的 Postman 集合文件。

arduino
Copy code
newman run my_collection.json
环境文件: 你可以指定一个环境文件来在运行时使用。环境允许你设置在请求中使用的变量。

arduino
Copy code
newman run my_collection.json --environment my_environment.json
全局变量文件: 类似于环境变量,但这些变量是全局的,不特定于某个环境。

arduino
Copy code
newman run my_collection.json --globals my_globals.json
数据文件: 如果你正在使用数据文件来驱动你的请求,可以使用 --data 标志指定数据文件。

arduino
Copy code
newman run my_collection.json --data my_data.csv
迭代次数: 若要指定运行集合的迭代次数,可以使用 --iteration 标志。

arduino
Copy code
newman run my_collection.json --iteration 3
报告生成器: 你可以指定不同类型的报告生成器,比如 HTML 或 JSON。例如,要生成一个 HTML 报告:

css
Copy code
newman run my_collection.json --reporters html
报告输出: 使用 --reporter-html-export 选项来指定 HTML 报告的输出文件。

css
Copy code
newman run my_collection.json --reporters html --reporter-html-export report.html
变量: 你可以在运行时使用 -e 标志定义变量。

arduino
Copy code
newman run my_collection.json -e “变量名=变量值”
``


http://www.kler.cn/a/109123.html

相关文章:

  • 微服务架构面试内容整理-SpringCloud Netflix‌与Spring Cloud Alibaba比较
  • 障碍检测与避障控制 ROS2机器人
  • js中import引入一个export值可以被修改。vue,react
  • 大数据技术在金融风控中的应用
  • 企业级容器技术docker之一键生成 Docker Compose
  • gitlab角色、权限
  • javascript中各种风骚的代码
  • Redis快速上手篇七(集群-六台虚拟机)
  • 杂牌行车记录仪特殊AVI结构恢复案例
  • (一)MySQL-架构
  • 8.Scala面向对象编程
  • STM32H750之FreeRTOS学习--------(一)初识RTOS
  • Go 小知识之 Go 中如何使用 set
  • OPNET <<< Program Abort >>> Standard function stack imbalance
  • 自动化项目实战 [个人博客系统]
  • 论坛介绍 | COSCon'23 开源文化(GL)
  • 算法笔记【6】-简单选择排序算法
  • 关于使用ScriptObject作为项目数据配置
  • 私有云:【11】win10安装Agent客户端组件
  • 【Linux】环境变量
  • GoLong的学习之路(十一)语法之标准库 fmt.Printf的使用
  • JDK、JRE及JVM的关系及作用
  • web:[网鼎杯 2020 青龙组]AreUSerialz
  • 第44天:前端及html、Http协议
  • ChinaSoft 论坛巡礼 | 智慧化 IDE 论坛
  • day37(事件轮询机制 ajaxGet执行步骤与案例(五个步骤) ajax属性 PHP返回JSON对象(两种))