热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用pyhttptest在Python中轻松测试RESTAPI

如今,我们每个人都通过开发或使用这样的服务来面对RESTAPI。此外,我们正处于微服务的流行时代,在此时代,我们将业务逻辑拆

如今,我们每个人都通过开发或使用这样的服务来面对REST API。 此外,我们正处于微服务的流行时代,在此时代,我们将业务逻辑拆分为彼此独立的小型独立服务。 通常,这些服务遵循RESTful原则,并使用JSON格式进行通信,由于其简单性,该格式已成为使用最广泛的格式。

pyhttptest-用于通过RESTful API进行HTTP测试的命令行工具

该工具只需三个简单的步骤即可自动执行测试。

1.安装套件

pip install pyhttptest

2.以文件中最简单且广泛使用的JSON格式描述针对API服务的HTTP Requests测试用例。

单个测试用例定义示例

  • 发送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-测试用例的名称。
  • 动词-HTTP方法。
  • 端点-您要在服务器上调用的资源。
  • host-服务器主机地址。
  • 标头-HTTP标头。 支持所有HTTP标头字段 。
  • query_string-问号后的URL中的查询字符串参数。
  • 有效负载-数据。

最佳实践

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

按照惯例,从该目录中可以找到很棒的框架,例如unittestpytest ,它们可以在Python脚本中发现并执行定义的测试用例。 为了不弄乱这些测试并破坏约定,我建议在项目根目录中创建一个名为live_tests/的新目录。

在新目录中,您可以放入all。 具有已定义API测试用例的json文件。 这样,您的测试将很容易区分。 但这完全取决于您!

From: https://hackernoon.com/testing-rest-apis-easily-in-python-with-pyhttptest-1d2x328d



推荐阅读
  • Windows环境下RabbitMQ安装详尽指南
    Windows环境下RabbitMQ安装详尽指南 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案
    MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 在使用 `requests` 库进行 HTTP 请求时,如果遇到 `requests.exceptions.SSLError: HTTPSConnectionPool` 错误,通常是因为 SSL 证书验证失败。解决这一问题的方法包括:检查目标网站的 SSL 证书是否有效、更新本地的 CA 证书库、禁用 SSL 验证(不推荐用于生产环境)或使用自定义的 SSL 上下文。此外,确保 `requests` 库和相关依赖项已更新到最新版本,以避免潜在的安全漏洞。 ... [详细]
  • 基于 Bottle 框架构建的幽默应用 —— Python 实践 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • 在Windows环境下离线安装PyTorch GPU版时,首先需确认系统配置,例如本文作者使用的是Win8、CUDA 8.0和Python 3.6.5。用户应根据自身Python和CUDA版本,在PyTorch官网查找并下载相应的.whl文件。此外,建议检查系统环境变量设置,确保CUDA路径正确配置,以避免安装过程中可能出现的兼容性问题。 ... [详细]
  • PyTorch 使用问题:解决导入 torch 后 torch.cuda.is_available() 返回 False 的方法
    在配置 PyTorch 时,遇到 `torch.cuda.is_available()` 返回 `False` 的问题。本文总结了多种解决方案,并分享了个人在 PyCharm、Python 和 Anaconda3 环境下成功配置 CUDA 的经验,以帮助读者避免常见错误并顺利使用 GPU 加速。 ... [详细]
  • 在 Windows 10 系统下配置 Python 3 和 OpenCV 3 的环境时,建议使用 Anaconda 分发版以简化安装过程。Anaconda 可以从其官方网站(https://www.anaconda.com/download)下载。此外,本文还推荐了几本关于 Python 和 OpenCV 的专业书籍,帮助读者深入理解和应用相关技术。 ... [详细]
author-avatar
灬我的独一小姐灬
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有