🚀 5分钟搞定复杂业务测试!AngusTester多事务编排终极指南
从用户注册到业务操作,一条龙测试编排原来这么简单!
嘿,测试达人们!今天咱们用AngusTester编排一个包含用户注册→登录→业务操作的完整流程,让你见识下什么叫"测试一条龙服务"!🐉
🌟 先睹为快:基本脚本架构
yaml
specification: angus/1.0.0
info:
name: 电商全链路压测
description: 从注册到下单的完整业务流程
type: TEST_PERFORMANCE
plugin: Http
configuration:
duration: 50min
thread:
threads: 5000
rampUpInterval: 1min # 每分钟增加100用户
rampUpThreads: 100
💡 配置小贴士:
rampUpThreads
是渐进加压的神器!像煮汤一样慢慢加火候🔥,避免系统被瞬间打垮
🔄 核心事务流:像搭积木一样简单
第一步:用户注册
yaml
- target: HTTP
name: 用户注册
request:
method: POST
url: http://api.angus.com/user/signup
body:
rawContent: "{\"username\": \"test\", \"password\": \"123456\"}"
assertions:
- name: 状态码必须200
type: STATUS
expected: 200
第二步:模拟用户输入等待
yaml
- target: WAITING_TIME
name: 输入等待
maxWaitTimeInMs: 1000 # 等待1秒
⏳ 真实场景还原:用户不会秒操作,这个等待让测试更真实!
第三步:用户登录
yaml
- target: HTTP
name: 用户登录
request:
method: POST
url: http://api.angus.com/user/signin
body:
rawContent: "{\"username\":\"test\",\"password\":\"123456\"}"
assertions:
- name: 登录必须成功
type: BODY
expression: $..token # 检查返回token
🧩 高级玩法:业务场景编排
集合点:百人团购效果
yaml
- target: RENDEZVOUS
name: 百人团集合点
threads: 100 # 凑满100人才放行
timeoutInMs: 100 # 最多等100毫秒
👥 场景还原:模拟秒杀场景,测试系统抗压能力
业务操作1:浏览商品
yaml
- target: HTTP
name: 浏览商品
request:
method: GET
url: http://api.angus.com/products
assertions:
- name: 必须返回商品列表
type: BODY
expression: $..products # 检查商品列表
流量控制:防止系统过载
yaml
- target: THROUGHPUT
name: 下单限流器
permitsPerSecond: 50 # 每秒只放50请求
timeoutInMs: 100 # 超时100毫秒
🚦 流量警察:保护系统不被突发流量冲垮!
业务操作2:提交订单
yaml
- target: HTTP
name: 提交订单
request:
method: POST
url: http://api.angus.com/orders
body:
rawContent: "{\"productId\": 123, \"quantity\": 1}"
assertions:
- name: 订单创建成功
type: STATUS
expected: 201
🧠 智能编排技巧
事务封装:业务操作原子化
yaml
- target: TRANS_START
name: 订单事务开始
# ...中间操作...
- target: TRANS_END
name: 订单事务结束
优势:
- 统计每个事务的成功率
- 精准定位故障环节
- 生成专业级事务报告
错误处理:智能容错机制
yaml
onError:
action: CONTINUE # 出错继续执行
sampleError: true # 采样错误
sampleErrorNum: 20 # 最多记录20个错误
🛡️ 测试保镖:遇到错误不中断,继续执行并记录问题
💡 高手进阶技巧
参数化动态数据
yamlbody: rawContent: "{\"username\": \"{随机用户名}\"}"
用
实现千人千面测试
关联调用
yamlheaders: Authorization: "Bearer {登录.token}"
自动获取登录token用于后续请求
条件跳转
yamlcondition: "{响应码} == 200"
根据响应结果动态调整流程
🌈 为什么选择AngusTester编排?
三步上手秘籍:
- 复制本文YAML模板
- 替换成你的API地址
- 点击运行看火焰图🔥
现在就去试试吧!遇到问题随时回来看文档~ 📚
记住:好的测试编排,是压测成功的一半! ✨
点击下载完整示例脚本:S5_Test_1_Http_Pipeline_Performance.yaml
立即开始AngusTester测试之旅:🔗 进入AngusTester控制台 🔗