使用 Postman 进行接口测试

Postman 是一款功能强大的 API 测试工具,下面是使用它进行接口测试的基本步骤:

  1. 安装并启动 Postman:你可以从 Postman 官网 下载并安装应用程序,之后打开它。
  2. 创建请求:
    • 打开 Postman 后,点击界面左上角的 “New” 按钮,选择 “Request” 来创建一个新的请求。
    • 为请求命名并选择保存的集合(Collection),集合可用于组织多个相关请求。
  3. 设置请求信息:
    • 请求方法:在请求框左侧选择合适的请求方法,像 GET、POST、PUT、DELETE 等。
    • 请求 URL:在 URL 输入框中填入接口的完整 URL。
    • 请求头(Headers):若接口需要特定的请求头,就在 “Headers” 标签页添加相应的键值对,例如设置 “Content-Type” 为 “application/json”。
    • 请求体(Body):如果是 POST 或 PUT 请求,需要在 “Body” 标签页提供请求数据。依据接口要求选择数据格式,如 “raw”(纯文本)、“form-data”(表单数据)等。
  4. 发送请求并查看响应:点击 “Send” 按钮发送请求,Postman 会显示接口的响应信息,涵盖状态码、响应头和响应体。
  5. 设置断言:为保证接口返回的数据符合预期,可以设置断言。点击 “Tests” 标签页,编写 JavaScript 代码来进行断言。例如:
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

  1. 运行集合:若有多个请求组成的集合,可点击集合名称旁边的 “Run” 按钮,配置运行参数后批量运行请求。

使用 JMeter 进行接口测试

JMeter 是一个开源的性能测试工具,也可用于接口功能测试,下面是基本步骤:

  1. 安装并启动 JMeter:从 JMeter 官网 下载压缩包,解压后进入 bin 目录,运行 jmeter.bat(Windows)或 jmeter.sh(Linux/Mac)。
  2. 创建测试计划:打开 JMeter 后,默认会创建一个测试计划。你可以右键点击测试计划,选择 “Add” -> “Threads (Users)” -> “Thread Group” 来添加线程组。
  3. 配置线程组:线程组用于模拟并发用户,可设置线程数、循环次数等参数。
  4. 添加 HTTP 请求:右键点击线程组,选择 “Add” -> “Sampler” -> “HTTP Request” 来添加一个 HTTP 请求。
  5. 设置请求信息:
    • 服务器名称或 IP:输入接口的服务器地址。
    • 端口号:输入接口的端口号,默认是 80(HTTP)或 443(HTTPS)。
    • 请求方法:选择合适的请求方法。
    • 路径:输入接口的相对路径。
    • 请求头:在 “HTTP Header Manager” 中添加请求头信息。
    • 请求体:在 “Body Data” 中输入请求数据。
  6. 添加断言:为验证接口响应是否符合预期,右键点击 HTTP 请求,选择 “Add” -> “Assertion” -> “Response Assertion”,设置断言规则。
  7. 添加监听器:监听器用于查看测试结果,右键点击线程组,选择 “Add” -> “Listener”,可以添加 “View Results Tree”(查看详细请求和响应信息)、“Aggregate Report”(查看统计信息)等监听器。
  8. 运行测试:点击工具栏上的 “Start” 按钮运行测试,测试完成后,在监听器中查看测试结果。

通过上述步骤,你就能使用 Postman 和 JMeter 进行接口测试了。Postman 适合单个接口的功能测试和调试,而 JMeter 更适合进行并发性能测试和批量接口测试。

Postman 自身的断言是基于 JavaScript 编写的,不能直接使用 Python 来写断言。

Postman 的测试脚本环境是基于 JavaScript 引擎的,它提供了一系列用于编写断言和执行测试逻辑的 JavaScript API,像pm.test()方法就可以用来定义测试用例,pm.expect()或者pm.response等对象能用来进行断言操作。而 Python 是一种独立的编程语言,其语法和运行环境与 Postman 内置的 JavaScript 环境不兼容。

如果你希望使用 Python 来进行接口测试和断言,可以借助 Python 的第三方库,如requests库用于发送 HTTP 请求,unittest或pytest库来编写和运行测试用例。下面是一个使用requests和pytest的示例:

python

import requests


def test_api():
    url = 'https://api.example.com'  # 替换为实际的接口URL
    response = requests.get(url)
    assert response.status_code == 200
    # 可以添加更多断言,如响应体内容的检查
    data = response.json()
    assert 'key' in data

在上述代码里,使用requests库发送一个 GET 请求,然后用assert语句进行断言,判断响应状态码是否为 200,并且检查响应体中是否包含特定的键。你可以在终端中运行pytest命令来执行这个测试用例。

将 Postman 和 Python 结合使用:

1. 导出 Postman 集合为 Python 代码

Postman 支持将请求集合导出为多种编程语言的代码,其中就包括 Python。通过这种方式,你可以快速获得请求的 Python 代码示例,然后根据需求进行修改和扩展。

  • 操作步骤:
    1. 在 Postman 中打开你要导出的集合或请求。
    2. 点击请求旁边的 “Code” 按钮。
    3. 在弹出的窗口中选择 “Python - requests” 作为目标语言。
    4. Postman 会生成对应的 Python 代码,你可以将其复制到你的 Python 项目中。
2. 使用 Newman 与 Python 脚本集成

Newman 是 Postman 官方提供的命令行工具,可用于运行 Postman 集合。你可以在 Python 脚本中调用 Newman 命令来执行 Postman 集合。

  • 操作步骤:
    1. 安装 Newman:在命令行中运行 npm install -g newman 进行安装。
    2. 编写 Python 脚本:使用 subprocess 模块调用 Newman 命令。

下面是一个简单的 Python 脚本示例:

python

import subprocess

# 定义 Postman 集合文件路径和环境文件路径
collection_path = 'path/to/your/collection.json'
environment_path = 'path/to/your/environment.json'

# 构建 Newman 命令
command = f'newman run {collection_path} -e {environment_path}'

try:
    # 执行命令并捕获输出
    result = subprocess.run(command, shell=True, check=True, text=True, capture_output=True)
    print('Newman 执行成功:')
    print(result.stdout)
except subprocess.CalledProcessError as e:
    print('Newman 执行失败:')
    print(e.stderr)

在上述代码中,你需要将 collection_path 和 environment_path 替换为实际的 Postman 集合文件和环境文件的路径。

3. 使用 Python 模拟 Postman 的功能

如果你只需要部分 Postman 的功能,也可以使用 Python 的 requests 库来模拟发送 HTTP 请求,并使用 unittest 或 pytest 等测试框架编写测试用例。

  • 示例代码:

python

import requests
import unittest


class TestAPI(unittest.TestCase):
    def test_get_request(self):
        url = 'https://api.example.com'  # 替换为实际的 API URL
        response = requests.get(url)
        self.assertEqual(response.status_code, 200)


if __name__ == '__main__':
    unittest.main()

在这个示例中,使用 requests 库发送一个 GET 请求,并使用 unittest 框架编写了一个简单的测试用例,验证响应状态码是否为 200。

通过以上几种方式,你可以灵活地将 Postman 和 Python 结合使用,充分发挥两者的优势。

更多推荐