官方文档:https://www.artillery.io/docs/get-started/first-test
PS:文档挺详细,教程比较全
示例
config:
http:
extendedMetrics: true
target: 'http://127.0.0.1:8005'
phases:
- duration: 10 # 持续时间
arrivalRate: 10 # 每秒创建10个用户
rampTo: 100 # 最多创建100个用户
name: 预热阶段 # 阶段名
- duration: 120
arrivalRate: 100
rampTo: 100
name: 正式压测
# - duration: 30
# arrivalRate: 10
# rampTo: 30
# name: Spike phase
# plugins:
# ensure: { }
# apex: { }
# metrics-by-endpoint: { }
# apex:
# threshold: 100
scenarios:
- name: "分配玩家"
weight: 7
flow:
- loop:
- post:
url: "/room/assignment-user-room"
json:
appId: 13
roomType: 105
seasonId: 1
userItem:
- userId: '1001'
roomLevel: 1
count: 100
- name: "查询房间所有玩家"
weight: 7
flow:
- loop:
- post:
url: "/room/query-all-user"
json:
appId: 13
roomType: 105
seasonId: 1
roomId: 100001
count: 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