性能测试笔记系列之三:性能测试工具工作原理

实际工作中大家用的最多的性能测试工具可能是Loadrunner了,虽说每个工具都有自己特有的架构,但是一般来说性能测试测试工具总包括以下组件:

虚拟用户脚本产生器(Virtual User Generator,即上面的VuGen)

压力产生器(Player)

用户代理(Agent)

压力调度和监控系统(Conductor)

压力结果分析工具(Analysis)

总体来说用性能测试工具完成一个完整的测试过程包括:创建脚本VuGen—>设计场景-à运行场景à分析场景。

下面详细介绍服务器性能测试工具各组件:

VuGen:虚拟脚本生成器通过Proxy方式实现,就是由Proxy作为客户端和服务器端之间的中间人,即接收从客户端发送的数据包,记录并转发给服务器,然后接收服务器返回的数据流,记录并返回给客户端,通过这种方式截获并记录服务器和客户端之间的数据流,进而生成脚本,这个一般就是我们的录制过程。

压力产生器:用于根据脚本内容产生实际的负载,如实际性能测试中我们需要产生1000个VU,则设置参数后压力产生器会在调度下生成1000个进程或线程,每个线程或进程都对指定的脚本进行解释执行。

用户代理:用户代理是用于解决多机器执行协作产生压力时步调一致。

压力调度和监控系统:先介绍下压力调度,这个和上面介绍的压力产生器、用户代理是在我们根据用户测试要求进行设置的一些参数或者环境部署。而监控系统主要是执行场景时用于监控数据库,应用服务器和其它的一个组件。

压力结果分析工具:提供多种不同的数据揭示和呈现格式,辅助我们分析性能测试结果。

以上主要介绍服务器性能测试工具的架构以及简要的工作原理,性能测试工具的主要作用是通过模拟生产环境中的真实业务操作,对被测试系统实行压力负载测试,监视被测试系统在不同业务、不同压力下的性能表现,找出潜在的性能瓶颈进行分析、优化。个人感觉使用一个工具前先了解工具的架构,在随后的学习中用架构指导学习,可能更容易理解各功能。

Web前端性能测试工具:

系列二讲过web前端性能的测试多关注的是响应时间,我们知道网站响应时间有个2/5/8原则(这里不细讲了),Compuware公司分析了超过150个网站和150万个浏览页面,发现页面响应时间从2秒增加到10秒,会导致38%的页面浏览放弃率,可见前端性能测试的重要性(当然上面的响应时间也包括后端服务器时间)。先来看看前端响应时间包括哪些?浏览器页面加载时间包括对HTML的解析,对页面上图片,CSS等文件的获取和加载,客户端脚本的执行以及页面展现所花费的时间,而我们的测试对象是HTML、CSS、JS、AJAX等前端技术开发的Web页面。我们进行web前端性能测试的目的就是计算出包含页面渲染、网络传输以及服务器端解析等综合因素在内的加载时间等指标,对该页面性能进行评估分析,找出影响性能的主要因素和瓶颈,并在此结果的基础上,给出一定的优化建议和解决方案,从而提升用户体验。

上面简要的介绍了前端性能测试的目的、关注点。下面来介绍前端性能测试工具工作原理:前端性能测试多与浏览器紧密集成,通常以浏览器插件(Firebug)、浏览器钩子(如Httpwatch)或浏览器的一部分(如谷歌浏览器自带的开发者工具)等方式存在。一般这些工具会记录我们进行web操作时发送的Http请求,每个请求的响应时间以及请求发出的先后顺序等信息。实际项目中只用过Httpwatch和DynaTrace工具,关于这些工具以及前端性能测试指标的介绍网上资料很多,也由于自己的能力有限,这里就不介绍了。

这篇大概讲解了性能测试工具的工作原理,可能讲解的不是太细(能力有限,呵呵),后续可能随着自己理解的加深和深入学习会慢慢的补充进来,完善自己的性能测试知识体系。