/hRobot

Hybrid Robot 基于 RobotFramework 的二次封装

Primary LanguagePythonApache License 2.0Apache-2.0

Hybrid Robot

基于 RobotFramework 的二次封装

注意

该方案是对 RobotFramework 的二次封装,以减轻**用户使用符合欧美用户习惯的原生 RobotFramework 时的不适,因此,该方案并不适合所有场景。针对技术能力暂时薄弱、英文能力差的中小团队,可能具有一定的疗效。

org License author author Python PyPI

重点改造描述

  • 用 Excel 取代 .robot 文件进行测试用例的编写
  • 增加命令行脚手架工具,一键初始化测试项目,不需要额外学习如何自己搭建目录结构
  • 精简固化用法,高级用法被封装隐藏
  • 集成 Allure 测试报告框架
  • 检测到系统为非 Windows/Mac 系统时,将增加环境变量 HROBOT_BROWSER_MODE=headless,Chrome 将不启动图形界面
  • 安装时会集成常用于测试场景的 Python 库,如: requests, selenium, paramiko

快速开始

安装

pip install hrobot

执行 hrobot 检查

hrobot
  init     初始化项目目录
  run      执行测试用例
  debug    调试测试用例,支持选择用例集、测试用例、标签
  report   生成并展示测试报告
  version  显示版本信息

初始化测试用例项目

使用 hrobot init 初始化项目目录

hrobot init 
  -p    project  定义一个测试项目目录的名称

进入到项目目录中后,文件树接口如下:

<projectName>
├── testcases
│   └── suites.xlsx
├── keywords
│   └── keywords.xlsx
└── variables
    └── variables.xlsx

PS: keywords 暂无实际作用

编写测试用例

通过 Excel 打开 testcases 目录中的 suite.xlsx 文件,有 5 个 Sheet,每个 Sheet 有自己的表头:

  • 用例

  • 变量

  • 前置

  • 后置

  • 可用关键字

例子:


A B C D E F G H
1 用例标题 标签 用例描述 关键字库 关键字 参数
2 SSH远程后再调用 HTTP 接口

远程 执行 root password whoami
3


接口 GET https://xxx/api/info {"Content-Type":"application/json"}
4 HTTP 接口请求后断言

接口 POST https://xxx/api/products {"Content-Type":"application/json {"project_owner":"jing"}
5


接口 响应.断言 status_code 等于 200
6


接口 响应.断言 body.data.0.name 等于 hrobot
7 HTTP 返回值获取

接口 POST https://xxx/api/login {"Content-Type":"application/json"} {"username":"jing"}
8


接口 响应.取值 body.token AUTH
9


接口 GET https://xxx/api/info {"Content-Type":"application/json","Authorization":"${AUTH}"}
10


接口 响应.断言 status_code 等于 200
11


接口 响应.断言 body.username 等于 jing

执行用例

cd <projectName>
hrobot run

生成报告

hrobot report

定义变量

变量有三个级别:用例、用例集、全局,均可以在测试用例的 Excel 编写中通过关键字定义。

除此之外,也可以在用例集的 Excel 的 "变量" Sheet 中提前定义好用例集级别的变量。

全局变量还可以在 variables 目录下的 Excel 中定义,该处定义的全局变量会在报告的环境信息段落中展现。

自定义关键字

  • 待设计