接口自动化你不懂?听HttpRunner的作者怎么说

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: HttpRunner最让我们惊喜的是HttpRunner简单易用。它做到了工具集成,也有自己的核心技术,就像requests代码和HttpRunner的YAML文件,你可以无缝切换。它是一款面向 HTTP(S) 协议的通用测试框架,你确实只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。那么首先我们需要问一下,HttpRunner是什么

HttpRunner最让我们惊喜的是HttpRunner简单易用。它做到了工具集成,也有自己的核心技术,就像requests代码和HttpRunner的YAML文件,你可以无缝切换。

它是一款面向 HTTP(S) 协议的通用测试框架,你确实只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。那么首先我们需要问一下,HttpRunner是什么呢?

HttpRunner是什么?它就是让你轻装上阵的工具,这是一款面向 HTTP(S) 协议的通用测试框架。
只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
HttpRunner基于Python,可以运行在 macOS、Linux、Windows 系统平台上。读到这里,你是否有疑问,HttpRunner真是个全能手,既然它可以像Requests那样便利的操作HTTP,又可以做到jenkins的持续集成,那它的内部一定藏着大量干货!

图片来自网络,侵权即删

不,你想错了,HttpRunner并没有实现这么多工具!说到这里,不得不介绍一下HttpRunner的设计理念

  • 充分复用优秀的开源项目,不追求重复造轮子,而是将强大的轮子组装成战车
  • 遵循约定大于配置的准则,在框架功能中融入最佳工程实践
  • 追求投入产出比,一份投入即可实现多种测试需求

于是可以得出这个结论:HttpRunner=requests+jenkins+locust+...哦!好像明白了,它并不是闭门造轮子,而是通过整合许多工具,实现了很多功能。比如我们发HTTP请求,它会调用Request。HttpRunner只是更多的去做整合类似的工具。同时他们也在强调,希望投入非常少,回报非常丰厚,由于整合的缘故,学习HttpRunner的成本会非常低,如果你之前用过Requests,现在使用HttpRunner的HTTP协议,学习成本几乎为零。下图清晰的展示了HttpRunner的工具集。

它们的图标也蕴含着整合的概念,从外部视角来看,拼图代表它是整体中的一个部分。从内部视角呢,它实现了一个模块化的拆分,比如用例的时候分为准备,初始化,加载,运行。其实它遵循了unix哲学,如果你上过shell课程,你会发现shell也是简单的命令组合,但结果却非常强大。

本小节会详细讲解HttpRunner的工作原理,带你检阅它的能力,去感受它的强大。首先,HttpRunner以YAML/JSON文件为核心。你会惊讶,它仅用一份文件就实现了性能测试,持续集成,线上监控,生成测试数据等等,你必须要知道YAML/JSON文件的前世今生。
生成YAML/JSON文件有两种方式:人工编写和自动生成。人工编写的代码与Requests很像,比如下面是requests代码:

HttpRunner的YAML/JSON文件对Requests进行精简,提取出了主要部分。下面是HttpRunner的文件内容,它对Requests改动并不是很大,实现了一个功能最小描述。可以让HttpRunner既简洁又规范,让你从Requests无缝转换到HttpRunner。

HttpRunner为什么不直接采用requests格式,而是取功能最小描述呢?你会发现,每一个接口测试都包含三个部分:构造请求,发起请求,校验。
虽然内容一样,但每个人都有自己的代码风格,如果风格不一样,理解起来会很困难,HttpRunner采取精策略,做到了简单易懂。
以上就是人工编写的实例,实际工作中,手动编写费时费力,于是自动生成YAML/JSON文件深入人心。你可以利用抓包工具:Charles,Fiddler,postman,用这些软件抓取数据,然后生成har文件,HttpRunner可以把这har文件转换成自己的YAML/JSON,后面会有简单例子。整个过程就像下面这幅图:

现在,你知道了如何产生YAML/JSON文件。HttpRunner可以利用YAML/JSON进行自动化测试,性能测试,持续集成,线上监控等……这么多功能得益于复用原理,你跟着下面的图片进行理解,HttpRunner使用Requests进行自动化测试,他们惊喜的发现LOCUST居然和Requests原理相同。

以上是对HttpRunner功能简单的介绍。很多人有个疑问,HttpRunner不就是个整合工具嘛,他整合了Jenkins、Requests、LOCUST,它没有自己的干货吗?其实,除了整合,HttpRunner还做了一些非常优秀的借鉴,你想知道都有哪些吗?
想学员所想,特邀HttpRunner的作者debugtalk,关于接口自动化方面来给大家做一堂公开课。教你如何从0到1使用Python开发接口测试框架,以及测试框架的设计和开发的思路方法。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
267 3
快速上手|HTTP 接口功能自动化测试
|
4月前
|
存储 测试技术 数据库
Python接口自动化测试框架(练习篇)-- 函数编程(一)
本文通过实际的编程练习,讲解了面向过程编程的概念和应用,包括如何定义函数、处理文件读写以及实现用户注册功能,最终将这些过程封装成函数,体现了Python作为脚本语言的面向过程编程特性。
32 2
|
4月前
|
测试技术 Python
Python接口自动化测试框架(练习篇)-- 函数编程(二)
本文通过具体的编程练习,深入探讨了Python中的函数编程,包括如何定义函数、使用参数和返回值,以及函数式编程的技巧和应用,如使用lambda表达式和递归函数解决实际问题。
31 1
|
4月前
|
测试技术 索引 Python
Python接口自动化测试框架:回顾Python3基础语法知识总览
本文是Python 3基础语法知识的全面总结,涵盖了标识符、数据类型、运算符、控制流程、函数、模块和文件操作、异常处理以及面向对象编程的各个方面,旨在为编写Python接口自动化测试框架提供必要的语法知识支持。
36 1
|
4月前
|
存储 测试技术 数据格式
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(二)
本文通过数据类型转换和文件读取的练习,复习了Python中的数据类型、循环、条件判断、内置函数等基础知识,并演示了如何将字符串数据转换为字典列表,以及如何从文本文件中读取和转换数据。
41 1
|
4月前
|
Web App开发 JSON 测试技术
精通Postman接口测试:关联技术与自动化实践指南
这篇文章详细介绍了如何使用Postman进行接口测试,包括关联技术、自动化实践,以及如何通过环境变量和全局变量解决接口之间的关联性问题。
125 0
精通Postman接口测试:关联技术与自动化实践指南
|
4月前
|
JSON jenkins 测试技术
Python接口自动化测试框架(工具篇)-- 接口测试工具HTTPRUNNER
本文介绍了Python接口自动化测试框架HTTPRunner,包括其安装、使用方法,并通过实际操作演示了如何利用HTTPRunner进行接口测试,同时还探讨了HTTPRunner作为接口自动化测试解决方案的可能性和实用性。
81 0
|
2月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
73 4
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
63 4
|
25天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####