如何学习性能测试?LoadRunner小技巧集锦

LoadRunner是一款非常主流、常用的性能测试工具。我们在使用它进行测试的过程中经常会遇到一些错误,这些错误可能是由于设置不当引起,也有可能是选项设置引起,更有可能是测试执行中的一些细节没有注意而引起的,在此做一个性能测试系列总结。

一、性能指标

在做性能测试之前,简单说下性能指标:

响应时间

针对页面操作,响应时间小于2秒,用户会感觉系统较快较满意;响应时间在2~5秒,用户可以接受,但对速度有些不满;响应时间超过5秒,用户将无法接受。

作为优秀的项目当然越快越好,我们在做压测的时候,一般希望响应时间在1秒以内, 针对系统内部调用的接口响应时间更要快,具体情况视具体接口而定。

吞吐量

通常需要结合业务部门的市场目标而定。

服务器资源占用

CPU占用率、内存使用率不能过高;Cache命中率不能过低。

二、性能测试流程

制定性能测试目标-->选择性能测试工具-->设计性能测试-->执行性能测试脚本-->监控分析系统-->性能调优

1、目标:

如,系统需满足500个用户在线、20个用户并发操作发帖的情况下,发帖响应时间不超过2秒,系统资源使用率不超过30%。

2、选择性能测试工具:

可选择LR、Locust、jmeter等主流测试工具,下面主要介绍LR相关。

3、性能测试准备:

测试脚本开发、负载的生成规则及监控方式、测试环境的搭建。

性能测试准备过程中需要注意的点:

确认压测前SQL Review已通过;

确认压测环境已成功搭建,压测服务器上单独部署一套程序代码;

明确域名及需要绑定的host;

搞清楚需要压测的业务及场景(也可以理解为测试用例);

清楚输入参数及服务端返回信息;

明确需要参数化的输入值,明确“请求成功的服务端返回码”;

4、负载过程、负载后对数据进行分析,这个分析需要众多专家共同协作,找出数据背后的问题,确定性能瓶颈。

5、确定瓶颈后,进行软硬件调优,调优完成重复之前的步骤。

三、Loadunner主要特色

1、非常优秀的性能测试工具

2、很容易使用

3、压力测试表现出色,容易找到性能瓶颈(诸如检测:线程异常、内存异常、连接池异常、对象泄漏、数据库及应用系统的性能表现);

几个亮点:

1. 事务:用于事务计时;

2. 集合点:在并发用户发出请求前设置集合点,待并发用户都到达集合点后再发出并发请求。

3. IP欺骗:模拟不同的IP地址向应用系统发出业务请求;

4. 参数化:把脚本数据参数化后,变成千万个不同请求数据的脚本,确保唯一性;

5. 多场景类型:同一个脚本,可以设置不同的场景类型向应用系统发出业务请求;

6. 多机:多机联合产生负载,确保客户端自身稳定性;

7. 监控:支持对服务器资源监视;

8. 性能分析:图、表分析测试结果,非常直观

四、LoadRunner常见问题

1、LR脚本为空的解决办法

去掉ie设置中的第三方支持取消掉

在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen.exe文件。

遇到flight界面为空的解决的可能方法:

如果安装了IE以外的浏览器,并且IE不是默认浏览器,则无法生成录制脚本

如果录制脚本时IE不能 打开,则需要将浏览器的IE工具高级选项中,将“启用第三方浏览器扩展”的勾选去掉

lr自带的webtours系统,如果点击Flights选项,出现空白页面,请检查本机oracle的PERL5LIB环境变量,我的解决办法是使用webtours的时候删除掉该变量的内容,使用oracle的时候再填上该变量内容为什么该变量会影响webtours的使用,原因不明。

2、LoadRunner录制脚本时为什么不弹出IE浏览器?

当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。

启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题

提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。因此建议运行LoadRunner得主机上保持一个干净的测试环境。

3、HTML-based script与URL-based script的脚本有什么区别?

使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用 “URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。

通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服 务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使 用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。

4、运行时的Pacing设置主要影响什么?

Pacing主要用来设置重复迭代脚本的间隔时间。共有三种方法:上次迭代结束后立刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执行新的迭代。

根据实际需要设置迭代即可。通常,没有时间间隔会产生更大的压力。

5、运行时设置Log标签中,如果没有勾选“Enable logging”,则手工消息可以发送吗?

Enable logging选项仅影响自动日志记录和通过lr_log_message发送的消息。即使没有勾选,虚拟用户脚本中如果使用lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。

6、LoadRunner回放脚本时,在浏览器显示的中文是乱码

解决办法(1):

首先设置Run-Time Settings – Browser –Browser Emulation – User-Agent

然后设置IE:

查看-编码-钩上“自动选择”和Unicode(UTF-8)。

解决办法(2):

使用lr_convert_string_encoding函数来转换编码。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181207A13QT400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券