网站需求建设关系书,中国商标交易网,深圳网站搜索,图像编辑器简介
2018年python开发者大会上#xff0c;了解到HttpRuuner开源自动化测试框架#xff0c;采用YAML/JSON格式管理用例#xff0c;能录制和转换生成用例功能#xff0c;充分做到用例与测试代码分离#xff0c;相比excel维护测试场景数据更加简洁。在此#xff0c;利用业…简介
2018年python开发者大会上了解到HttpRuuner开源自动化测试框架采用YAML/JSON格式管理用例能录制和转换生成用例功能充分做到用例与测试代码分离相比excel维护测试场景数据更加简洁。在此利用业余时间研究这个框架去实现接口自动化测试。
HttpRunner 是一款面向 HTTP(S) 协议的通用开源测试框架只需编写维护一份 YAML/JSON 脚本即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
如果你想学习APP自动化测试我这边给你推荐一套视频这个视频可以说是B站播放全网第一的接口测试教程同时在线人数到达1000人并且还有笔记可以领取及各路大神技术交流798478386
HttpRunner使用高效实现接口自动化测试_哔哩哔哩_bilibiliHttpRunner使用高效实现接口自动化测试共计9条视频包括1、接口自动化之什么是HttpRunner、2、接口自动化之设计思想和理念、3、接口自动化之HttpRunner环境搭建等UP主更多精彩视频请关注UP账号。https://www.bilibili.com/video/BV1F64y127T5/?spm_id_from333.337.search-card.all.click
主流接口自动化工具框架 从上图可知技术选型一般会优先考虑RequestsPython和HttpRunnerRequestsPython在自动化测试总结分类里面有文章讲过这里我们针对HttpRunner进行探索。
框架流程 主要特性
继承 Requests 的全部特性轻松实现 HTTP(S) 的各种测试需求采用 YAML/JSON 的形式描述测试场景保障测试用例描述的统一性和可维护性借助辅助函数debugtalk.py在测试脚本中轻松实现复杂的动态计算逻辑支持完善的测试用例分层机制充分实现测试用例的复用测试前后支持完善的 hook 机制响应结果支持丰富的校验机制基于 HAR 实现接口录制和用例生成功能har2case结合 Locust 框架无需额外的工作即可实现分布式性能测试执行方式采用 CLI 调用可与 Jenkins 等持续集成工具完美结合测试结果统计报告简洁清晰附带详尽统计信息和日志记录极强的可扩展性轻松实现二次开发和 Web 平台化 环境安装
HttpRunner 是一个基于 Python 开发的测试框架可以运行在 macOS、Linux、Windows 系统平台上。HttpRunner 支持 Python 3.4 及以上的所有版本推荐建议使用 Python 3.4 及以上版本。
使用pip命令安装pip3 install httprunner 【因本人环境装有python两个版本这里使用是python3.6版本就使用pip3命令如是python2.7版本的话就用pip命令安装】
安装完成后校验 如版本号正常显示则说明安装正常。
基础功能 1、 录制生成用例
在转换生成测试用例之前需要先将抓取得到的数据包导出为 HAR 格式的文件。使用Charles抓包工具 Proxy中的操作方式为选中需要转换的接口可多选或全选点击右键在悬浮的菜单目录中点击【Export...】格式选择HTTP Archive(.har)后保存即可假设我们保存的文件名称为test.har 转换测试用例
在命令行终端中运行 har2case 命令即可将 test.har 转换为 HttpRunner 的测试用例文件。 使用 har2case 转换脚本时默认转换为 JSON 格式 加上 -2y/--to-yml 参数后转换为 YAML 格式 两种格式完全等价YAML 格式更简洁JSON 格式支持的工具更丰富大家可根据个人喜好进行选择。
生成后的用例如下图所示
json格式 YAML格式 config作为整个测试用例集的全局配置项test对应单个测试用例name 这个test的名字request 这个test具体发送http请求的各种信息, 如下:url 请求的路径 (若config中有定义base_url, 则完整路径是用 base_url url )method 请求方法 POST, GET等等data 传入参数值validate 完成请求后, 所要进行的验证内容. 所有验证内容均通过该test才算通过,否则失败. 2、运行测试 若希望测试用例在运行过程中遇到失败时不再继续运行后续用例则可通过在命令中添加--failfast实现。如hrun test.yaml --failfast
若需要查看到更详尽的信息例如请求的参数和响应的详细内容可以将日志级别设置为DEBUG即在命令中添加--log-level debug。如hrun test.yaml --log-level debug
为了方便定位问题运行测试时可指定 --save-tests 参数即可将运行过程的中间数据保存为日志文件。
日志文件将保存在项目根目录的 logs 文件夹中生成的文件有如下三个XXX为测试用例名称
XXX.loaded.json测试用例加载后的数据结构内容加载包括测试用例文件YAML/JSON、debugtalk.py、.env 等所有项目文件例如 test-quickstart-6.loaded.jsonXXX.parsed.json测试用例解析后的数据结构内容解析内容包括测试用例引用API/testcase、变量计算和替换、base_url 拼接等例如 test-quickstart-6.parsed.jsonXXX.summary.json测试报告生成前的数据结构内容例如 test-quickstart-6.summary.json 3、测试报告
默认情况下生成的测试报告文件会位于项目根目录的 reports 文件夹中文件名称为测试开始的时间戳。HttpRunner 中自带了一个 Jinja2 格式的默认报告模版
测试报告形式如下
在 Summary 中会罗列本次测试的整体信息包括测试开始时间、总运行时长、运行的Python版本和系统环境、运行结果统计数据。 在 Details 中会详细展示每一条测试用例的运行结果。
点击测试用例对应的 log 按钮会在弹出框中展示该用例执行的详细数据包括请求的 headers 和 body、响应的 headers 和 body、校验结果、响应、响应耗时elapsed等信息。 默认情况下生成的测试报告文件会位于项目根目录的 reports 文件夹中。如需指定生成报告的路径可以使用 --report-dir 参数。
如 hrun test.yaml --dirreport-name g:\home
其它高级特性如数据参数化、用例分层、环境变量等用法请参考官网中文手册详细介绍。 4、创建项目
使用方式也与Django类似只需要通过--startproject指定新项目的名称即可。如hrun --startproject httpapidemo 运行后就会在指定的目录中生成新项目的目录结构接下来我们就可以按照测试用例的接口-模块-场景分层原则往里面添加用例描述信息了。
需要注意的是我们在组织测试用例描述的文件目录结构时遵循约定大于配置的原则
API接口定义必须放置在api目录下模块定义必须放置在suite目录下测试场景文件必须放置在testcases目录下相关的函数定义放置在debugtalk.py中
具体新增用例目录结构例子如下