性能监控体系实战

1、Jmeter基础功能回顾

  • 创建JMeter脚本
    • 录制新建:需求急、有时候需要修改、不推荐
    • 手动创建:推荐
  • 接口压力测试请求的创建
    • post
    • get
    • put
  • 压力测试请求中的数据传递
    • JSON提取器
    • XPATH提取器
  • 压力测试中的结果断言校验
    • Response Assertion
    • JSON Assertion
  • 利用Beanshell生成测试数据
    • Beanshell script逻辑生成数据
    • Java代码逻辑生成数据
  • 全局变量与CSV数据导入
    • User Defined Variables
    • CSV Data Set
  • 压测结果解读
    • 聚合报告
    • 请求/响应结果树
    • Debug Sample

2、压测脚本准备

  • 被压测试程序:https://github.com/princeqjzh/iJmeter >iJmeter/application/orderservice.py
  • 压测脚本:iJmeter-master\jmx\orderservice.jmx
  • 总结
    • 被压测程序
    • Http请求样本
    • Http Header 控制
    • 响应数据解析
    • 思考时间
    • 数据导入、传递和自定义
    • 断言
    • 测试报告

3、性能监控平台压测实战

  • JMeter原生测试报告弊端:
    • 不具备实时性
    • 报告中的数据是测试时间段内的平均值
    • 长相丑陋
  • 性能监控平台的优势
    • 实时展示JMeter压测数据
    • 数据范围可选
    • 长得好看
  • JMeter性能监控平台组成
    • JMeter:压测数据,产生压测数据
    • InfluxDB:开源时序数据库,特别适合用于处理和分析资源监控数据,用于存储压测数据
    • Grafana:度量分析与可视化图标展示工具,可以支持不同种类的数据源,用于将存储与InfuxDB中的数据以图表的形式展示出来
  • 部署方式:
    • docker部署
    • 下载对应docker镜像,启动container实例
    • 搭建监控环境,验证两个端口正常3000 8086
  • 压测实施计划
    • 指定压测策略 不同的并发数10, 20, 50, 100, 200, 400, …
    • 单个并发数压测时常:1分钟
    • 记录结果
    • 期待测试结果
      • 验证能够支撑多大并发数,峰值数
      • 验证错误率,定义可接受范围,<=0.1% or <=0.5% or must=0%
        在这里插入图片描述
    • Demo:运行压测,收集数据
    • 并发数设定:10,20,50,100,200,400, …
    • 分析合理最大并发数,使用合理最大并发数 ,进行长时压测验证结论
    • 注意事项:
      • 一个内网,降低网络因素影响
      • 如果高并发出错率偏高,可以降低并发数,以获取更合理的结果
      • 实际工作中,发压机与被压测应用需要运行在不同的机器上,分摊不同的资源
  • 并发数设定原则:从小->大,先粗粒度,在细化,最后最优的并发数为 瓶颈值* 50% / 30%
  • 应用系统的流量与并发数的对应关系
  • 错误率与并发数的关系
  • 系统合理能力的判断与验证

4、总结:

  • JMeter压测脚本的创建,请求,数据获取,数据传递,验证 …
  • JMeter性能监控平台,Influxdb、Grafana、Jmeter
  • 性能监控平台搭建
  • 性能测试的实施
  • 合理最大并发数的判断
  • 最大并发数验证
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值