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



推荐阅读
  • SAP接口编程PyRFC 调用 BAPI_FIXEDASSET_CREATE1创建固定资产
    本篇演示通过PyRFC调用BAPI_FIXEDASSET_CREATE1在SAP系统中创建固定资产,再一次体验一下Python与其它语言相比的简洁性。首先简单说明B ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
  • 本文介绍了NetCore WebAPI开发的探索过程,包括新建项目、运行接口获取数据、跨平台部署等。同时还提供了客户端访问代码示例,包括Post函数、服务器post地址、api参数等。详细讲解了部署模式选择、框架依赖和独立部署的区别,以及在Windows和Linux平台上的部署方法。 ... [详细]
  • asp中如何嵌入python的简单介绍
    本文目录一览:1、如何在IIS中执行Python脚本 ... [详细]
  • 初学SpringBootch06接口架构风格 RESTful
    ch06-接口架构风格RESTful1.1认识RESTful1.1.1RESTful架构风格1.2RESTful注解1.3RESTful风格的使用1.3.1加入Maven依赖1.3 ... [详细]
  • 这篇文章给大家讲解如何利用dhtmlxGantt在服务器端集成数据。脚本数据保存如果您已初始化dataProcessor,则用户或以编程方式所做的任何更改都将自动 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 解决文件名过长下载失败问题的jQuery方案
    本文介绍了使用jQuery解决文件名过长导致下载失败的问题。原方案中存在文件名部分丢失的问题,通过动态生成隐藏域表单并提交的方式来解决。详细的解决方案和代码示例在文章中给出。 ... [详细]
  • 1223  drf引入以及restful规范
    [toc]前后台的数据交互前台安装axios插件,进行与后台的数据交互安装axios,并在main.js中设置params传递拼接参数data携带数据包参数headers中发送头部 ... [详细]
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社区 版权所有