【性能测试必备】混合场景:基于ELK实现性能测试业务模型及tps提取
前言
之前分享过《如何编写性能测试用例》之单场景的文章(https://mp.weixin.qq.com/s/2HaLE7vMPXIPeAGdyuS22A),
今天分享下混合场景,毕竟生产环境上不可能只有一个场景,
对于混合场景,业务模型是重中之重,如果模型提取不准,那么压测结果就没有参考价值,
也经常看到微信群里大家讨论混合场景业务模型相关的话题,结合自己的实际工作,简单分享下,抛砖引玉。
说明:这里介绍的是已上线系统的业务模型提取。
nginx + tomcat + mysql
ELK简介
随着业务发展,服务器越来越多,ELK(以及其衍生架构ELFK等)的出现就是为了更方便查看日志以及做日志分析;
ELK由ElasticSearch、Logstash、Kibana三个开源软件组成。
ElasticSearch:分布式存储检索引擎,用来搜索、存储日志
Logstash:日志采集和日志过滤分析,一般使用后者,前者消耗资源多,日志采集是用Beats这个轻量级日志采集器
Kibana:读取es中数据进行可视化web界面展示
环境规划
说明:这里只是为了演示,不考虑性能,所以未使用ELFK
系统环境:CentOS Linux release 7.9.2009 (Core)
JDK:es和logstash依赖jdk11,jdk可以参考博客:https://www.cnblogs.com/uncleyong/p/10732951.html
ELK下载、安装、配置
下载:https://www.elastic.co/cn/downloads/
elasticsearch-7.14.0-x86_64.rpm
kibana-7.14.0-x86_64.rpm
logstash-7.14.0-x86_64.rpm
详细安装步骤略,度娘上很多,有问题也可以微信群交流。
nginx安装
nginx安装参考博客:https://www.cnblogs.com/uncleyong/p/10742883.html
日志分析:获取业务比例及最大tps
先用jmeter跑一些数据进去,
然后依次从按天、小时的维度缩小范围,假设8月23号是业务量最大的一天(且其它天业务模型和这天差不多),18:00-19:00是业务量最大的小时
小时最大业务量
另外,单业务柱状图对比,高低幅度都一致,所以只考虑一个场景即可。
表格视图
比例图:统计业务比例
获取最大tps
业务最大小时的图中最大为14537,时间为min,所以,14537/60s=242.28
上面点进去,最高是432,时间为s,可以看到,和上面算的平均值(242.28)差了接近一倍
我们再用命令方式统计到秒,结果如下: 最大是524,比上面两个值都要大
边界
那这个tps该取多少呢?我把这个问题留给大家思考。
混合场景用例
除了基于压测工具的设计(假设用的压测工具是jmeter),还包含监控的设计、预期结果、实际结果
监控设计等,参考:《如何编写性能测试用例》之单场景(https://mp.weixin.qq.com/s/2HaLE7vMPXIPeAGdyuS22A)
思考题:
1、上面日志分析中,得出了3个tps,你觉得选哪个更合适?为什么?
2、如何解决业务之间关联问题?比如业务B依赖业务A,业务C依赖业务B,业务D依赖业务C,业务E依赖业务D。
3、如何把业务模型设计到jmeter里面?上面四个业务,按照2:5:2:1的比例,在jmeter中按如下方式实现,是否可行?是否符合生产环境实际调用逻辑?
欢迎微信交流。
欢迎进微信群交流(加作者邀请)
咨询交流,添加微信
https://mp.weixin.qq.com/s/31Yld0A5tfEi4r0UuvH51A
https://www.processon.com/mindmap/609894a15653bb14773d9b25
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!