8.5 KiB
ApiAutomationTest
接口自动化测试平台ApiAutomationTest
- 使用她可以像
PostMan
一样进行单个或多个接口调试,或像JMeter
一样使用逻辑控制器组件对案例步骤进行流程控制。 - 测试案例当然少不了期望断言的设置,她可以方便的为请求接口设置期望断言和脚本断言。
- 她同时也提供了例如定时器、变量定义、脚本等工具组件,您可以使用不同类型的组件编写出丰富测试案例场景。
- 您还可以为项目配置定时任务来周期或定时触发执行。
- 案例执行完毕后查看报告,支持执行结果钉钉通知。
Demo示例 (用户名/密码 admin/admin)
内容列表
背景
我和大多数测试人员一样,手工接口测试常用PostMan
来完成。
接口自动化会使用JMeter+Ant+Jenkins
作为解决方案,实现自动化执行、输出报告
以及定时构建和通知。
而对于初次接触JMeter+Ant+Jenkins
自动化解决方案的人来说,搭建跑起来还是有点上手难度的。
本项目借鉴各个工具特点初步形成了目前主要功能(支持接口手工调试、项目级模块级执行、报告输出、钉钉通知、定时构建)
软件架构
- 前端 Bootstrap4 + JS&JQuery
- 后端 Python + Flask
- 依赖库(后端核心第三方库)
- Flask
- Flask-SQLAlchemy
- Flask-Migrate
- Flask-SocketIO
- requests
- PyMySQL
- paramiko
- APScheduler
安装
开发环境和生产环境使用的是Python3.6版本,理论上>=py3.6都可以,建议大家使用Python3.6
版本。
支持Windows
和Linux
部署
-
第一步:创建项目虚拟环境
进入项目目录ApiAutomationTest
,在ApiAutomationTest
目录中执行如下命令创建初始虚拟环境venv
python -m venv ./venv
重点强调: 后面步骤需使用venv中的执行文件来执行
win ./venv/Scripts/pip.exe ./venv/Scripts/python.exe ./venv/Scripts/flask.exe linux ./venv/bin/pip ./venv/bin/python ./venv/bin/flask
-
第二步: 安装Python第三方库
使用pip工具安装pip install -r requirements.txt
国内可以使用douban的镜像源快速下载
pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
-
第三步: 初始化数据库
执行命令flask init
-
第四步: 启动服务
执行命令python webserver.py
使用说明
页面介绍
案例编写
项目(Project) -> 模块(Module) -> 场景(Scene) -> 组件(Element): 项目往下分为4个层级,案例由不同组件组合而成
-
添加一个HTTP请求
空的测试场景,点击左下角按钮添加测试场景填写HTTP相关参数,点击发送按钮测试当前接口。在组件下方可以添加期望断言、预处理脚本、后处理脚本。
预处理脚本(解释: 请求组件执行前执行预处理脚本)
后处理脚本(解释: 请求组件执行后执行后处理脚本)
构建执行
-
场景页面包含了一个模块下所有场景,因此这里执行的是一个模块所有案例。
-
模块页面包含了一个项目下所有模块,因此这里执行的是一个项目所有用例。
查看报告
执行请求组件
是不会生成测试报告,而是在当前页面中展示请求应答数据和期望断言结果。
执行模块
和项目
级执行时,会生成对应的测试报告。
组件说明
组件类型 | 组件名 | 说明 |
---|---|---|
请求组件 | HTTP | 支持HTTP/HTTPS协议 支持常用方法: GET POST DELETE PUT PATCH HEAD OPTIONS |
请求组件 | SSH | 远程执行命令 |
请求组件 | SQL | 支持MySQL数据库 |
请求组件 | Debug | 获取执行时上下文中所有定义的变量和值 |
工具组件 | HTTPHeaderManager | 设置HTTP请求头数据 |
工具组件 | HTTPCookieManager | 设置HTTPCookie数据 |
工具组件 | VariableDefinition | 定义变量 |
工具组件 | Timer | 定时器, 暂停一段时间后继续执行 |
工具组件 | Script | 支持编写Python脚本, 灵活处理复杂逻辑和数据 |
逻辑组件 | SIMPLE | 简单控制器, 可用于对组件进行分组管理 |
逻辑组件 | IF | IF控制器, 填写表达式做是非判断, 只有为True才执行控制器内的组件 |
逻辑组件 | WHILE | WHILE控制器, 满足条件时持续循环, 否则跳出循环 |
逻辑组件 | LOOP | LOOP控制器, 设置循环次数, 循环执行控制器中的组件 |
维护者
鸣谢
如何贡献
非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。
项目遵循 Contributor Covenant 行为规范。
使用许可
本项目使用 Apache License 2.0 许可。
其他
作者联系方式
- 邮箱: zhangzheng527@outlook.com
- QQ交流群: 977134581
相关项目
- WebUIAutoTest (WebUI自动化平台)