【HttpRunner v3.x】笔记 —— 开篇
最近在社群聊天里,发现了一款适用于http协议的接口框架——HttpRunner。在对其有个大致了解后,我觉得这款框架优点多多,整合了接口测试中所配套用到的多种框架。通过优秀的封装,将case整合到一份yaml或者json文件里即可运行,我觉得可以学习一下。

目前官方最新版本为3.x的版本了,所以打算以这个版本为学习样本。开篇就先对HttpRunner来一个介绍吧。
一、介绍
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
二、框架设计理念
- 充分复用优秀的开源项目,不追求重复造轮子,而是将强大的轮子组装成战车
- 遵循 约定大于配置 的准则,在框架功能中融入自动化测试最佳工程实践
- 追求投入产出比,一份投入即可实现多种测试需求
三、核心特点
- 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
- 以YAML或JSON格式定义testcase,使用pytest运行,更加简洁优雅
- 有了pytest,成百上千的插件随时可用
- 支持variables/extract/validate/hooks机制来创建极其复杂的测试场景
- 借助辅助函数(debugtalk.py),任何函数都可以在测试用例的任何部分中使用
- 支持完善的测试用例分层机制,充分实现测试用例的复用
- 使用python的第三方库jmespath,让提取和验证json响应更简单
- 基于 HAR 实现接口录制和用例生成功能(har2case)
- 结合 Locust 框架,无需额外的工作即可实现分布式性能测试
- 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合
- 集成了Allure,让测试报告更加漂亮,内容更丰富。
- 极强的可扩展性,轻松实现二次开发和 Web 平台化
相信做过接口自动化的你,看到上述的优点,都会感慨这个框架的强大。

不过这里我也是抱着怀疑的态度去学习,HttpRunner整合的资源确实很丰富,但是用起来真正感受如何呢?让我们拭目以待!
【HttpRunner v3.x】笔记 —— 开篇的更多相关文章
- 【HttpRunner v3.x】笔记 ——3. 录制生成测试用例
在正式手动编写case之前,我们可以先来熟悉下httprunner的录制生成用例功能. 用postman的童鞋都知道,里面有个功能可以将接口转换成代码,可以直接copy过来使用,提升case编写效率. ...
- 【Head-First设计模式】C#版-学习笔记-开篇及文章目录
原文地址:[Head-First设计模式]C#版-学习笔记-开篇及文章目录 最近一年断断续续的在看技术书,但是回想看的内容,就忘了书上讲的是什么东西了,为了记住那些看过的东西,最好的办法就是敲代码验证 ...
- 【HttpRunner v3.x】笔记—8.运行testcase的几种方式
在之前的demo过程中,已经运行过testcase了,那这篇就也来汇总一下,运行case相关的知识点. 一.运行testcase的几种场景 1. 运行单个case 通常单个case的话我会在编辑器里用 ...
- 【HttpRunner v3.x】笔记—8.用例引用、变量传递
看到这里,对于httprunner已经有了一个大概的了解,现在想对于一些比较重要或者常用的功能,进行一些实践操作. 毕竟那谁说过,"纸上得来终觉浅,绝知此事要躬行." 上一篇提到了 ...
- 【HttpRunner v3.x】笔记—7. 测试用例-teststeps-RunTestCase
以前我在写接口自动化用例的时候,为了保证用例的独立性,需要在setUp里调用各种满足用例的一些前置条件,其中就不乏调用了其他测试用例中的方法. 而httprunner也是支持了这一项很重要的特性,通过 ...
- 【HttpRunner v3.x】笔记—6. 测试用例-teststeps-RunRequest
之前我们了解了config里的各项参数,今天来了解另一个重要部分--teststeps,在这之前,先看看测试用例的分层模型. 一.测试用例分层模型 一个testcase里(就是一个pytest格式的P ...
- 【HttpRunner v3.x】笔记 ——5. 测试用例-config
上一篇中,我们了解到了config,在配置中,我们可以配置测试用例级级别的一些设置,比如基础url.验证.变量.导出. 我们一起来看,官方给出的一个例子: from httprunner import ...
- 【HttpRunner v3.x】笔记 ——4. 测试用例-结构解析
一.官方首推pytest格式 上篇文章我们知道了,httprunner可以支持三种格式的用例,分别是pytest.yaml和json.yaml和json是以前的版本所使用的用例格式,但是在3.x版本上 ...
- 【HttpRunner v3.x】笔记 ——2. 用脚手架快速创建项目
环境装好了,相信很多童鞋已经迫不及待的想run起来了,但是面对一个陌生的框架又无从下手.没关系,我们可以用脚手架来快速生成一个httprunner项目. 一.快速生成项目 我们不妨先输入httprun ...
随机推荐
- [Err] 126 - Incorrect key file for table '/tmp/#sql_1cdc_0.MYI'; try to repair it
网上给出的原因倾向于MySQL的tmpdir的临时目录磁盘空间不足,如果检查确实时空间不足,请调整量tmpdir和slave_load_tmpdir,然后重启mysql服务.调整的方法是 locate ...
- docker 启动redis 报错!
首先通过命令进入: docker exec -it ‘容器名’ redis-cli 错误信息: There was an unexpected error (type=Internal Serve ...
- CSS变化、过渡与动画
CSS变换用于在空间中移动物体,而CSS过渡和CSS关键帧动画用于控制元素随时间推移的变化. 变换.过渡和关键帧动画的规范仍然在制定中.尽管如此,其中大多数特性已经在常用浏览器中实现了. 1.二维变换 ...
- Javascript注意点
Javascript注意点 在img标签中的src如果为相对路径, 但是在js获取的时候会转为全路径 候选框中, 在执行onclick之前, 会由于html的特征先设置checked属性 为a标签添加 ...
- Nexus3 上传的文件在哪里
上传文件 ojdbc7.jar,上传步骤略. 服务器上默认的文件存放路径是: nexus/sonatype-work/nexus3/blobs/default/content/ 一堆文件夹,根据时间确 ...
- http接口封装mqtt协议
前言 .Net Core 3.1 WebApi 列出了mqtt客户端的封装目的是为了了解运作机制 1.封装mqtt客户端 mqtt底层协议基于MQTTnet 版本2.8.5 github地址 实例化[ ...
- C#LeetCode刷题-队列
队列篇 # 题名 刷题 通过率 难度 363 矩形区域不超过 K 的最大数值和 27.2% 困难 621 任务调度器 40.9% 中等 622 设计循环队列 C#LeetCode刷题之#622 ...
- Vue watch对象属性并触发多个事件
在vue中监控一个对象的属性变化,并且触发监听事件 watch: { 'user': [ { handler: (nweVal, oldVal) => { console.info('in 1 ...
- JavaScript call的示例
作用: 改变函数执行时的作用域 let name = 'global name' function say(){ console.info(arguments) // 调用时接收的参数个数 conso ...
- 谈谈对volatile关键字的理解
1. volatile的特性 volatile是Java语言提供的一种轻量级的同步机制,用来确保将变量得更新操作通知到其它线程.具备三种特性: 保证变量的可见性: 对于volatile修饰的变量进行单 ...