使用pyhttptest在Python中轻松测试REST API

如今,我们每个人都通过开发或使用这样的服务来面对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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值