性能测试从零开始——LoadRunner入门(六)[4] 性能测试工具
1.3.2 Analysis(分析)
本步骤的开始时间:需求分析阶段和性能测试启动阶段
本步骤的输入:性能需求
1.分析性能需求
在这里,要定义性能测试的内容,细化性能需求。
客户、需求分析人员和测试工程师一起起草一个性能需求标准,对此标准获得一致认同。此标准将用户的需求细化、量化,并能在测试中作为判断依据。
比如,对于负载测试来说,可以从以下角度来细化需求,逐步找出测试关键点。
测试的对象是什么,例如“被测系统中有负载压力需求的功能点包括哪些?”;“测试中需要模拟哪些部门用户产生的负载压力?”等问题。
系统配置如何,例如“预计有多少用户并发访问?”;“用户客户端的配置如何?”;“使用什么样的数据库”;“服务器怎样和客户端通信?”。
应用系统的使用模式是什么,例如“使用在什么时间达到高峰期?”;“用户使用该系统是采用B/S运行模式吗?”;“网络设备的吞吐能力如何,每个环节承受多少并发用户?”等问题。
最后得出的性能测试指标标准至少要包含测试环境、业务规则、期望响应时间等。 软件测试
2.分析系统架构
对硬件和软件组件、系统配置以及典型的使用模型有一个透彻的了解。结合性能测试指标标准,生成性能测试用例。(可参看第10章“进阶LoadRunner高手”的用例设计部分。)
1.3.3 Metrics(度量)
本步骤的开始时间:性能测试设计阶段
本步骤的输入:细化的性能指标和性能测试案例
本步骤的输出:和工具相关的场景度量、交易度量、监控器度量和虚拟用户度量等
度量是非常重要的一步,它把性能测试本身量化。这个量化的过程因测试工具的不同而异。
(1)场景的定义,pass/fail的标准
测试场景包含了性能测试的宏观信息,有测试环境、运行规则和监控数据等。具体可表现为历史数据记录数、虚拟用户数、虚拟用户加载方式、监控指标等。
(2)事务(Transaction)的定义,pass/fail的标准
事务用来度量服务器的处理能力。事务定义应该从性能指标标准而来,是性能指标的具体体现。事务的定义是很重要的,不同的定义会导致不同的TPS结果。
提示:使用性能测试工具执行性能测试之后,我们能看到的是pass/fail的用户数、pass/fail的事务数。而这些pass/fail的标准应该在执行性能测试之前就应该被定义好。比如,LoadRunner默认的pass/fail标准是基于协议层的,而我们要的pass/fail可能是业务级的,需要在业务层上进行判断来决定是pass还是fail。另外,还可能由于案例的关联性引起的pass/fail,如果两个案例之间有关联,A脚本负责向数据库插入数据,B脚本负责查询数据,A要是fail了,导致B也会fail,虽然B本身不一定有错。解决这个问题,一方面可以削弱脚本之间的关联性,另一方面也可以通过增强脚本的健壮性来达到。
(3)虚拟用户pass/fail的标准
虚拟用户是性能测试工具中的一个普遍的概念,虚拟用户负责执行性能测试脚本,在这里应该定义虚拟用户遇到何种情况,选择fail或pass,即退出或通过。