Skip to content

Jackerboy/alex-backend

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

开源一款接口自动化平台,支持自动生成测试用例、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}语法表达式提取

  • 基于jsonpath从接口返回值提取数据
  • 通过SQL查询语句
  • 基于内置的反射方法
  • 基于固定值

4.2 自动生成测试用例

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

  • 以自动生成用户注册接口测试用例为例。支持生成正交测试用例,也可以生成全量的笛卡尔积测试用例。同时为了保证用例的可复用性,支持生成动态测试数据(如用户注册生成的用户名具有唯一性,这就需要保证每次生成的用户名都是唯一的)
    • 生成的用例如下

4.3 用例执行

支持串行、并行,两种策略可自行保证用例的执行顺序or高效运行。 以及还算丰富的测试报告

4.4 Mock

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

4.4 常见问题

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


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

  • 举个栗子,添加用户需要用到登录成功返回的token字段
  • 第一步先创建一个登录成功的接口
  • 第二步在数据中心-接口依赖创建选择该接口,并提取token字段
  • 第三步通过${token}引用


2.配置前置用例

  • 第一步先创建一个登录成功的接口,并为其配置响应数据缓存
  • 第二步为需要关联的用例选择前置用例
  • 第三步通过#{token}引用

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

二. 数据加密如何处理?


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



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

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



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

支持。举个例子,第一步:配置请求转发 第二步:试验。可以看到/user/list接口已经转发至真实接口


About

自动生成测试用例,支持mock

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.9%
  • Python 0.1%