-
一键迭代全部用例,方便快捷且不会出错
-
只用维护两种表,方便后期批量修改
-
数据库中文检索,便于查看用例步骤细节
- 构建自动化整体的时间,相比传统方法,时间节省了 58%
最开始人力填写用例步骤与 DEBUG 需要 7 天;现在使用哥白尼自动填写用例步骤,需要 3 天
构建自动化整体的时间【传统】:根据 API 文档来填写 API 测试,再根据 API 测试来填写到场景用例中的全过程
构建自动化整体的时间【哥白尼】:从手动测试 API 接口,到思考每个用例步骤的所需参数与排列顺序,再到创建场景用例并填写全部用例步骤,最后自动化运行成功的全过程
- 随着场景用例的增加,使用哥白尼的优势更明显
如果只横向对比自动填写(哥白尼的主体功能)和手工填写场景用例,不考虑只能人力完成的任务(如需求分析与理解、手动校验单个接口等过程),哥白尼运行的时间几乎可以忽略不计!在我重构全部原有项目的时候,平均用时仅为 62 秒,目前整个项目有 118 个用例步骤,随着项目组的推进,以后可能会扩展到几百甚至上千的用例,如果纯手工来维护用例肯定是严重耗时且易错的(修改一个接口可能需要迭代几十个用例),使用哥白尼仅需要维护表单,即 Ctrl + F 一键更改接口,再一键运行表单迭代功能,最多不超过 10 分钟,就能完成全部自动化用例的迭代。
项目一共三个文件夹:base 包含了众多基础类,负责最底层的操作;scenario-test 对应了开普勒的场景用例;template 是中文数据检索的前端模板
- base
- check.py
- cvcurl.py
- database.py
- demand.py
- info.py
- mulapi.py
- require.py
- scenario-test
- processing
- 表单迭代.py
- 场景用例.py
- 数据库交互.py
- template
- test.html
- 用例检索.py
check 文件包含了 Check 类
-
用法:判断所需的参数是否合乎规范
-
功能:支持 JSON, URL 判断
cvcurl 文件包含了 ConvertcURL 类
- 用法:将 cURL 转换成 Python 代码
- 功能:可支持提取的参数如下
- url / urls(不含参数 / 含参数)
- method(请求方法)
- headers(JSON 格式)
- cookies(JSON 格式)
- query(JSON 格式)
database 文件包含了 Database 类
- 用法:与 MongoDB 数据库交互,能够实现将所需数据增删改查进数据库中
- 功能:支持的操作如下
- 插入用例步骤
- 查看 / 获取用例步骤
- 修改用例步骤
- 删除用例分组
- 查看批量修改用例步骤的教程
- 构建中文分词索引
demand 文件包含了 Demand 类
- 用法:先查询所要操作用例的位置,再进行一系列操作
- 功能:支持的操作如下
- 展示全部场景分组列表对应的 serviceid [需要手动记录]
- 查询目标场景用例所处的位置(支持模糊查询)
- 获取目标场景用例对应的 ID / 获取 ID 对应的场景用例
- 自动创建场景用例
- 删除用例分组下的全部场景用例
info 文件包含了基本信息
储存开普勒的 cookies、headers,和 project_id、teamid 参数
mulapi 文件包含了 Mulapi 类
- 用法:先传入场景用例的环境参数,再填入需要的步骤参数
- 功能:支持填入的步骤参数如下
- 待测试 api 的主体信息(描述 / 请求方法 / 请求路径)
- 请求体(raw - JSON)
- Query(key - value)
- 参数提取(默认提取响应体)
- 校验方式(默认是 JSON 匹配)
require 文件包含了 Require 类
- 用法:封装的 Require ,意在更方便的使用 requests 类
- 功能:输出全部请求和响应信息(前提是执行过 require 方法),包含
- 请求头
- 载荷(请求参数)
- 响应码
- 响应头
- 响应内容
processing 文件夹包含了场景用例文件夹和用例步骤文件夹
-
场景用例文件夹包含了开普勒的全部用例分组的场景用例
-
用例步骤文件夹包含了开普勒的全部用例分组的用例步骤
表单迭代文件封装了数据库和开普勒的功能
- 一键更新数据库
- 一键迭代开普勒的全部场景用例
- 一键实现以上二者
场景用例文件封装了开普勒的功能
- 查看用例分组对应的 serviceid
- 查看 ID 对应的场景用例
- 查看目标场景用例对应的 ID
- 新建场景用例
- 修改场景用例
数据库交互文件封装了数据库的功能
- 添加用例步骤进数据库(可添加多个)
- 修改用例步骤
- 批量修改用例
- 删除用例分组
实现的方式很简单,仅包含用例检索文件和前端模板
- 前端,静态网页 test.html
- 后端,用例检索文件使用 Flask 框架实现
- 数据库,采用 MongoDB
- 交互,整体采用 MVC 框架
- 检索,使用倒排 + 中文分词切片,由 jieba + paddle 实现