性能常识 性能测试 (二):压测系统拆解梳理

· 2021年03月19日 · 2356 次阅读

压测系统拆解梳理

测试场景

  • 测试场景:基准场景 (单交易容量场景)

  • 测试场景:容量场景 (递增场景、最大 TPS、最快响应时间场景)

测试工具选型:

  • 压测场景:单接口/复杂事务 => JMeter 场景构造
    • 压力需求:<1000 QPS or 万级以上 => JMeter 分布式支持
    • 是否周期性:JMeter Jmx 场景文件,数据驱动,结果落库
    • 二次开发需求:JMeter 开源插件化思想,支持 Thrift,Dubbo 等多种协议。可以快速平台化。
    • 问题支持:JMeter 开放社区,广泛使用

被测系统分析

1.关注整体系统划分

2.关注服务存储

  • 整体服务存储分为:
    • Mysql:关系型数据存储,商品,订单,等数据。
    • Redis: 缓存,+ 部分存储 例如 验证码。
    • MongoDB: 例如用户关注品牌等存储。

在压测过程中,对不同方式存储需不同关注

3.关注接口文档

  • 被测子系统 API 文档说明

压测目标预估

流量预估模型,常见方式:

  • 1.取出生产数据并统计

  • 2.nginx 的 log 分析
    cat var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -k 1 -nr

举例:简单场景

  • 从业务角度抽离基础登陆场景:

    • 1.用户登陆
    • 2.浏览首页
    • 2.1 增加浏览记录 (自动触发)
    • 3.添加商品/购物车
    • 4.下订单,结算
    • 5. 退出 (退出不代表登出)
  • 初期拉新场景:用户注册功能

  • 营销活动场景:优惠券领取功能场景

抽取拉新场景

用户获取验证码 -> GET /sso/getAuthCode FrondEnd --> Nginx --> Server --> Redis
使用注册码发起注册 -> POST /sso/register FrondEnd --> Nginx --> Server --> Mysql& Redis
用户使用匹配账户密码登陆 -> POST /sso/login
其中接口场景比例为 1:1:1 关系
获取的鉴权信息需保存后为后续请求做测试数据支持

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册