# xzf **Repository Path**: wwstudy/xzf ## Basic Information - **Project Name**: xzf - **Description**: XZF小钻风, 是基于若依脚手架搭建的自动化接口测试工具, 通过提供可扩展的登录操作以及函数定义的方式, 灵活地对接口的关联关系, 参数依赖等进行处理, 实现对接口的覆盖测试. 接口之间支持多对多的依赖方式, 并且不限定在同一个系统, 不同系统中的接口可以相互依赖. 对接口的返回结果提供表达式解析功能, 既可以自定义判定接口返回在业务定义中的成功和失败, 也可以为依赖的接口提供参数化处理. - **Primary Language**: Java - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 2 - **Created**: 2022-05-16 - **Last Updated**: 2025-05-19 ## Categories & Tags **Categories**: testing **Tags**: None ## README ## 平台简介 在日常开发过程中, 不知道你有没有遇到过这种情况, 产品提出某个功能需要调整逻辑, 结果发现需要修改的方法被多个地方复用, 而你却根本无法评估改动是否会对其他调用的地方带来影响, 这种时候如果硬着头皮修改, 可能会对某个未知的地方带来难以预测的风险, 而保守策略则是将这段代码拷贝出来, 然后进行修改, 当前改动的业务调用这段新的代码, 其他调用关系不变. 这样既不必承担风险, 又实现了需求, 但是却会让系统逐渐变得臃肿和难以维护, 所以这个问题的本质是测试覆盖不到位, 导致无法评估带动对系统的影响. 而如果可以对系统接口进行全覆盖测试, 那我们大可以大胆地对代码进行修改重构, 然后重新进行一次全覆盖测试即可. 小钻风的目标就是完成这样的接口的覆盖巡检任务, 是基于若依(http://ruoyi.vip) 脚手架搭建的一个接口自动化测试工具, 接口的巡检就相当于是巡山, 所以取名为小钻风. ## 总体设计 ### 设计目标 小钻风的总体设计目标是能够灵活方便地对系统全部或部分业务场景进行接口覆盖测试. ### 主要概念 为了实现上述目标, 抽象除了接口模板, 任务, 任务-接口关系, 登录配置等概念. - 接口模板 接口模板维护了接口的请求方式, mapping路由, 参数格式和接口是否成功的判定表达式. - 任务 任务可以以具体业务场景(如下单流程)进行维护, 维护了host域名, 端口, 登录配置. - 任务-接口关系 维护了任务和接口模板的关联关系, 每个任务下面可以有许多接口, 不同的任务也可以关联相同的接口, 还维护了接口之间的依赖关系, 以及host, 登录配置, 参数等信息, 这些信息在任务或接口模板中也可以维护, 如果都有以此关系表中的为准. - 登录配置 在源码层面以SPI的方式提供自定义的登录处理方式, 以提供灵活的登录处理. 源码添加登录方式之后, 在系统中添加新的登录方式和账号信息等即可在调用接口时使用. - 自定义函数 在源码层面以SPI的方式提供自定义函数, 用于替换依赖参数和判定接口返回结果是否符合预期. ### 其他说明 接口调用结果判定表达式和依赖参数的表达式解析为同一套规则, 整体遵循简单易用的思路, 无需定义变量类型, 也不支持运算符号, 全部以函数的方式进行抽象(系统已经提供一系列常用函数, 还在源码层面以SPI的方式对自定义函数提供支持). 对于依赖参数来说, return的变量可以用于替换对应的预定参数; 对于接口结果判定表达式, return的结果必须是boolean类型, 用于判定接口是否调用成功; 如果返回多个变量, 取它们与运算的结果. 具体使用方式可参考初始化的默认样例的写法.