zl程序教程

您现在的位置是:首页 >  其他

当前栏目

关于性能测试的收获

测试性能 关于 收获
2023-09-11 14:20:55 时间

性能测试的主要手段是通过产生模拟真实业务的压力对被测系统进行加压,研究被测系统在不同压力情况下的表现,找出其潜在的瓶颈。

目前,典型的企业IT系统的架构为:系统是由客户端,网络,防火墙,负载均衡器,Web服务器,应用服务器(中间件),数据服务器等等环节组成。根据木桶原理,即木桶所能装的水取决于最短的那块木板,整个系统的性能要得到提高,每个环节的性能都需要优化。因此,我们需要找到最短的那块木板(系统瓶颈)来,先对其进行优化。

一个良好的性能测试工具必需能做到以下几点:

1、提供产生压力的手段;

2、能够对后台系统进行监控;

3、对压力数据能够进行分析,快速的找出被测系统的瓶颈。

产生压力的手段,主要是通过编写压力脚本,这些脚本以多个进程或线程的形式在客户端进行运行,来模拟多用户对被测系统的并发访问,以此来达到产生压力的目的。压力脚本执行的功能和被测系统客户端软件执行的功能应该一样,从而产生真正的业务压力。编写压力脚本的工作实际上就是重新编写客户端软件。最有效的方式是通过性能测试工具录制客户端软件和服务器之间的通讯包,自动产生脚本,然后在自动生成的脚本的基础上进行少量修改,如:关联动态内容,指定批量测试数据等,通常,压力脚本的准备往往占据整个性能测试项目的50%的时间和工作量。

对后台数据的监控。监控应该不在被测系统上安装任何软件,即达到“无代理”监控。原因有两个:假若安装了“代理”软件,它会对被测系统的分析结果产生影响,造成测试结果的不准确性。二,还会对用户系统的稳定性造成潜在的影响,引起客户的反感。“无代理”方式,即不在被测系统上安装任何软件,仅仅通过改变被测系统的配置,就可以对被测系统进行监控。

压力测试完毕后,我们会得到详尽的性能数据,包括最终用户的响应时间,后台系统各个部件的运行数据。由于数据非常庞大,数据分析工具是必要的。它帮助性能测试人员去阅读,解读好分析数据,辅助测试人员定位系统的瓶颈。

性能测试工具的组成部分有4个:虚拟用户脚本产生器Vugen(Virtual User Generator),压力调度和监控系统Conductor,压力产生器Player,压力结果分析工具Analysis。

进行性能测试项目的一般步骤:

1、用户确定需要录制的交易,通过用户操作和Vugen的录制,记录并生成自动化脚本。

2、修改脚本,确保脚本可以回放成功。

3、Conductor是一个集中控制平台,它和压力产生器player互连,制定脚本在player上分配,并控制player向被测系统的加压方式和行为。

4、Conductor同时负责搜集被测系统的各个环节的性能数据。各个player会记录最终用户响应时间和脚本执行的日记。

5、压力执行结束后,player将数据传送到Conductor中,Conductor负责数据的汇总。

6、数据分析工具Analysis读取压力测试数据,进行分析工作,确定瓶颈和调优秀方法。

7、针对性地进行系统调优,重复压力测试数据,进行分析工作,确定性能是否得到提高。

好了,这就是今天的收获了~~~








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/


性能测试知识科普(一) 换成高速收费站的场景,就是车到了收费窗口,我刷卡扫码支付,然后抬杆放行直到车出去下一个车进来。这个过程的耗时就是所谓的响应时间。至于我们常见的平均响应时间和99响应时间,只是不同维度的统计方法而已。
性能测试知识科普(二) 在聊测试策略之前,很有必要聊聊性能测试的目的,或者性能测试的本质是要做什么,解决什么问题。只有想明白这点,后面的需求分析、工具选型、制定测试策略才能更好的开展。
性能测试知识科普(三) 还有在一些技术交流群,很多同学会说自己遇到的问题,如不知道怎么用jmeter参数化,locust的压测结果图表怎么看,怎么写gatling的压测脚本等等。并不是说觉得用工具low,而是遇到问题,我个人觉得首先应该分析问题,找到解决方法和策略,然后寻找合适的工具来辅助自己快速解决问题。