如何使用 pyhttptest 测试 RESTful API

现在,无论是开发还是使用服务,我们每个人都面临着 REST API 的挑战。同时,我们正处于微服务的流行时代,我们将业务逻辑拆分为多个独立的小服务。这些服务大多遵循 RESTful 原则,并使用 JSON 格式进行通信,因为其简单性使其成为最广泛使用的格式。

pyhttptest - 这是一个命令行工具,用于对 RESTful APIs 进行 HTTP 测试。

此工具通过三个简单的步骤实现自动化测试。

1. 安装软件包
pip install pyhttptest
2. 描述针对您的 API 服务的 HTTP 请求测试用例

使用简单且广泛使用的 JSON 格式在文件中描述您的 HTTP 请求测试用例。

单个测试用例定义示例

  • 发送一个 HTTP GET 请求

    • 创建一个JSON文件,例如,data/test_server_status.json
{

"name": "TEST: Get server status",

"verb": "GET",

"endpoint": "/get",

"host": "https://httpbin.org",

"headers": {

"Accept-Language": "en-US"

}

}

发送一个 HTTP POST 请求

  • 创建一个 JSON 文件,例如,data/test_create_html_bin.json
{

"name": "TEST: Create an HTML bin",

"verb": "POST",

"endpoint": "post",

"host": "https://httpbin.org",

"payload": {

"content": "Hello, world!"

}

}

多个测试用例定义示例

  • 创建一个 JSON 文件,例如,data/requests.json
[ { "name": "TEST: List all users", "verb": "GET", "endpoint": "api/v1/users", "host": "http://localhost:8085/", "headers": { "Accept-Language": "en-US" }, "query_string": { "limit": 1 } }, { "name": "TEST: Add a new user", "verb": "POST", "endpoint": "api/v1/users", "host": "http://localhost:8085/", "payload": { "username": "pyhttptest", "email": "admin@pyhttptest.com" } }, { "name": "TEST: Modify an existing user", "verb": "PUT", "endpoint": "api/v1/users/XeEsscGqweEttXsgY", "host": "http://localhost:8085/", "payload": { "username": "pyhttptest" } }, { "name": "TEST: Delete an existing user", "verb": "DELETE", "endpoint": "api/v1/users/XeEsscGqweEttXsgY", "host": "http://localhost:8085/" }]
3. 运行命令并获得报告
pyhttptest execute data/test_server_status.json

单个测试用例的报告

pyhttptest execute data/requests.json

多个测试用例的报告

您可以传递给.json文件的属性包括:

  • name - 测试用例的名称。
  • verb - HTTP 方法。
  • endpoint - 您想要在服务器上调用的资源。
  • host - 服务器主机地址。
  • headers - HTTP 头部。支持所有 HTTP 头部字段。
  • query_string - URL 问号后的查询字符串参数。
  • payload - 数据。

最佳实践

您可能会问,在我的现有/新项目中如何添加、结构和组织测试用例。每个含有测试的 Python 项目都会在其项目目录中有一个名为tests/的文件夹。

根据惯例,像unittestpytest这样的框架会发现并执行 Python 脚本中定义的测试用例。为了不混淆这些测试并保持惯例,我建议在项目根目录创建一个名为live_tests/的新目录。

在这个新目录中,您可以放入所有定义 API 测试用例的.json文件。这样做可以轻松区分您的测试,但这真的取决于您!

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值