HttpRunner接口自动化测试框架详解

目录

简介

框架流程

核心特性

下载安装

入门使用

测试场景

用例设计

运行测试

查看测试报告

HttpRunnerManager

简介

核心特性

下载安装

环境配置

erlang

Rabbitmq

总结:


简介

HttpRunner是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。

  • 项目地址:
  • 中文手册:

框架流程

核心特性

  • 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
  • 测试用例与代码分离,采用YAML/JSON的形式描述测试场景,保障测试用例具备可维护性
  • 测试用例支持分层机制,充分实现测试用例的复用
  • 测试用例支持参数化和数据驱动机制
  • 使用 skip 机制实现对测试用例的分组执行控制
  • 测试请求支持完善的 hook 机制
  • 支持热加载机制,在文本测试用例中轻松实现复杂的动态计算逻辑
  • 基于 HAR 实现接口录制和用例生成功能(har2case)
  • 结合 Locust 框架,无需额外的工作即可实现分布式性能测试
  • 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合
  • 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
  • 具有可扩展性,便于扩展实现 Web 平台化(HttpRunnerManager)

下载安装

使用pip命令进行安装

pip install httprunner

安装后效验是否安装成功,可以使用如下命令进行效验

hrun -V
1.4.2
har2case -V
0.1.8

若版本号正常显示,则说明安装正常。

入门使用

测试场景

  • 测试接口:
  • 接口类型:GET

用例设计

HttpRunner的测试用例支持两种文件格式:YAML 和 JSON。这里以YAML为例。

# test_httpbin.yml
- config:
name: httpbin api test
request:
base_url: http://www.httpbin.org
- test:
name: get request
request:
url: /get
method: GET
validate:
- eq: [status_code,200]
  • config:作为整个测试用例集的全局配置项
  • test:对应单个测试用例
  • name 这个test的名字
  • request 这个test具体发送http请求的各种信息, 如下:
  • url 请求的路径 (若config中有定义base_url, 则完整路径是用 base_url + url )
  • method 请求方法 POST, GET等等
  • validate 完成请求后, 所要进行的验证内容. 所有验证内容均通过该test才算通过,否则失败

运行测试

使用hrun执行测试,如下所示:

C:\Users\Shuqing>hrun D:\api_test\HttpRunner_test\test_httpbin.yml
get request
INFO GET /get
INFO status_code: 200, response_time(ms): 1967.35 ms, response_length: 273 bytes
INFO start to validate.
.
----------------------------------------------------------------------
Ran 1 test in 1.976s
OK
INFO Start to render Html report ...
INFO Generated Html report: C:\Users\Shuqing\reports\1533092144.html

查看测试报告

打开html报告如下:

HttpRunnerManager

简介

HttpRunnerManager是基于HttpRunner的接口自动化测试平台,该工具是对 HttpRunner的包装和Web图形化, 另外还增加了一些新概念(项目/模块)用来组织用例。
如果对yaml语法格式不熟悉,以及对于httprunner命令不熟悉的可以使用该平台执行接口自动化测试。

项目地址:

核心特性

  • 项目管理:新增项目、列表展示及相关操作,支持用例批量上传(标准化的HttpRunner json和yaml用例脚本)
  • 模块管理:为项目新增模块,用例和配置都归属于module,module和project支持同步和异步方式
  • 用例管理:分为添加config与test子功能,config定义全部变量和request等相关信息 request可以为公共参数和请求头,也可定义全部变量
  • 场景管理:可以动态加载可引用的用例,跨项目、跨模快,依赖用例列表支持拖拽排序和删除
  • 运行方式:可单个test,单个module,单个project,也可选择多个批量运行,支持自定义测试计划,运行时可以灵活选择配置和环境,
  • 分布执行:单个用例和批量执行结果会直接在前端展示,模块和项目执行可选择为同步或者异步方式,
  • 环境管理:可添加运行环境,运行用例时可以一键切换环境
  • 报告查看:所有异步执行的用例均可在线查看报告,可自主命名,为空默认时间戳保存,
  • 定时任务:可设置定时任务,遵循crontab表达式,可在线开启、关闭,完毕后支持邮件通知
  • 持续集成:jenkins对接,开发中。。。

下载安装

1.安装mysql数据库服务端(推荐5.7+),并设置为utf-8编码,创建相应HttpRunnerManager数据库,设置好相应用户名、密码,启动mysql。
2.将HttpRunnerManager下载下来,解压放在任意盘符位置,例如我放在D盘根目录,并重命名为HttpRunnerManager

环境配置

HttpRunnerManager支持分布式执行,模块和项目执行可选择为同步或者异步方式,因此需要安装相关依赖工具。

erlang

Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。

下载地址:

Rabbitmq

RabbitMQ 是一个由 Erlang 语言开发的 AMQP(高级消息队列协议)的开源实现。它支持多个消息传递协议。RabbitMQ可以部署在分布式和联合配置中,以满足高规模、高可用性的需求,另外安装rabbitmq需要先安装erlang。

