开源一款接口自动化平台,支持自动生成测试用例、MOCK 等功能。平台其实已经写好蛮久了,之前一直在 coding 托管,最近迁移至 github 公共仓库

1.地址

演示地址:http://42.194.187.183:7778/#/ youke/admini0
开源地址:https://github.com/Biexei

2.运行环境

基于 vue+elemui+java+mysql
jdk1.8、nodejs12.19.0、mysql8、python3.6.5、redis3.2.100

3.功能简介

  1. 用例支持 har/json/yaml/excel/csv 导入
  2. 支持根据等价类,边界值,正交法,笛卡尔积自动生成测试用例,且支持动态数据,数据来源支持数据库
  3. 测试套件支持并行,大幅提升测试效率,生成的测试报告美观,报表数据丰富
  4. 定时任务支持动态启停,配置
  5. 支持在线配置代理
  6. 动态 mock 服务,无需启停服务,且支持请求转发
  7. 丰富的断言策略,目前已支持 jsonpath,xpath,header,code,响应耗时
  8. 支持接口间数据依赖,方便测试流程
  9. 数据中心支持接口依赖,sql 依赖,反射方法。解决数据依赖,数据加密的痛点
  10. 稳定性测试

4.主要功能

4.1 测试数据

目前支持了四种测试数据的来源,第一种是基于 jsonpath 从接口返回值提取数据,第二种是通过 SQL 查询语句,第三种是基于内置的反射方法,第四种是基于固定值。采取 ${xxx}语法表达式提取

4.2 自动生成测试用例

自定义了一套生成用例的约束,根据约束填写模板,将会产生标准的测试用例文件,而后再导入至平台即可

4.3 用例执行

支持串行、并行,两种策略可自行保证用例的执行顺序 or 高效运行。

以及还算丰富的测试报告

4.4 Mock

mock 基于 java 的 mock-server。目前支持多节点(可方便不同人员调试相同接口地址),以及丰富的命中策略



4.4 常见问题

一. 如何保证用例之间的数据关联关系?


目前可采取两种方式解决用例间的数据依赖问题
1.数据中心 - 接口依赖创建



2.配置前置用例


存在两种方式主要是为了减少重复请求次数,以及确保数据的一致性,如需要前置接口返回的多个数据,通过第一种方式则会在需要数据的时候就请求一次,而通过第二种方式则无论需要前置接口的多少个请求数据,都只请求一次

二. 数据加密如何处理?


通过反射方法的形式,可自定义方法处理加密(统一处理类:org.alex.platform.common.InvokeCenter),目前仅提供 md5 哈希



三. 如从 TEST 环境切换到 STG 环境,是否需要编写多套用例?

不需要。系统在创建项目时已强制为每个环境配置 host 和 domain,目前支持 5 种环境。即使在用例中引用了数据库也无需担心环境问题


在执行测试套件时可指定运行环境



四. mock 是否支持请求转发?

支持。举个例子,第一步:配置请求转发

第二步:试验。可以看到/user/list 接口已经转发至真实接口



↙↙↙阅读原文可查看相关链接,并与作者交流