HttpRunner接口自动化测试框架(1)

发表于:2022-8-15 09:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:自动化测试冰茶    来源:今日头条

  2018年python开发者大会上,了解到HttpRuuner开源自动化测试框架,采用YAML/JSON格式管理用例,能录制和转换生成用例功能,充分做到用例与测试代码分离,相比excel维护测试场景数据更加简洁。在此,利用业余时间研究这个框架去实现接口自动化测试
  HttpRunner是一款面向HTTP(S)协议的通用开源测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
  主流接口自动化工具框架:
  从上图可知,技术选型一般会优先考虑Requests+Python和HttpRunner,Requests+Python在自动化测试总结分类里面有文章讲过,这里我们针对HttpRunner进行探索。
  框架流程
  主要特性:
  ·继承Requests的全部特性,轻松实现HTTP(S)的各种测试需求
  · 采用YAML/JSON的形式描述测试场景,保障测试用例描述的统一性和可维护性
  · 借助辅助函数(debugtalk.py),在测试脚本中轻松实现复杂的动态计算逻辑
  · 支持完善的测试用例分层机制,充分实现测试用例的复用
  · 测试前后支持完善的hook机制
  · 响应结果支持丰富的校验机制
  · 基于HAR实现接口录制和用例生成功能(har2case)
  · 结合Locust框架,无需额外的工作即可实现分布式性能测试
  · 执行方式采用CLI调用,可与Jenkins等持续集成工具完美结合
  · 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
  · 极强的可扩展性,轻松实现二次开发和Web平台化
  环境安装:
  HttpRunner是一个基于Python开发的测试框架,可以运行在macOS、LinuxWindows系统平台上。HttpRunner支持Python3.4及以上的所有版本,推荐建议使用Python3.4及以上版本。
  使用pip命令安装:pip3installhttprunner【因本人环境装有python两个版本,这里使用是python3.6版本,就使用pip3命令,如是python2.7版本的话,就用pip命令安装】
  安装完成后校验:
  如版本号正常显示,则说明安装正常。
  基础功能
  1、录制生成用例
  在转换生成测试用例之前,需要先将抓取得到的数据包导出为HAR格式的文件。使用Charles抓包工具Proxy中的操作方式为,选中需要转换的接口(可多选或全选),点击右键,在悬浮的菜单目录中点击【Export...】,格式选择HTTPArchive(.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实现。如:hruntest.yaml--failfast
  若需要查看到更详尽的信息,例如请求的参数和响应的详细内容,可以将日志级别设置为DEBUG,即在命令中添加--log-leveldebug。如:hruntest.yaml--log-leveldebug
  为了方便定位问题,运行测试时可指定--save-tests参数,即可将运行过程的中间数据保存为日志文件。
  日志文件将保存在项目根目录的logs文件夹中,生成的文件有如下三个(XXX为测试用例名称):
  · XXX.loaded.json:测试用例加载后的数据结构内容,加载包括测试用例文件(YAML/JSON)、debugtalk.py、.env等所有项目文件,例如test-quickstart-6.loaded.json
  · XXX.parsed.json:测试用例解析后的数据结构内容,解析内容包括测试用例引用(API/testcase)、变量计算和替换、base_url拼接等,例如test-quickstart-6.parsed.json
  · XXX.summary.json:测试报告生成前的数据结构内容,例如test-quickstart-6.summary.json
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号