Postman断言详解

一、什么是断言?

在测试中,断言是测试正确行为的方法。它是由测试工具或测试库提供的语句或代码段。它通常是在代码的某个位置插入的,以检验程序的某个方面是否“符合预期”。 在 API 测试中,可以使用 Postman 利用断言验证 API 的正确性、性能和安全性。

二、响应断言

在 API 测试中,响应断言是最常用且最基本的断言之一。我们对于每个请求发出的响应来做出断言,并确保响应的状态码、消息正文等等都符合预期。

1、验证状态码


pm.test("Response code is 200", function () {
    pm.response.to.have.status(200);
});

这段代码将检查 API 的响应状态码是否都是200。如果检查失败,将显示一条失败消息。

2、验证响应时间


const MAX_RESPONSE_TIME = 2000; // in ms

pm.test("Response time is less than " + MAX_RESPONSE_TIME + "ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(MAX_RESPONSE_TIME);
});

这段代码将检查 API 的响应时间是否小于设定的最大响应时间(2秒)。如果检查失败,将显示一条失败消息。

3、验证响应消息正文


pm.test("Response body matches expected value", function () {
    pm.expect(pm.response.text()).to.include("expected value");
});

这段代码将检查 API 的响应消息正文是否包含“expected value”这个内容。如果检查失败,将显示一条失败消息。

4、验证响应格式


pm.test("Response should be in JSON format", function () {
    pm.response.to.be.json; // this will make sure that response is in JSON format
});

这段代码将检查 API 的响应是否是 JSON 格式。如果检查失败,将显示一条失败消息。

三、环境变量断言

除了响应断言,Postman 还支持环境变量的断言。环境变量是存储在 Postman 中的可被脚本使用的全局变量。环境变量可用于存储和传递 API 测试中的数据。

1、验证环境变量存在


pm.test("Environment variable exists", function() {
    pm.expect(pm.environment.has("variable_key")).to.be.true;
});

这段代码将检查名为“variable_key”的环境变量是否存在。如果检查失败,将显示一条失败消息。

2、验证环境变量的值


pm.test("Environment variable value is expected", function() {
    pm.expect(pm.environment.get("variable_key")).to.eql("expected_value");
});

这段代码将检查名为“variable_key”的环境变量的值是否等于“expected_value”。如果检查失败,将显示一条失败消息。

3、验证环境变量是数字


pm.test("Environment variable is a number", function () {
    var value = pm.environment.get("variable_key");
    pm.expect(Number(value)).to.be.a("number");
});

这段代码将检查名为“variable_key”的环境变量的值是否为数字类型。如果检查失败,将显示一条失败消息。

四、集成测试断言

在集成测试中,可以使用断言来检查 API 与其他应用程序集成时的正常工作。

1、验证 API 认证


pm.test("API requires authentication", function () {
    pm.expect(pm.response.headers.get("Authorization")).to.not.be.null;
});

这段代码将验证 API 是否需要进行身份验证。 如果检查失败,将显示一条失败消息。

2、验证 API 是否调用其他服务


pm.test("API calls another service", function () {
    pm.expect(pm.response.headers.get("Service-Name")).to.eqls("Service-Name");
});

这段代码将验证 API 是否调用名为“Service-Name”的另一个服务。如果检查失败,将显示一条失败消息。

3、验证 API 与数据库的交互


pm.test("API interacts with database", function () {
    pm.expect(pm.response.text()).to.include("SELECT * FROM TABLE");
});

这段代码将验证 API 是否与名为“TABLE”的数据库进行交互。如果检查失败,将显示一条失败消息。

五、规范断言

规范断言用于验证 API 是否遵循行业标准、规范和最佳实践。它在 API 测试中很重要,因为它确认了 API 的质量和可靠性。

1、验证 HTTP 方法


pm.test("API uses correct HTTP method", function () {
    pm.expect(pm.request.method).to.eql("GET");
});

这段代码将验证 API 使用的 HTTP 方法是否正确。如果检查失败,将显示一条失败消息。

2、验证 API 路径


pm.test("API path is valid", function () {
    pm.expect(pm.request.url.pathname).to.eql("/api/path");
});

这段代码将验证 API 的路径是否正确。如果检查失败,将显示一条失败消息。

3、验证 API 参数


pm.test("API parameters are correct", function () {
    pm.expect(pm.request.url.query).to.eql({"param_key":"param_value"});
});

这段代码将验证 API 的参数是否正确。如果检查失败,将显示一条失败消息。

原创文章,作者:PDNL,如若转载,请注明出处:https://www.506064.com/n/149218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
PDNLPDNL
上一篇 2024-11-04 17:52
下一篇 2024-11-04 17:52

相关推荐

  • Postman测试中获取responsebody

    本文将从多个方面详细阐述如何在Postman测试中获取responsebody,包括正则表达式、全局变量、测试脚本等。 一、正则表达式获取responsebody 正则表达式是一种…

    编程 2025-04-28
  • Python常用断言函数用法介绍

    本文将详细介绍Python中常用的断言函数,让大家了解这些函数的作用及使用方法,以便于进行代码测试和调试。 一、assertEqual函数 1、assertEqual函数是Pyth…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25

发表回复

登录后才能评论