热门标签 | 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



推荐阅读
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了如何通过conda安装Selenium的wheel文件,包括查看环境、卸载旧版本、下载新版本的wheel文件以及安装操作的步骤。同时提供了使用清华源的方法。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
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社区 版权所有