性能测试和LoadRunner相关概念

来源:互联网 发布:美工常用72种字体打包 编辑:程序博客网 时间:2024/05/29 04:42

1、性能测试的基本概念

系统的性能是一个很大的概念,覆盖面很广,对一个软件系统而言,包括执行效率、资源占有、系统稳定性、安全性、兼容性、可靠性和可扩展性等。

性能测试是为描述测试对象与性能相关的特征并对其进行评价,而实施和执行的一类测试。通常大家把性能测试、负载测试、压力测试统称为性能测试。

负载测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定满足系统的性能指标情况下,系统所能承受的最大负载量的测试。简而言之,负载测试是通过逐步加压的方式来确定系统的处理能力、确定系统能够承受的各项阀值。也就是,通过逐步增加系统负载,确定在满足性能指标的情况下,系统所能承受的最大负载量。

压力测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并来获得系统能提供的最大服务级别的测试。压力测试是逐步增加负载,使系统某些资源达到饱和甚至失效。

配置测试:主要是通过对被测试系统的软硬件配置的测试,找到系统各项资源的最优分配原则。

并发测试:测试多个用户同时访问同一个应用、同一个模块或数据记录时是否存在死锁或其他性能问题。

容量测试:测试系统能够处理的最大会话能力。确定系统可处理同时在线的最大用户数,通常和数据库有关。

可靠性测试:通过给系统加载一定的业务压力(如CPU资源在70%~90%的使用率)的情况下,运行一段时间,检查系统是否稳定。因为运行时间较长,通常可以测试出系统是否有内存泄漏等问题。

失败测试:对于有冗余备份和负载均衡的系统,通过这样的测试来检验如果系统局部发生故障用户是否能够继续使用系统,用户能受到多大的影响。如几台机器做负载均衡,一台或几台机器垮掉后系统能够承受的压力。

2、性能测试工具的引入

目前市场上有很多性能测试工具,如商业的工具主要有LoadRunnerWebLoadRational Performance TestRPT)等,免费的工具主要包括JmeterMicrosoft Web Application Stree ToolOpenSTA等。在这些工具中,LoadRunner具有界面友好、方便易用、支持协议众多、功能强大等优势。

LoadRunner主要由VuGenControllerAnalysis三部分构成。

Vuser脚本生成器(也称为VuGen)是LoadRunner用于开发Vuser脚本的主要工具。VuGen不仅能够录制Vuser脚本,还可以运行这些脚本。录制Vuser脚本时,VuGen会生成各种函数来定义在录制会话过程中执行的操作。VuGen将这些函数插入VuGen编辑器中,以创建基础Vuser脚本。

LoadRunner通过Controller模拟一个多用户并行工作的环境来对应应用程序进行负载测试。在Controller中有手工和基于目标两种方法来设计场景,可以通过设置场景来模拟用户的行为,同时在场景的运行过程中,LoadRunner会自动收集应用服务器软件和硬件相关数据,并将这些数据存放到一个小型的数据库文件中,准确地度量、监控并分析数据是否达到预期目标。

LoadRunnerAnalysis提供了丰富的图表帮助我们从各个角度对数据进行有效的分析,同时可以将多个图表进行合并来分析,比如,虚拟用户—平均响应时间图表,通过该图表可以分析当虚拟用户增加系统的响应时间是否会有影响。同时,也可以通过Analysis比较两次运行的结果之间的差异,从而很方便地进行系统调优工作,还可以将测试结果输出成为规范的wordhtml格式的报告。

【重要提示】VuGen仅能录制Windows平台上的会话。但是,录制的Vuser脚本既能在Windows平台上运行,也可以在UNIX平台上运行。

3、LoadRunner相关概念

集合点:集合点可以同步虚拟用户以便恰好在同一时刻执行任务。集合点的添加有手工或菜单两种方式。在VuGen中添加集合点,在Controller中设置集合点的各项信息。这里主要讲解集合点的设计策略,在“策略”部分,有三个选项,①当虚拟用户中的X%到达集合点时释放,即:仅当指定百分比的虚拟用户到达集合点时才释放虚拟用户;②当所有正在运行的虚拟用户中的X%到达集合点时释放:仅当场景中指定百分比的正在运行的虚拟用户到达集合点时,才释放虚拟用户;③当X个虚拟用户到达集合点时释放:仅当指定数量的虚拟用户到达集合点时,才释放虚拟用户。

“虚拟用户之间的超时值”框中输入一个超时值。每个虚拟用户到达集合点之后,LoadRunner都会等待下一个虚拟用户到达,等待的最长时间就是设置的超时间隔。如果下一个虚拟用户没能在超时间隔内到达,Controller就会从集合中释放所有的虚拟用户。每当有新的虚拟用户到达时,计时器就会重置为零。默认超时间隔是30秒。

事务:事务是指用户在客户端做一种或多种业务所需要的操作集,通过事务函数可以标记完成该业务所需要的操作内容;另一方面可以用来统计用户操作的相应时间。事务响应时间是指通过记录用户请求的开始时间和服务器返回内容到客户时间的差值来计算用户操作响应时间的。

插入一个事务有两种方式来实现,一种是手工方式,另外一种是利用菜单项或工具条进行事务的添加。

【重要提示】事务必须是成对出现,即:一个事务有事务开始,必然要求也有事务结束。

事务结束函数共包括两个参数,第一个参数是事务的名称,第二个是事物的状态,LR_PASS”说明事务成功,“LR_FAIL”说明事务失败,“LR_STOP”说明事务停止,“LR_AUTO”说明事务的状态由系统自动根据默认规则来判断,结果为PASS/FAIL。在应用事务的过程中,不要将思考时间(lr_think_time函数)放在事务开始和事务结束之间,否则会影响对事务正确的执行时间的分析与统计。

检查点:检查点是在回放脚本期间搜索特定的文本字符串或者图片等内容,从而验证服务器响应时间内容的正确性。之所以设置检查点是因为HTTP协议是无状态的,即当客户端向服务器发出请求后,服务器只要响应了客户端的请求,那么它就认为它是正确的。

插入检查点有两种方式,一种是手工方式,另外一种是利用菜单或者工具条进行检查点的添加。

【重要提示】检查点设置完成之后,要保证【Run-time Setting】—【Preferences】—【Enable Image and text check】复选框被选中,否则检查点不会生效。web_reg_find是注册函数,注册类函数有一个明显的特征就是在函数名称中包含了“reg”字符,这类函数必须放置在响应页面(web_submit_form)之前。

web_reg_find:从下一个回应的HTML页面中查找指定的文本字符串

web_find:从HTML页面中查找指定的文本字符串

web_image_check:从HTML页面中查找指定的图片

web_global_verification:从所有后续HTTP交互中查找指定的文本字符串

思考时间:用户在执行两个连续操作期间等待的时间称为思考时间。LoadRunner在录制脚本中,虚拟用户产生器(VuGen)将录制实际的停留等待时间并将相应的等待时间插入到脚本,脚本中的lr_think_time()函数即为思考时间。

 

原创粉丝点击