文未有福利 | 接口自动化你不懂?听HttpRunner的作者怎么说

简介: 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进行规格选择与性能压测。
相关文章
|
2月前
|
测试技术
接口自动化不是救命稻草
接口自动化不是救命稻草
14 1
|
2月前
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
130 2
|
2月前
|
安全 测试技术 持续交付
接口自动化测试的基本流程
接口自动化测试的基本流程
|
4月前
|
敏捷开发 API
【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)
【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)
|
3月前
|
JSON 自然语言处理 机器人
接口自动化测试教程:如何使用 Robot Framework
Robot Framework 是一个用于实现自动化测试和机器人流程自动化(RPA)的开放源代码框架。它由一个名为 Robot Framework Foundation 的组织得到推广,得到了多家领军企业在软件开发中的广泛应用。框架以其开放性和灵活性为特点,能够无缝整合各种其他工具,无论团队规模大小,均无需承担额外许可成本。
|
14天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
30天前
|
Web App开发 Python
在ModelScope中,你可以使用Python的浏览器自动化库
在ModelScope中,你可以使用Python的浏览器自动化库
17 2
|
1月前
|
存储 BI 数据处理
Python自动化 | 解锁高效办公利器,Python助您轻松驾驭Excel!
Python自动化 | 解锁高效办公利器,Python助您轻松驾驭Excel!
|
1月前
|
JavaScript 前端开发 Python
【python自动化】Playwright基础教程(三)定位操作
【python自动化】Playwright基础教程(三)定位操作
50 0
|
1月前
|
Python
【python自动化】Playwright基础教程(五)事件操作②悬停&输入&清除精讲
【python自动化】Playwright基础教程(五)事件操作②悬停&输入&清除精讲
48 0

热门文章

最新文章