下载地址:下载后双击rabbitmq-server-3.7.7.exe文件进行安装。

安装完成后如下图如所示,选中RabbitMQ Service -start 然后以管理员身份运行。

可以通过访问  进行测试,默认的登陆账号为:guest,密码为:guest。

总结:

感谢每一个认真阅读我文章的人!!!

 我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

   Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/9303.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript

目录 一、javaScript介绍 二、JavaScript使用 三、变量 四、关系比较运算 五、逻辑运算 五、数组 六、函数 1.函数的定义方式 2.函数的作用域 3.变量声明提前 4.this关键字 七、自定义对象 1.Object 对象 2.自定义对象 3.匿名函数 比较数据 八、js中的事件 1.事件定义 …

蘑菇车联用城市级落地讲述自动驾驶新故事

作者 | 魏启扬 来源 | 洞见新研社 “如果不能实现自动驾驶,特斯拉将一文不值”。 这是马斯克在接受媒体采访时的公开发言,这句话的语境是,特斯拉是自动驾驶坚实的拥护者,且一直在付诸行动。 可是特斯拉渐进式的单车智能路线&am…

CodeTop整理-数组篇

目录 53. 最大子序和 33. 搜索旋转排序数组 三数之和 121. 买卖股票的最佳时机 4. 寻找两个正序数组的中位数 695. 岛屿的最大面积 54. 螺旋矩阵 88. 合并两个有序数组 152. 乘积最大子数组 42. 接雨水 64. 最小路径和 1. 两数之和 123. 买卖股票的最佳时机 III …

Ubuntu 22.04.2 LTS LTS x86_64 安装 stable-diffusion-webui 【2】基本版本完结。

前篇 Ubuntu 20.04 LTS x86_64 安装 stable-diffusion-webui_hkNaruto的博客-CSDN博客 内容太多,分第二篇继续 中途重装了机器,20.04 ,apt upgrade后自动升级到22.04.2 现状:起来了,又没完全起来 启动日志 (stab…

mysqldump + python 定时备份数据库

场景: 需要对mysql进行定时备份,受限于硬盘空间的大小,需要对备份的数据需要定时清理 python代码实现: # -*- coding:UTF-8 -*- """ProjectName : HotelGo2DelonixPmxFileName : fix_missing_ratesDescripti…

基本 SQL 命令 、重要的 SQL命令、SQL 约束 及 SQL语句 的 执行顺序

学习目标: 学习目标如下: SQL语句执行顺序 学习内容: 基本 SQL 命令: FROMONJOINWHEREGROUP BYAGG_FUNCWITHHAVINGSELECT 从数据库中提取数据UNIONDISTINCTORDER BY 排序LIMIT 重要的sql命令: 1、SELECT - 从数据…

Linux:etc/group

etc/group文件中保存着系统中所有组的名称,以及每个组中的成员列表。 文件中的一行为一个组的信息,具体如下: 如果组口令字段为x的话,就还有一个etc/gshadow文件用于存放组口令。 GID用于标识一个组,应保证其唯一性。…

使用 ZBrush、Ornatrix 和 Substance 3D Painter 重现哈利波特中的凤凰

今天瑞云渲染小编给大家带来了Ramn Tapia 分享 Phoenix 项目背后的工作流程,解释了如何在 Ornatrix 中完成修饰,并展示了纹理化过程。 介绍 你好,有创造力的读者朋友们 我的名字是Ramn,但在数字艺术领域,我的名字是ra…

使用fiddler和jmeter进行简单的接口测试。

初学接口测试,以下内容是记录首次使用fiddler和jmeter进行接口测试的步骤,可能步骤有点繁琐,如果有不对的地方,欢迎大家指正。 准备活动: 1、打开fiddler,打开fiddler以后会自动开启代理服务器&#xff08…

89C52RC普中单片机-3

1.LCD1602调试工具 main.c #include<regx52.h> #include "lcd1602.h" void main() {lcd1602_init();//LCD1602初始化();while(1){lcd1602_show_string(0,0,"helloworld");lcd1602_show_string(1,1,"123456.0");} } lcd1602.c #include …

双卡尔曼滤波(KF-UKF)用于考虑电池老化的SOC估计

这篇博文来介绍一下如何使用Simulink来完成无迹卡尔曼滤波的搭建以估计锂电池非线性系统的SOC。 (1)KF估计电池老化。电池的容量会随着每次充放电循环而下降&#xff0c;从而导致SOC估计不准确。当电池在充电和放电之间转换时&#xff0c;使用基于事件的线性卡尔曼滤波器来估计…

Redis 数据库的概念、常用命令

Redis数据库 一、关系数据库与非关系型数据库概述1、关系型数据库2、非关系型数据库3、关系数据库与非关系型数据库区别&#xff08;1&#xff09;数据存储方式不同&#xff08;2&#xff09;扩展方式不同&#xff08;3&#xff09;对事务性的支持不同 4、非关系型数据库产生背…