关于性能测试的收获

简介:

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

  目前,典型的企业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/

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
1月前
|
SQL 搜索推荐 测试技术
【Havenask实践篇】完整的性能测试
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。性能测试的目的在于评估搜索引擎在各种负载和条件下的响应速度、稳定性。通过模拟不同的用户行为和查询模式,我们可以揭示潜在的瓶颈、优化索引策略、调整系统配置,并确保Havenask在用户数量激增或数据量剧增时仍能保持稳定运行。本文举例对Havenask进行召回性能测试的一个简单场景,在搭建好Havenask服务并写入数据后,使用wrk对Havenask进行压测,查看QPS和查询耗时等性能指标。
65385 6
|
7月前
|
监控 关系型数据库 MySQL
学会这些性能测试干货知识点,才好拿捏性能测试
学会这些性能测试干货知识点,才好拿捏性能测试
|
11月前
|
测试技术
性能测试理论知识
软件性能 :软件的一种非功能特性,它关注的不是软件是否能完成特定功能,而是在完成功能时展现的及时性。性能测试 :通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
|
SQL 算法 测试技术
性能测试之理论知识
性能测试之理论知识
|
消息中间件 缓存 运维
性能测试技术笔记(一):如何快速上手压测工作
如果是专职做性能测试,或者刚介入一个全新的系统进行压测,想要短时间内了解业务细节是几乎不可能的。
性能测试技术笔记(一):如何快速上手压测工作
|
负载均衡 测试技术
性能测试知识科普(二)
在聊测试策略之前,很有必要聊聊性能测试的目的,或者性能测试的本质是要做什么,解决什么问题。只有想明白这点,后面的需求分析、工具选型、制定测试策略才能更好的开展。
性能测试知识科普(二)
|
缓存 监控 测试技术
性能测试知识科普(一)
换成高速收费站的场景,就是车到了收费窗口,我刷卡扫码支付,然后抬杆放行直到车出去下一个车进来。这个过程的耗时就是所谓的响应时间。至于我们常见的平均响应时间和99响应时间,只是不同维度的统计方法而已。
|
数据可视化 测试技术
性能测试知识科普(三)
还有在一些技术交流群,很多同学会说自己遇到的问题,如不知道怎么用jmeter参数化,locust的压测结果图表怎么看,怎么写gatling的压测脚本等等。并不是说觉得用工具low,而是遇到问题,我个人觉得首先应该分析问题,找到解决方法和策略,然后寻找合适的工具来辅助自己快速解决问题。
|
测试技术
软件测试面试题:怎么分析性能测试结果?
软件测试面试题:怎么分析性能测试结果?
90 0
|
算法 测试技术 数据库
【基础理论-性能测试】性能测试必考知识点!
【基础理论-性能测试】性能测试必考知识点!