ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

告别繁琐命令行:用 em.yaml 配置文件优雅管理 EvoMaster 测试任务

告别繁琐命令行:用 em.yaml 配置文件优雅管理 EvoMaster 测试任务 告别繁琐命令行用 em.yaml 配置文件优雅管理 EvoMaster 测试任务【免费下载链接】EvoMasterThe first open-source AI-driven tool for automatically generating system-level test cases (also known as fuzzing) for web/enterprise applications. Currently targeting whitebox and blackbox testing of Web APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift).项目地址: https://gitcode.com/gh_mirrors/ev/EvoMaster还在为每次运行 EvoMaster 都要敲一长串命令行参数而烦恼吗作为一款开源的 AI 驱动 API 测试工具EvoMaster 支持通过em.yaml配置文件一键管理所有测试任务参数让 REST、GraphQL、gRPC 等 Web API 的自动化测试配置变得清晰、可复用、易维护。本文教你如何用一份 YAML 配置文件优雅取代冗长的命令行快速上手 EvoMaster 测试任务管理。为什么要用配置文件管理 EvoMasterEvoMaster 拥有几十个可调参数从最基础的--maxTime测试时长、--schemaOpenAPI 文档地址到--outputFormat输出测试格式、--ratePerMinute限流等。如果全部堆在命令行里一条命令可能长成这样java -jar core/target/evomaster.jar --blackBox true --schema https://api.example.com/openapi.yaml --outputFormat JAVA_JUNIT_4 --maxTime 1h --prematureStop 10m --ratePerMinute 60 --outputFolder generated_tests这样的痛点很明显参数一多就容易敲错换一个项目就要重新拼一遍团队协作时难以共享统一配置。而em.yaml配置文件正是为解决这些问题而生。上图就是 EvoMaster 在命令行中执行测试生成任务时的控制台界面展示了端点发现、搜索预算消耗、覆盖目标统计等过程——而这些任务的参数都可以沉淀到配置文件里。em.yaml 配置文件是什么em.yaml是 EvoMaster 默认读取的配置文件本质上是把命令行参数搬进 YAML 文件让配置可见、可注释、可版本管理。最贴心的是EvoMaster 首次运行时会自动生成一份带详细注释的em.yaml模板放在当前工作目录下你只需照着注释填写即可。该行为由createConfigPathIfMissing参数控制默认开启其实现逻辑见 EMConfig.kt。配置文件由两大区块构成configs存放各类命令行选项格式为参数名: 值auth声明登录认证信息从 2.1.0 版本起支持快速上手3 分钟创建你的第一个配置文件在你执行 EvoMaster 的目录下直接运行一次命令程序就会自动生成em.yaml模板当然你也可以手动创建。一个最简的配置文件长这样configs: blackBox: true schema: https://api.example.com/openapi.yaml outputFormat: JAVA_JUNIT_4 maxTime: 1h ratePerMinute: 60 outputFolder: generated_tests保存后下次启动只需一条极简命令java -jar core/target/evomaster.jarEvoMaster 启动时会自动加载当前目录下的em.yaml导入其中所有配置效果与敲完整条命令行完全一致配置解析逻辑可参考 ConfigUtilTest.kt。实测中configs区块只需保持参数名: 值的键值对结构即可例如blackBox: true。必知必会5 个高频配置项一次讲清以下是测试任务中最高频的配置项全部选项清单见官方文档 options.md配置项作用示例blackBox是否黑盒模式不依赖驱动blackBox: trueschemaOpenAPI/Swagger 文档地址或本地路径schema: ./openapi.jsonbase被测系统SUT的基础 URLbase: http://localhost:8080maxTime总搜索时长格式如1h30mmaxTime: 2houtputFormat生成测试的格式outputFormat: PYTHON_UNITTEST搭配使用效果更佳maxTime设置总时长prematureStop设置无改进就提前停止的宽限期二者组合能大幅节省测试时间。例如maxTime: 24hprematureStop: 1h代表最长跑 24 小时但只要连续 1 小时没有进展就自动收工。进阶技巧用 auth 区块管理登录认证黑盒测试中很多 API 需要认证才能访问。与其每次手动复制 token 到--header0不如在em.yaml里用auth区块声明登录流程EvoMaster 会自动完成登录并携带凭证详见 auth.md。支持 Cookie、Header、Bearer Token 等多种方式示例如下auth: - name: foo loginEndpointAuth: payloadRaw: {\username\: \foo\, \password\: \123\} endpoint: /api/logintoken/login verb: POST contentType: application/json expectCookies: true这样即使 token 生命周期很短EvoMaster 也能在测试过程中自动刷新真正实现配置一次反复使用。Docker 环境下的 em.yaml 配置技巧使用 Docker 运行 EvoMaster 时配置文件需要挂载进容器默认路径为/em.yaml。启动命令只需加上挂载参数docker run -v $(pwd)/em.yaml:/em.yaml webfuzzing/evomaster需要注意Docker 模式下--configPath参数不生效因此请务必把文件挂载到/em.yaml固定位置。更多细节可参考 docker.md。下图是 Docker 化部署 EvoMaster 的完整演示流程更换配置文件位置configPath 参数如果不想用默认的em.yaml也可以通过--configPath指定其他路径支持yaml、yml、toml三种格式例如java -jar core/target/evomaster.jar --configPath ./config/my-test.toml这样你可以在一个目录下存放多套配置比如daily.yaml、regression.yaml按需切换测试任务。值得注意的是模板自动生成功能仅在默认路径em.yaml下生效见 EMConfig.kt自定义路径时需要手动创建文件。测试任务完成后如何查看结果配置文件管理的不只是参数EvoMaster 生成的测试报告同样会输出到outputFolder指定目录默认generated_tests并附带一个交互式 Web 报告。报告总览页展示各 HTTP 状态码覆盖情况和故障统计展开单个端点还能查看每条 API 的具体测试用例与故障码方便快速定位问题总结配置文件让测试任务管理事半功倍从冗长的命令行到一行启动命令em.yaml配置文件让 EvoMaster 测试任务管理变得清晰优雅参数集中管理、认证自动处理、配置随项目版本化、多套环境自由切换。无论是黑盒测试 REST/GraphQL API还是通过 Docker 快速部署一份精心维护的em.yaml都能让你的团队告别复制粘贴命令行的混乱时代。想深入了解每个参数的含义翻阅 options.md 和 config_file.md 两份官方文档即可黑盒测试的完整使用场景则见 blackbox.md。现在就去生成你的第一份em.yaml让 EvoMaster 自动测试任务从此一键即达吧【免费下载链接】EvoMasterThe first open-source AI-driven tool for automatically generating system-level test cases (also known as fuzzing) for web/enterprise applications. Currently targeting whitebox and blackbox testing of Web APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift).项目地址: https://gitcode.com/gh_mirrors/ev/EvoMaster创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表