前言
之前分享过如何编写性能测试用例之单场景的文章,今天分享下混合场景,毕竟生产环境上不可能只有一个场景;
对于混合场景,业务模型是重中之重,如果模型提取不准,那么压测结果就没有参考价值;
在微信群或者Q群,也经常看到大家讨论混合场景业务模型相关的话题,所以,结合自己的实际工作,简单总结分享下,抛砖引玉。
说明:这里介绍的是已上线系统的业务模型提取。
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
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
详细安装步骤略,度娘上很多,有问题也可以微信群交流。
日志分析:获取业务比例及最大tps
先用jmeter跑一些数据进去,然后依次从按天、小时的维度缩小范围;
假设8月23号是业务量最大的一天(且其它天业务模型和这天差不多),18:00-19:00是业务量最大的小时。
小时最大业务量
另外,单业务柱状图对比(这里图片省略),高低幅度都一致,所以只考虑一个场景即可。
表格视图
比例图:统计业务比例
获取最大tps
业务最大小时的图中最大为14537,时间为min,所以,14537/60s=242.28
上面点进去,最高是432,时间为s,可以看到,和上面算的平均值(242.28)差了接近一倍
我们再用命令方式统计到秒,结果如下:最大是524,比上面两个值都要大
边界
那这个tps该取多少呢?我把这个问题留给大家思考。
混合场景用例
除了基于压测工具的设计(假设用的压测工具是jmeter),还包含监控的设计、预期结果、实际结果
监控设计等,参考:《如何编写性能测试用例》之单场景
思考题:
1、上面日志分析中,得出了3个tps,你觉得选哪个更合适?为什么?
2、如何解决业务之间关联问题?比如业务B依赖业务A,业务C依赖业务B,业务D依赖业务C,业务E依赖业务D。
3、如何把业务模型设计到jmeter里面?上面四个业务,按照2:5:2:1的比例,在jmeter中按如下方式实现,是否可行?是否符合生产环境实际调用逻辑?
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】