当前位置: 首页 > news >正文

QWEN

自动化测试平台

assets/QWEN/file-20251004002619167.png

项目概述

这个项目是一个专注于基于 TestNG 的自动化测试的自动化测试平台。它由两个主要组件组成:

1. auto-testng-app (Rust 桌面应用程序)

  • 目的:一个跨平台的桌面 GUI 应用程序,用于管理 TestNG 自动化测试。它提供测试用例管理、环境配置、测试执行、报告生成和数据管理等功能。
  • 技术
    • 语言:Rust (edition 2021)
    • GUI 框架:Iced 0.12 (带有 wgpu 渲染功能)
    • 异步运行时:Tokio
    • 数据库:SQLite (通过 SQLx)
    • 其他关键依赖:Serde (JSON 序列化)、Reqwest (HTTP 客户端)、Chrono (时间处理)、UUID、Tracing (日志记录)、Regex、URL 解析。
  • 架构:遵循 MVVM 模式,使用 Elm 架构进行状态管理(消息驱动更新)。采用模块化结构,包括应用核心、页面、组件、模型、服务和工具目录。
  • 当前状态:基本框架已实现(UI 骨架、状态管理)。核心功能如测试用例管理、执行和报告已规划但尚未实现。
  • 项目结构
    auto-testng-app/
    ├── Cargo.toml          # 依赖和构建配置
    ├── build.rs            # 构建脚本(可能用于 SQLx)
    ├── src/                # 源代码
    │   ├── main.rs         # 入口点
    │   ├── lib.rs          # 库定义
    │   ├── app/            # 核心应用逻辑(状态、消息)
    │   ├── pages/          # UI 页面(例如 main_page.rs)
    │   ├── components/     # 可重用 UI 组件
    │   ├── models/         # 数据模型
    │   ├── services/       # 业务服务
    │   └── utils/          # 实用函数
    ├── assets/             # 静态资源
    │   └── styles/         # CSS 样式(例如 report.css)
    ├── migrations/         # 数据库模式迁移(SQL 文件)
    └── README.md           # 详细项目文档
    

2. auto-testng-command (Java 命令行工具)

  • 目的:一个用于动态执行 TestNG 自动化测试的命令行工具。支持从提供者进行数据驱动测试、基于配置的 REST API 调用、动态验证步骤,以及 Allure 报告生成。设计用于与桌面应用集成或独立使用。
  • 技术
    • 语言:Java 17
    • 构建工具:Maven
    • 框架:Spring Boot (非 Web)、TestNG 用于测试、Allure 用于报告
    • 数据库:SQLite (通过 sqlite-jdbc 和 MyBatis-Plus ORM)
    • 其他关键依赖:FastJSON (JSON 处理)、Hutool (实用工具)、Lombok (样板代码减少)、Groovy (脚本)、Nashorn (用于动态验证的 JavaScript 引擎)、JSONPath (查询)。
  • 架构:Spring Boot 应用,使用 MyBatis-Plus 进行数据库交互。使用 TestNG 进行测试执行和 Allure 进行详细报告。支持通过 XML 配置自定义测试套件,以及带有验证脚本的动态 API 测试。
  • 当前状态:核心执行框架已实现,包括 TestNG 集成、Allure 报告和动态测试逻辑。支持命令行参数以实现灵活性。
  • 项目结构
    auto-testng-command/
    ├── pom.xml                     # Maven 构建配置
    ├── src/main/java/com/autotest/ # 主应用代码(例如 TestRunner.java)
    ├── src/test/java/com/autotest/ # 测试类(例如 ExampleTest.java)
    ├── src/test/resources/         # 测试资源(例如 testng.xml)
    ├── src/assembly/               # JAR 打包的汇编描述符
    └── README.md                   # 使用和设置指南
    

整体项目

  • 根目录E:\code\automated-testing-platform
  • 附加文件夹
    • doc/:项目文档。
    • .roo/:包含子文件夹如 rules-architectrules-askrules-coderules-debug(可能是自定义规则或 AI 配置)。
    • .superdesign/:设计迭代(UI/UX 原型或笔记)。
    • .trae/:规则文件夹(可能是工具特定配置)。
    • .obsidian/:Obsidian 笔记应用库(个人笔记或项目 wiki)。
    • .idea/:IntelliJ IDEA 项目配置。
    • .git/:Git 仓库。
  • GitIgnore:标准忽略 IDE 文件、构建产物等。
  • 许可证:MIT (从 README 推断)。
  • 开发阶段:早期开发。该平台旨在简化 TestNG 测试管理和执行,桌面应用提供用户友好的界面,命令工具处理后端执行。

构建和运行

先决条件

  • Rust 组件:Rust 1.70+ 和 Cargo (通过 rustup 安装)。
  • Java 组件:Java 17+、Maven 3.9.8+、Allure 2+ (用于报告;通过 npm install -g allure-commandline 或类似方式安装)。
  • 数据库:SQLite (无需单独安装;由依赖处理)。

auto-testng-app (Rust)

  1. 导航到目录:
    cd E:\code\automated-testing-platform\auto-testng-app
    
  2. 构建项目:
    cargo build
    
  3. 运行应用程序:
    cargo run
    
    • 这将启动桌面 GUI。对于发布构建:cargo build --release
    • 数据库迁移通过 migrations/ 中的 SQLx 处理(首次使用时自动运行)。

