为什么是HttpRunner3?其实pytest是一个更强大的测试框架,无奈它的源码实在是太复杂了,连学习pytest的使用都要花上很多时间,哪还有那么多精力去看它的源码。而其他很多所谓的测试框架实在是太粗糙了,学不到东西不说,还可能学错。HttpRunner正好介于两者之间,既不复杂,也不简单,刚刚好。
HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS、Linux、Windows 系统平台上。这里使用macOS系统进行演示 对于python版本要求:python≥3.6
httprunner 3.x最大的改变是执行用例用的是 python 的 pytest 框架,支持3种格式的用例:YAML/JSON/pytest 代码 对比 httprunner 2.x 以前版本,早期版本用的是 unittest 框架,只支持2种格式的用例: YAML/JSON
使用 httprunner 2.x版本,validate校验的时候引用变量,在测试报告会显示LazyString($msg)。
如何快速搭建一个httprunner项目呢?我们可以使用脚手架,脚手架就是自动地创建一些目录,形成一个项目的架构,不需要我们再手动的去创建
HttpRunner v4.0 同时采用了 Golang/Python 两种编程语言,底层会有两套相对独立的执行引擎,兼具 Golang 的高性能和 pytest 的丰富生态。
httprunner 3.x可以支持hook机制,在发送请求前做一些预处理或在请求完成后后置处理
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
UI 测试主要是为了取代人力操作,通过 UI 自动化去模拟操作,降低回归测试的成本
写用例之前,我们应该熟悉API的详细信息。建议使用抓包工具Charles或AnyProxy进行抓包。
HttpRunner 是一款面向HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
今天介绍 HttpRunner 这个开源工具的使用 官网地址 https://cn.httprunner.org
每个测试用例都应该有config部分,可以配置用例级别。比如name、base_url、variables、verify、export等等
httprunner 3.x 支持3种格式的用例:YAML/JSON/pytest 代码,3.x版本主推的是pytest测试用例。
httprunnerl流程图.png httpunner依赖分析.png Q: httprunner3.x 数据驱动,无法更新数据问题? A: 1) 如何解决呢? a. httprunner.utils.merge_variables,(单step用例该问题解决,会影响多step用例获取钱pre step的参数,不推荐) 注释httprunner/utils.py:210 b. httprunner.runner.HttpRunner.run_
前几天逛测试论坛,发现HttpRunner竟然推出v4.0版本,感到非常的激动和欢喜。对于HttpRunner工具,在我上家公司是使用HttpRunner1.0版本为基础二次开发成公司通用接口自动化框架并且集成到测试管理平台,直到现在也一直服务公司内部业务测试,不仅可以快速进行需求自动化测试、还可以进行回归测试验证服务框架升级等需求。
requests 库里面上传文件会用到 requests_toolbelt, 可以很方便的解决 multipart/form-data 类型的文件上传相关接口。 HttpRunner3.x 集成了 requests_toolbelt,可以使用内置 upload 关键字来上传文件相关操作。 相关环境:
受益于pytest的集成,HttpRunner v3.x可以使用pytest所有插件,包括pytest-html和allure-pytest,也可以实现这2种方式的报告
在 HttpRunner 中,支持变量声明(variables)和引用($var)的机制
httprunner 可以自定义生成测试报告的模板,1.x版本里面有个 extent_report_template.html 模块非常美观。 但是生成报告的时候会报错:jinja2.exceptions.UndefinedError: ‘dict object’ has no attribute ‘meta_data’ 环境:httprunner==2.4.3
httprunner 3.x可以在yaml文件中参数化,在 config 中使用 parameters 关键字 环境:httprunner==3.1.4
对于已有参数列表,并且数据量比较大的情况,比较适合的方式是将参数列表值存储在 CSV 数据文件中。 对于 CSV 数据文件,需要遵循如下几项约定的规则:
趁着元旦假期最后一天,有着大把时间,奔着把tep做大做强的目标,好好学习了一波。在开始正文之前,先回答可能会问到的两个问题。第一个问题是为什么要集成HttpRunner?因为我最近在思考如何给tep做分层设计,参考了我司现有的接口自动化平台,它的设计是每个用例有很多测试步骤,可以针对用例设置预设变量,然后在测试步骤中引用。正当我准备自己开发类似功能时,想到了HttpRunner,我记得HttpRunner第3版是建议直接编写pytest代码而非以前的ymal或json文件了。大有所获,HttpRunner正是以这种方式编写的代码,而且和pytest有很好的结合,很符合tep要集成的第三方包的希望。第二个问题是为什么要集成Flask?刚开始只是我用来调试代码的,等到把Mock写完以后,想到可能大家也需要调试代码,就把它做到tep里面了,并且附带了测试用例的示例代码,安装完以后就能一键运行,开箱即用,美滋滋。归根结底,都是为了把tep做大做强。
前面说到,HttpRunner必须使用yaml或者json文件来进行使用,测试场景文件推荐使用yaml文件进行编辑。
在前面的文章中我们已经介绍过 httprunner 的项目结构。debugtalk.py 是用来表示项目根目录的,同时我们也能在其中自定义一些方法供 api 和 case 使用。
目前市场上存在众多 API 测试工具,例如 Postman、SoapUI、JMeter 等,它们各具特色,广泛应用于 API 的开发与测试工作。
首先,我们无论学习哪个框架,都要带着问题,带着思考去学习 思考1:HttpRunner是什么? 思考2:HttpRunner的设计模式是什么? 思考3:为什么我们要学习HttpRunner?他的优势是什么?他比之前的Pytest好在哪里 接下来我们带着这3个问题去学习
我之前尝试录制,将录制好的请求进行处理,然后post/get出去。 结果有人做了一个很完备的工具,比我的要完备,好得太多。它就是HttpRunner. 关键是很好用,用的人也很多。
当我写了一个登录的接口用例后,后面会继续写查询个人信息的接口,但是查询个人信息接口是依赖于先登录(获取token)。 像这种业务上操作有先后关系的情况,可以把登录当一个step来引用。 httprunner3.x 框架弱化了API层的概念,直接写testcase了,如果是单个接口的用例,可以当step去引用。
为了减少网址和端口改动导致我们的文件需要进行很多内容修改时,我们可以将网址和端口等信息保存作为环境变量,发生变动时,我们只需改动环境变量即可。
最近公司打算通过HttpRunner框架做自动化测试,我也是初学,给大家分享下我的一天的学习成果吧!
httprunner 3.x支持 jmespath 提取器提取返回的结果内容,可以在 extract 提取变量的时候使用,也可以在 validate 校验结果的时候使用。
Tech 导读 本文将详细介绍软件测试工程师如何结合ChatGPT和HttpRunner框架实现敏捷自动化测试。文章首先介绍了在商业化DevOps产品交付过程中,业务测试面临的痛点以及需要快速实现接口自动化辅助回归的需求。具体介绍了如何通过在web前端录制业务操作、使用命令生成自动化脚本,并通过批量更改和调试来实现自动化测试。使用ChatGPT与HttpRunner框架结合后可以简化接口测试的整个过程,提高测试效率。
由于之前写过一个 httprunner 系列是针对 1.5.8 版本写的教程, httprunner版本更新的还挺快的,最近已经到3.x版本了,看了下改动还是挺大的。 但是考虑到目前还是有很多公司的小伙伴在用 2.x 版本,所以这里在之前 1.5.8 基础上快速的更新一遍,重复的内容就直接复制过来的 对于直接看2.x 版本的小伙伴 也是可以快速上手的,这样就不用纠结1.x版本和2.x版本的区别了。
在PyCharm中打开examples/httpbin/basic_test.py:
https://github.com/httprunner/httprunner是一个API 测试工具,支持 HTTP(S) / HTTP2 / WebSocket / RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型。简单易用,功能强大,具有丰富的插件化机制和高度的可扩展能力。
前言 调用HttpRunner().run() 连续执行2个不同的项目时,只会解析到第一个项目的debugtalk.py。 问题描述 下版本信息: 操作系统类型: windows Python 版本 3.6.8 HttpRunner 版本 2.5.7 问题描述 比如我有 test 和 xxx两个项目,每个项目分别有不同的debugtalk.py文件内容 xxx项目debugtalk.py def user(): return "test5" def get_userx(): retur
如果你是在linux上安装httprunner环境,用的是python3的环境,安装成功后会发现hrun命令找不到,需添加软链接。
HttpRunner v3.x支持三种测试用例格式pytest,YAML和JSON。官方强烈建议以pytest格式而不是以前的YAML/JSON格式编写和维护测试用例 格式关系如下图所示:
领取专属 10元无门槛券
手把手带您无忧上云