# AiGeneratorCases **Repository Path**: JackStarCoder/ai-generator-cases ## Basic Information - **Project Name**: AiGeneratorCases - **Description**: AI自动生成测试用例的小工具 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-09-27 - **Last Updated**: 2025-08-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 测试分析AI生成自动化用例工具介绍 ## 快速开始: ### 试用地址: [恒生数据仿真平台-AI测试用例生成](http://10.20.181.131:8082/#/checkCase/aiExchange) 临时测试账号:test/111111 ### 主要功能简介: 工具支持自动化用例的单个或者批量生成。支持的类型包括: 1,**通用类型自动化**。通用的测分点生成自动化用例。支持通过测试点生成自动化用例,生成用例的接口参数会参考参数的基础值和枚举值来生成。支持单步用例,使用基础数据,不支持前置步骤的数据准备,支持接口返回值的检查,不支持数据库db检查。 2,**URP3的勾稽用例自动化**。数风的勾稽用例,针对业务的场景做了特殊处理,支持用例多个步骤的构建,支持前置步骤的数据准备。 ### 例子1(赛题): 根据测分的测试点生成自动化用例。赛题的接口定义维护到了数风部门使用的接口定义管理工具(Yapi).,生成的自动化用例包含: * 接口调用,以及实际可用的参数,AI给出的参数符合业务场景要求,并考虑了枚举值和基础数据的要求。 * 期望检测,AI给出的结果考虑了业务场景和接口的返回值结构定义。 #### 关键步骤实现截图: ![image](./aitest-generate/document/image/example1-1.png) ![image](./aitest-generate/document/image/example1-2.png) - Tip: 因赛题提供的系统是其他部门的,没有环境,暂无运行检验步骤。且赛题提供的测分点只有1个较少,验证价值也低。 - 后续2个实例,分别用我们部门的2个系统进行了完整的全流程验证。可以具有实用价值! ### 例子2(反洗钱用例AI生成): * 依托研发的aApi接口管理平台(Yapi),生成自动化用例时AI自动关联对应的接口。 * 调用AI生成自动化用例并上传到Blade平台,同时接口转成blade的脚本,blade自动化用例关联脚本,并生成测试数据。 * 发起的入口可以是网页,也可以是流量器插件。 #### 关键步骤实现截图: ![image](./aitest-generate/document/image/example2-1.png) ![image](./aitest-generate/document/image/example2-4.png) ![image](./aitest-generate/document/image/example2-2.png) ![image](./aitest-generate/document/image/amlExcample2-12.png) ![image](./aitest-generate/document/image/amlExcample2-13.png) - 实际效果(大于赛题要求的50%): - (1)自动生成后首次运行通过率有望达到100%。[最后一次100%通过率的Blade链接](http://report.blade.hundsun.com/task_detail.html?_projectId=289aa8a63edf4ca4a664743d6e5e9c5c&_vId=289aa8a63e&_branchId=&productId=289aa8a63edf4ca4a664743d6e5e9c5c&taskGroupId=3bd5d4250596423298c3c1403ed322ac&caseId=562e0ac20a2a4cb2bcf33b2ca6b28a3d%7C7) - (2)自动生成后首次运行通过率81.8%,[效果截图如上,Blade报告链接](http://report.blade.hundsun.com/task_detail.html?_projectId=289aa8a63edf4ca4a664743d6e5e9c5c&_vId=289aa8a63e&_branchId=&productId=289aa8a63edf4ca4a664743d6e5e9c5c&taskGroupId=312f63705215446b995fe297e447ea54&caseId=30deae4fbbfc4d81b3ed75db156a49ca%7C8) ### 例子3(勾稽用例生成): 针对URP3.0的勾稽测试场景,定制了勾稽自动化用例的AI生成,测试点内容即勾稽规则的描述可以通过勾稽编号查询数据库获得,所以测试点的描述只要提供勾稽编号即可。3种类型生成: * 根据勾稽编号。 * 根据报表编号(批量生成报表的所有勾稽规则的自动化用例)。 * 根据模块生成(批量生成模块下所有报表的自动化用例)。 #### 关键步骤实现截图: ![image](./aitest-generate/document/image/example3-1.png) ![image](./aitest-generate/document/image/example3-2.png) * 实际效果: 1,cisp001模块的勾稽自动化用例使用AI生成,3700+用例,已纳入日常的回归。(经人工干预优化,目前通过率99%+)。 [cisp001模块用例(已经过人工调整)](http://report.blade.hundsun.com/task_detail.html?_projectId=d201ae3edf6a455ebd567febd5c35b2f&_vId=d201ae3edf&_branchId=&productId=d201ae3edf6a455ebd567febd5c35b2f&taskGroupId=09e609d44570428292bfce71d77f6752) 2,cisp101模块的勾稽自动化用例使用AI生成,4000+用例(未经过人工干预,初始的成功率60%+)。 [cisp010模块的AI生成用例(原始用例未调整)](http://report.blade.hundsun.com/task_detail.html?_projectId=d201ae3edf6a455ebd567febd5c35b2f&_vId=d201ae3edf&_branchId=&productId=d201ae3edf6a455ebd567febd5c35b2f&taskGroupId=ba9a137cef384294b4ea26f0c00c0773) ## 整体方案: ### 整体架构图: ![image](./aitest-generate/document/image/total-1.png) ## 赛题拆解 **选择的赛题**:测分思维导图生成用例。 **赛题资料**:https://iknow.hs.net/portal/docView/home/115601 **过程拆解**: 1,解析测分思维导图内容,获得关于测试点的描述。 2,构建promt:根据测试点描述+接口定义,生成接口的参数集,以及预期值。 3,调用blade的接口,根据参数和接口定义,构建生成自动化用例。 **难点&重点**: 1,测分思维导图的格式不固定,不同类型的测分中描述的测试点,依赖条件差别巨大,无法统一。流程类的场景。偏前端界面检查的场景,数据类的场景等,测试关注点,操作,依赖条件都差别很大。 2,如何生成可以执行的接口参数集?AI原始生成的参数,可能不符合实际的业务规则。如随机生成的账号,可能无法直接调用接口。 3,检查点如何自动生成,特别是对数据库的检查,AI无法通过测试点描述自动生成。 ## 工作分工: ### 准备阶段:(~8.15) 1,根据典型测分场景调试prompt,验证生成的参数集的可行性。 2,测分生成自动化用例的代码工程搭建。 3,方案讨论&确定。 ### 实现阶段: (8.16~9.30) 1,前端+测分内容采集+解析。 2,prompt内容构建&优化。 3,AI接口调用,内容生成。 4,AI结果生成转化。 ### 集成阶段:(10.08~10.25) 1,前后端接口的联调。 2,prompt,流程优化,提升稳定性。 3,相关文档治疗的准备。 ## 项目工程说明: ### 整体结构 1, ai-testcase-generate-extension:chrome插件,用于在浏览器上获得测分内容后调用用例自动生成的服务。 2, aitest-generate:后端服务,提供AI自动生成用例的服务。 3,恒生数据仿真平台,为了方便使用&调试,发起的入口也集成到了数风测试工具中(恒生数据仿真平台),支持通用的自动化用例和勾稽自动化用例的生成。 ### 代码结构 aitest-generate: src/main/java/com.hundsun.aitest * controller- 包含所有控制器类,处理HTTP请求。 * service- 实现业务逻辑的服务层。 * repository- 数据访问层,包含与数据库交互的接口和实现。 * model- 数据模型或实体类。 * util- 各种工具类,如日期处理、加密等。 * common- 通用的配置 src/main/resources * application.properties- 应用程序配置文件。 * static- 静态资源文件,如CSS、JavaScript、图片等。 * logback.xml- 日志配置文件。 src/test/java/com.hundsun.aitest * test - 单元测试和集成测试。 ### 环境要求 * JDK 8 (用免费的版本) * Maven 3.6.3+ ### 对外接口说明 (External API Documentation) #### 根据测试点生成用例(单测试点) * URL:aiApi/aigenerate * HTTP Method: POST * Request Parameters: * content: 测试点描述 * projectName:用例上传blade项目名称 * account:上传用例的作者 * nodePath:上传用例的存储根目录 * Response Format: * 成功返回大模型给出的用例内容string * 失败返回错误信息 * Error Codes: * 500: 内部服务器错误 #### 根据测试点批量生成用例(多个测试点) * URL:aiApi/batch_aigenerate * HTTP Method: POST * Request Parameters: * content: 测试点描述,可以在测分文件里批量拷贝出测分文件的多个测试点 * projectName:用例上传blade项目名称 * account:上传用例的作者 * nodePath:上传用例的存储根目录 * Response Format: * 成功返回大模型给出的用例内容string * 失败返回错误信息 * Error Codes: * 500: 内部服务器错误