Skip to content

Latest commit

 

History

History
145 lines (103 loc) · 5.1 KB

设计思路.md

File metadata and controls

145 lines (103 loc) · 5.1 KB

哥白尼项目概况

优势:

  • 一键迭代全部用例,方便快捷且不会出错

  • 只用维护两种表,方便后期批量修改

  • 数据库中文检索,便于查看用例步骤细节

成果:

  • 构建自动化整体的时间,相比传统方法,时间节省了 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 实现