auto-testng-command (Java)

  1. 导航到目录:
    cd E:\code\automated-testing-platform\auto-testng-command
    
  2. 编译:
    mvn clean compile
    
  3. 运行测试 (通过 Maven):
    mvn test -Dtestng.xml=src/test/resources/testng.xml
    
    • 或使用 Allure:mvn allure:serve (在浏览器中打开报告)。
  4. 打包成可执行 JAR:
    mvn clean package
    
    • 生成 target/auto-testng-command-jar-with-dependencies-and-tests.jar
  5. 运行工具:
    java -jar target/auto-testng-command-jar-with-dependencies-and-tests.jar <testng-xml-path> <allure-results-dir> [allure-report-dir] [allure-command-path]
    
    • 示例:
      java -jar target/auto-testng-command-jar-with-dependencies-and-tests.jar src/test/resources/testng.xml target/allure-results target/allure-report
      
    • 查看报告:allure open target/allure-report

TODO:集成两个组件(例如,应用调用命令工具)。未找到根级构建脚本;分别构建每个子模块。

开发规范

通用

  • 版本控制:使用 Git。提交消息应清晰且描述性(关注“为什么”进行更改)。匹配最近提交风格(例如,从 git log -n 3)。
  • 文档:为新功能更新 README 和 doc/ 文件夹。使用 Markdown 保持一致性。
  • 测试
    • Rust:使用 Cargo 内置测试 (cargo test)。
    • Java:使用 TestNG 和 Allure 注解 (@Epic@Feature@Step 等) 生成丰富报告。为新代码确保高覆盖率。
  • 贡献:遵循特定语言风格。为新功能添加测试。更新文档。没有正式 CLA,但遵守 MIT 许可证。

Rust (auto-testng-app)

  • 代码风格:Rust 官方指南(例如 rustfmt)。使用 cargo fmtcargo clippy 进行 linting。
  • 错误处理:优先使用 anyhowthiserror 进行显式错误。
  • 异步:所有异步操作使用 Tokio(例如 HTTP 请求、DB 查询)。
  • 状态管理:消息驱动 (Elm-like)。在 app/message.rs 中定义消息,并在 update() 函数中更新。
  • 数据库:使用 SQLx 进行查询/迁移。运行 cargo sqlx prepare 进行编译时验证。
  • UI:Iced 小部件;保持视图纯净并对状态变化做出反应。

Java (auto-testng-command)

  • 代码风格:标准 Java 规范。使用 Lombok 进行 getter/setter 等。在 IDE 中启用注解处理。
  • 构建/Lint:Maven 带有编译器插件 (Java 17)。提交前运行 mvn clean compile
  • 测试:通过 testng.xml 的 TestNG 套件。使用 @Test@DataProvider 进行动态测试。集成 Allure 用于步骤/附件。
  • 数据库:MyBatis-Plus 与 SQLite。实体上使用 @TableName@TableId 注解。
  • 动态逻辑:Groovy/JS 用于验证脚本。Hutool 用于实用工具(例如 HTTP、JSON)。
  • 打包:使用 Maven Assembly 进行包含依赖的 fat JAR。

项目范围

  • 跨组件集成:应用可能通过 Rust 中的 std::process::Command 调用命令工具进行执行 (TODO: 实现)。
  • 安全:无 Web 暴露;关注本地文件/DB 安全。避免硬编码秘密。
  • 性能:Rust 用于 GUI 效率;Java 用于稳健测试执行。
  • 工具:IntelliJ IDEA (从 .idea/)、Obsidian 用于笔记。

这个 QWEN.md 作为未来交互的上下文指导。随着项目的发展进行更新。

http://www.hskmm.com/?act=detail&tid=23887

相关文章:

  • 趣题记
  • Day25捕获与抛出异常
  • 『回忆录』高二上第一次月考——压力下的崛起,意外中的突破
  • 免费代理池
  • 白箱算力突破:WBUC与「可能性工程」的诞生(AI元人文系列文章)
  • Linux 中 awk命令提取偶数列数据
  • 『随笔』0919
  • 主要编码规范
  • Docker 安装配置 OnlyOffice - Higurashi
  • 什么是计算数学?
  • 数论中的欧拉函数
  • 悬荡悟空:一个异想天开的计算神话及其硬件证言
  • 实用指南:Windows中焦点与软键盘
  • OpenLayers地图交互 -- 章节十五:鼠标滚轮缩放交互详解 - 实践
  • 2025对外AI服务合规指南:6步构建可审计的法律法规遵循体系
  • NOI 七
  • 三霍尔BLDC——已知霍尔元件输出与相线输入电压的关系表,如何写程序
  • 第一
  • 2025.10 模拟赛日志
  • Python算法题
  • ZSH 安装配置
  • Spring事务管理:-propagation
  • VSCode 中无法定位 Go 项目中自定义方法或类
  • 写作业
  • P11164 [BalkanOI 2023] Permutations
  • Spring事务管理:-rollbackFor
  • 微信图片批量保存的办法
  • 详细介绍:使用 C# 设置 Excel 单元格数据验证
  • 10.3 闲话-分散层叠
  • 博客园实验1