官方文档:https://www.artillery.io/docs/get-started/first-test
PS:文档挺详细,教程比较全
示例
config:http:extendedMetrics: truetarget: 'http://127.0.0.1:8005'phases:- duration: 10 # 持续时间arrivalRate: 10 # 每秒创建10个用户rampTo: 100 # 最多创建100个用户name: 预热阶段 # 阶段名- duration: 120arrivalRate: 100rampTo: 100name: 正式压测# - duration: 30# arrivalRate: 10# rampTo: 30# name: Spike phase
# plugins:
# ensure: { }
# apex: { }
# metrics-by-endpoint: { }
# apex:
# threshold: 100scenarios:- name: "分配玩家"weight: 7flow:- loop:- post:url: "/room/assignment-user-room"json:appId: 13roomType: 105seasonId: 1userItem:- userId: '1001'roomLevel: 1count: 100- name: "查询房间所有玩家"weight: 7flow:- loop:- post:url: "/room/query-all-user"json:appId: 13roomType: 105seasonId: 1roomId: 100001count: 100
PS: 具体参数查看官方文档
2、启动
一、运行并生成JSON报告
- 使用 -o 参数,先输出JSON:
artillery run artillery/artillery_room.yml -o report.json
二、JSON生成可视化HTML
- 使用 -output 参数将JSON文件输出 html,进行可视化
artillery report --output report.html report.json
3、性能指标
-
默认指标:
-
http引擎指标:
-
扩展指标:
需要先启用extendedMetrics ,通过设置来配置为跟踪其他性能config.http.extendedMetrics指标true:
config:http:extendedMetrics: true