SuperAPI AI 工具集

oro-k6-testing

测试与质量

查看项目

更新于 10-16 01:35

技能介绍

用途:为 Oro Commerce 6.1 搭建并运行 k6 性能测试,包括负载测试、商城基准测试、结账流程性能与缓存预热。

主要能力:Oro 自带 k6 测试框架(来自 oro/performance-tests),从外部模拟未登录浏览、登录、商品列表/搜索/详情、购物清单创建与结账流程。脚本为纯 JavaScript,k6 为单个 Go 二进制或 grafana/k6 Docker 镜像。每次运行会输出命名的自定义指标,可针对单个指标设置阈值。脚本位于 performance/scripts/,按固定顺序运行:先 warmingUpTheApp.js(1 VU、60s、THRESHOLD_95=3000)预热 OPcache、Doctrine 元数据、布局缓存和搜索索引;再 storefrontTests.js(典型 1 VU、600s、THRESHOLD_95=850)执行完整浏览流程;最后 checkoutTest.js 执行已登录结账,需提供 SL_ID、SHIPPING_METHOD、PAYMENT_METHOD。

用法:通过 -e KEY=VALUE 传入 BASE_URL、USERNAME、PASSWORD、VU、DURATION、THRESHOLD_95 等变量。Docker 运行示例: docker run --rm --network host -u "$(id -u):$(id -g)" -v "${PWD}/performance:/home/k6/performance" -w /home/k6/performance grafana/k6:latest run -e BASE_URL="https://oro.docker.local" -e USERNAME="AmandaRCole@example.org" -e PASSWORD="AmandaRCole@example.org" -e VU=1 -e DURATION=60s -e THRESHOLD_95=3000 scripts/warmingUpTheApp.js 脚本通过 handleSummary() 生成 summary.html 并输出文本摘要。Oro 脚本在 k6 默认指标外还输出 14 个命名指标,可在 options.thresholds 中按指标设阈值。

限制与注意:必须先预热再跑负载,否则冷缓存会抬高均值/p95;Docker 需加 -u $(id -u):$(id -g) 避免 summary.html 归 root;不要用单一全局 THRESHOLD_95,应针对具体命名指标;对 localhost 不要用默认 bridge 网络,应使用 --network host 或接入 compose 网络。官方文档与参考文件包括 custom-metrics.md、docker-invocation.md、default-metrics.md、install.md、v6.1.md、v7.0.md。