zoukankan      html  css  js  c++  java
  • 使用 pyhttptest 轻松测试 REST API

    现在,我们每个人都面临着 REST API,要么开发这样的服务,要么使用这样的服务。 此外,我们正处于微服务的时尚时代,我们将业务逻辑分割成独立于每个服务的小型独立服务。 这些服务大多遵循 RESTful 原则,并使用 JSON 格式进行通信,由于其简单性,JSON 格式成为最广泛使用的格式​。

    pyhttptest 命令行工具,用于通过 RESTful api 进行 HTTP 测试。

    这个工具通过简单的三个步骤自动化测试

    1. 安装
    pip install pyhttptest

    1. 用文件中最简单且广泛使用的格式 JSON 描述针对 API 服务的 HTTP 请求测试用例
    • 发送 HTTP GET 请求
      json文件内容如下
    {
      "name": "TEST: Get server status",
      "verb": "GET",
      "endpoint": "/get",
      "host": "https://httpbin.org",
      "headers": {
        "Accept-Language": "en-US"
      }
    }
    

    ---

    • 发送 HTTP POST 请求
      json文件内容如下
    {
      "name": "TEST: Create an HTML bin",
      "verb": "POST",
      "endpoint": "post",
      "host": "https://httpbin.org",
      "payload": {
        "content": "Hello, world!"
      }
    }
    

    • 多个测试用例定义示例
    [
      {
        "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/"
      }
    ]
    1. 运行命令并获取报告
    pyhttptest execute data/filename.json

    • 来自测试用例的报告截图

    测试用例的属性

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

    Tips

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

    从这个目录按惯例,伟大的框架,如unittest and 及pytest发现并执行 Python 脚本中定义的测试用例。 为了不搞乱这些测试并打破常规,我建议在您的项目根目录中创建一个名为live_tests/ 。

    在新目录中,可以将所有json文件,定义了 API 测试用例的文件。 通过这样做,您的测试将很容易区分。

    https://wx2.sinaimg.cn/mw690/6374f516ly1gb288ffq39j206n06r3yx.jpg

  • 相关阅读:
    文件的上传
    扩展HTTP管道
    发布开源框架iOS矢量图形框架 TouchVG
    批量修改文件名的py脚本
    《矢量绘图基础》PPT
    开题了《面向移动设备的交互式图形平台设计与实现》
    计算几何(转)
    批量替换文件名和内容的Python脚本
    iOS上的二维绘图软件现状
    基本图形手绘图形算法包
  • 原文地址:https://www.cnblogs.com/ievjai/p/14382663.html
Copyright © 2011-2022 走看看