Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用 pyhttptest 轻松测试 REST API

使用 pyhttptest 轻松测试 REST API

作者头像
叉叉敌
发布于 2020-02-15 09:31:57
发布于 2020-02-15 09:31:57
89600
代码可运行
举报
文章被收录于专栏:ChasaysChasays
运行总次数:0
代码可运行

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

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

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

  1. 安装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pyhttptest
  1. 用文件中最简单且广泛使用的格式 JSON 描述针对 API 服务的 HTTP 请求测试用例
  • 发送 HTTP GET 请求 json文件内容如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "TEST: Get server status",
  "verb": "GET",
  "endpoint": "/get",
  "host": "https://httpbin.org",
  "headers": {
    "Accept-Language": "en-US"
  }
}

---

  • 发送 HTTP POST 请求 json文件内容如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "TEST: Create an HTML bin",
  "verb": "POST",
  "endpoint": "post",
  "host": "https://httpbin.org",
  "payload": {
    "content": "Hello, world!"
  }
}

  • 多个测试用例定义示例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[
  {
    "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. 运行命令并获取报告
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/02/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用 pyhttptest 轻松测试 REST API
现在,我们每个人都面临着 REST API,要么开发这样的服务,要么使用这样的服务。 此外,我们正处于微服务的时尚时代,我们将业务逻辑分割成独立于每个服务的小型独立服务。 这些服务大多遵循 RESTful 原则,并使用 JSON 格式进行通信,由于其简单性,JSON 格式成为最广泛使用的格式​。
叉叉敌
2020/02/18
7920
《上海悠悠接口自动化平台》体验地址与使用教程
平台注册地址http://47.108.155.10/register.html 没有账号,先注册自己的账号,注册后自动登录
上海-悠悠
2023/01/03
9640
《上海悠悠接口自动化平台》体验地址与使用教程
pytest + yaml 框架 -4.用例参数化parameters功能实现
当一个用例用到多组测试数据的时候,我们必然会用到参数化,接下来看下如何在yaml文件中实现参数化
上海-悠悠
2023/01/03
7780
技术分享 | 接口自动化测试,如何实现多套环境的自动化测试?
在敏捷迭代的项目中,通常会将后台服务部署到多套测试环境。那么在进行接口自动化测试时,则需要将服务器的域名进行配置。使用一套接口测试脚本,通过切换域名地址配置,实现多套环境的自动化测试。
Hogwarts_测试
2022/09/01
5150
接口测试基础学习
(一)http协议基础 协议基础 请求消息 响应消息 (二)接口测试概述 (三)Requests库介绍 (四)抓包工具 fiddler (五)URL参数 (六)响应消息 (七)Session机制 (八)待更新 问题记录
全栈程序员站长
2022/09/22
5650
接口自动化项目落地之HTTPBin网站
找个开源网站或开源项目,用tep实现整套pytest接口自动化项目落地,归档到电子书,作为tep完整教程的项目篇一部分。自从tep完整教程发布以后,tep被越来越多小伙伴了解。教程只是纯理论,是骡子是马,拉出来遛遛才知道。做接口自动化项目落地,一方面是为了让自己脑海中的构想实实在在的呈现出来,现实和理想存在多少差距,不断尝试去弥补和修缮;另一方面也是方便读者朋友们学习使用,借助实际项目来练习,才能在赛道中弯道超车。
dongfanger
2022/05/09
6270
接口自动化项目落地之HTTPBin网站
pytest + yaml 框架 -41.postman 和 python代码自动录制成yaml用例
python代码 和postman 写的接口也能通过录制功能自动生成yaml格式用例了。
上海-悠悠
2023/08/22
3020
pytest + yaml 框架 -41.postman 和 python代码自动录制成yaml用例
Python接口自动化-8-测试报告
HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展。它生成易于使用的 HTML 测试报告 报告模板下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 环境配置: Windows: 将下载的文件放入python安装目录\Lib 目录下 :如:D:\Python34\Lib Linux: 通过 sys.path 可以查看本机 python 文件目录,以管理员身份将 HTMLTestRunner.py 文件拷贝到
企鹅号小编
2018/01/23
1.4K0
Python接口自动化-8-测试报告
HttpRunnerManager接口自动化测试—环境搭建
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
清风穆云
2021/08/09
1.1K0
Pytest实战
Pytest测试框架是动态语言Python专用的测试框架,使用起来非常的简单,这主要得易于它的设计,Pytest测试框架具备强大的功能,丰富的第三方插件,以及可扩展性好,可以很好的和unittest测试框架能够结合起来在项目中使用。本文章主要介绍Pytest测试框架中参数化的详细信息。
无涯WuYa
2020/10/27
1.6K0
Pytest实战
API测试指南
自动化测试从分类上来说,可以把它分为客户端自动化测试和服务端自动化测试,或者可以更加具体的说就是API的自动化测试,API的测试是软件测试的一种测试模式,它包含了两个维度,在狭义的角度上指的是对应用程序接口的功能进行测试,在广义的维度上是指集成测试中,通过调用API测试整体的功能来完成度,可靠性,安全性和性能。相比较客户端自动化测试,API测试是可以有效的提升测试的效率,以及满足在DevOps的理念下的持续交付的能力。另外一个点,目前出去找工作不管是那个级别的测试工程师,都要求会API的测试,只不过不同层级对服务端的测试能力在深度和广度上有区别,但是有一点必须得承认,API的测试技术是每一位测试工程师都要求必须掌握的测试技能。
无涯WuYa
2020/06/16
7820
httprunner 2.x学习4-测试用例分层
httprunner 2.x版本最大的改进就是分层机制了,1.x的版本是线性设计的,每个用例都是独立的。 一个用例里面涉及到流程性的,我们测试修改个人信息是否修改成功,在yaml文件里面需写3个步骤:登录-修改个人信息-查询个人信息。 这样3个测试步骤,每个测试步骤写的test下。但是下个测试用例,重新写个yaml文件也需要遇到登录的话,这样登录的步骤就会重复去写,所以维护起来不方便。 httprunner 2.x版本开始引入分层机制,可以定义公共的方法,在用例里面直接引入步骤,这样登录方法我们只需写一次
上海-悠悠
2020/06/17
8490
HttpRunnerManager接口自动化测试—入门使用
在首页点击左侧菜单栏新增项目,然后输入项目相关信息。我们接下来将会以httpbin里面的接口来进行测试,所以项目名称命名为:httpbin接口测试
清风穆云
2021/08/09
1.3K2
python requests
Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。
forxtz
2022/05/10
1.7K0
IDEA中的HTTP Client Editor测试API
在前后端分离项目,前后端通过api进行通信。如果用postman免费版进行api测试的话,由于无法保存测试脚本到文件,不方便前端查看。
wuweixiang
2018/08/14
1.6K0
IDEA中的HTTP Client Editor测试API
Python-Requests
本教程使用Python语言,需提前安装Pip3 or Pip,例如Linux类的,请在命令行内输入:
NikoDos
2022/03/29
3340
Python-Requests
python 爬虫基础知识(继续补充)
HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。
py3study
2020/01/19
8740
服务端测试之业务关联
在整体的测试效率而言,API测试技术是提升测试效率最有效的手段之一,因为它的执行效率是非常高的,另外一点就是前后端的分离开发的模式,也需要我们更多的精力和时间投入到API的测试技术以及API的测试技术在企业的落地和应用。当然,这仅仅是功能层面的,还需要考虑非功能的点,比如队列,调度机制,服务的性能测试,稳定性的因素,这些是非常多的。在本篇文章中,只单纯的考虑API测试技术中关于关联的解决思路和案例应用。API测试的核心,其实并不在于单个API的测试,单个API无法保障业务的覆盖度,所以我们更多需要结合业务场景来测试这些点,但是一旦结合具体的业务场景,也就涉及到关联的思路,所谓关联,其实我们可以理解为上个API的输出是下个API的输入部分。下面结合主流的测试工具以及代码来演示这部分的具体解决方案和案例实战。
无涯WuYa
2021/12/02
5760
服务端测试之业务关联
我的python学习--第十三天
  如果传递的参数是dict类型,在发出请求时会自动编码为表单提交的形式,如果传递的数据不是dict类型,而是str,requests就将其当做字符串传值过去,传过去的是什么类型,flask后端获取到的就是什么类型
py3study
2020/01/09
1.4K0
Python爬虫神器requests库的使用
在现代编程中,网络请求几乎是每个项目不可或缺的一部分。无论是获取数据、发送信息,还是与第三方 API 交互,都会涉及到网络请求。
南山竹
2024/11/07
3490
Python爬虫神器requests库的使用
推荐阅读
相关推荐
使用 pyhttptest 轻松测试 REST API
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验