遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

【性能测试必备】混合场景:基于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

 

【bak】

https://www.processon.com/mindmap/609894a15653bb14773d9b25

 

posted @ 2021-08-24 18:12  全栈测试笔记  阅读(1084)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end