`

LoadRunner如何在大负载下测试

阅读更多
在大负载中使用LoadRunner进行负载测试,需要配置一些环境来满足大负载下各种资源的充足:

1.为了避免出现“No Buffer Space Available”的错误,需要进行如下配置:

   1)修改注册表:

      * 设置“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Par
ameters\TcpTimedWaitDelay”为 30
      * 设置“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Par
ameters\MaxUserPort”为 65534
      * 在“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session
Manager\Sub Systems\Windows”设置SharedSection 为 4096

    2)通过在每个脚本的开头添加如下函数来设置“SHUTDOWN”模式为"ABRUPT"

     web_set_sockets_option(“SHUTDOWN_MODE”,”ABRUPT”)

2.关闭所有的杀毒,反间谍扫描软件等。同时也关闭任务扫描和所有不需要的服务。

3.脚本运行时设置:

   1)设置日志为“只在错误发生时发送信息”

   2)去掉错误时产生snapshot的选项

   3)在miscellaneous上,去掉 定义每一步为一个事务 的选项

   4)不选择 模拟浏览器缓存,选上“simulate new user on each iteration”和它的子选项

4.如果下载的页没有资源,在web_url函数中添加“Mode=HTTP”,这样会减少LG上的负载(不用转换成HTML)。默认情况下,web_url的Mode为Mode=HTML

5.重启LG并且确保他们都能跟Controller连接.

6.确保LG和控制器上有足够的剩余磁盘空间.

7.在controller中去掉web page breakdown

8.限制Vuser在所有LG上同时进行初始化的数目.可以在Controller的Tools > Options > Run-Time Settings中进行修改.每个LG都有这个设置.

9.限制controller在运行时存储的错误数.通过修改wlrun.ini中的[output]项来实现:

  • FlagLimitOutputMessages=1
  • MaxNumberOfOutputMessages=<errors count> (default is 10,000)

10.在Controller上修改Monitor的采样率来降低CPU的使用.可以在Controlller的Tools > Options > Monitors 下修改,如下图所示:



11. 如果有很多错误产生,最好不要经常打开Error/Output窗口,因为这样会因为访问数据库而打开另外的数据库连接.

12.负载测试中不要使用"Show Vuser"选项.

13.把输出信息重定向到一个文本文件中来代替输出到mdb文件中.可以在wlrun7.ini中修改[output]下的

ExportMessageToFile=1来实现.

14.不要在Controller机器上运行虚拟用户.

15.在场景中设置监视器:

  * 内存使用上 mmdrv进程的private bytes

  * disk使用

  * CPU使用

  * 网络使用

16.把脚本中所与打印信息的脚本去掉.如下面的代码每次迭代都会调用一次,对大量并发用户的运行产生负面的影响.

lr_vuser_status_message("pIteration: %s -
START Action", lr_eval_string("{pIteration}"));
lr_output_message("pIteration: %s - START Action", lr_eval_string("{pIteration}"));

Controller处理所有虚拟用户的信息,这样会大大降低Controller的性能. 如下是类似的代码:

web_reg_find("Text=Time on Server", "SaveCount=cErr", ..);
web_url( some url …);
if (atoi(lr_eval_string("{cErr}"))>0) {
lr_error_message(some message);
lr_end_transaction("S05_T01_Request_Content_Page", LR_FAIL);
}

  通常认为在脚本中插入lr_error_message是不好的,除非是调用的客户化的API失败了才有必要插入该语句.如果是LoadRunner的函数调用失败(如上面的web_url调用),它会自动发送一个错误消息.

  在大量用户运行的情况下,控制Controller和LG之间的通信流量是非常重要的.发送多余的信息(错误,输出等信息)会增大通信流量降低负载能力.所以,通常都需要把代码中不必要的信息去掉.

17.去掉脚本中所有的sleep()的调用,用lr_think_time()来代替.lr_think_time给LR让出控制,即LR能够在Vuser休眠的时候去做其他有用的事情.

18.不要去掉lr_think_time:使用该函数能更准确的模拟负载,对LG产生相对小的压力

19.web_reg_save_param和web_reg_find()函数:

   • 在 web_reg_save_param() 中添加“Notfound=empty” 参数.
   • 在 web_reg_find() 添加 "Savecount=some_parameter_name". 如果你想知道它是否成功可以使用atoi(lr_eval_string("{some_paramater_name }"))来衡量.

20.其他

  可能会出现的问题:

   * 测试产生了太多的错误:

     错误引擎不能处理多于1.5GB的错误

     如果测试过程中每秒产生多与1000个错误,Controller的行为将不可预测

   * 测试产生了大量的在线数据

上面的两个问题都可以使用如下的方法解决:

   例如: 场景是一个组有1000个虚拟用户

   可以把这个组分成两个组:

   G1 100 Vusers
   G2 900 Vusers

   这两个组可以跟原始的组产生一样的负载,对于G2在组命令行中添加如下参数:

   -disable_data -disable_messages

    _disable_data : 让这个组不发送任信息,不发送任何online信息,不写任何offline信息.

    _disable_message: 让这个组不给Controller发送任何信息(错误,日志)

注意:使用上面的命令行选项会使该LG不给congtroller发送online和offline信息.这样这个组上的虚拟用户的分析数据就收集不到了.

21.如果需要远程访问,Mercury仅支持PC anywhere.

翻译自<LoadRunner Large Load Test Considerations>

分享到:
评论

相关推荐

    loadrunner负载测试实例(含步骤)

    总的来说,LoadRunner负载测试实例是一个涉及需求理解、脚本制作、场景设计、执行、监控、分析和优化的完整流程。通过熟练掌握这些步骤,测试人员可以有效地评估系统的性能和稳定性,为软件的持续改进提供有力支持。

    Loadrunner负载测试 浏览器缓存设置

    在这个特定的场景下,我们关注的是“Loadrunner负载测试中的浏览器缓存设置”。了解如何在LoadRunner中正确设置浏览器缓存对于获取真实用户行为的数据至关重要,因为这直接影响到测试结果的准确性。 浏览器缓存是...

    loadrunner负载测试实例(含步骤).doc

    【LoadRunner负载测试实例详解】 负载测试是一种评估应用程序在高负载条件下的性能和稳定性的测试方法。LoadRunner是一款由Micro Focus公司开发的自动化性能测试工具,它能够模拟多个虚拟用户同时对系统施加压力,...

    (原创)loadrunner负载测试实例(含步骤)

    【LoadRunner负载测试实例详解】 LoadRunner是一款强大的性能测试工具,尤其在软件性能评估和压力测试方面具有广泛的应用。在本文中,我们将深入探讨如何利用LoadRunner进行负载测试,包括设置虚拟用户、创建测试...

    LoadRunner负载测试之性能分析

    讲解了LoadRunner负载测试下的一些概念和性能分析

    LoadRunner测试实验报告.docx

    LoadRunner是一款强大的自动化性能测试工具,它被广泛用于评估和优化软件系统在高负载下的表现。本实验报告将深入探讨如何使用LoadRunner进行性能测试,包括实验的目的、内容、要求,以及LoadRunner的基本操作流程。...

    Loadrunner连接负载机失败

    在使用Loadrunner进行性能测试时,用户可能会遇到“Loadrunner连接负载机失败”的情况,具体表现为:尝试连接负载机时出现错误提示“Failed to connect to load generator. Check the output window for more ...

    Loadrunner 11 负载生成及监控

    在《史上最全:LoadRunner_11负载生成及监控Controller.docx》这份文档中,预计会详细讲解如何使用 LoadRunner 11 的各个组件进行负载测试,包括设置测试场景、监控系统性能、分析测试结果等步骤,是学习和掌握 ...

    Loadrunner Webservice压力测试

    LoadRunner由Micro Focus公司开发,它通过模拟大量用户并发执行业务流程,来测试系统在高负载下的性能和稳定性。在Webservice场景下,LoadRunner能够模拟调用HTTP/HTTPS协议的Web服务,评估其处理能力和服务质量。 ...

    负载测试工具LoadRunner教程

    【负载测试工具LoadRunner教程】 LoadRunner是一款由Micro Focus公司开发的业界领先的性能测试工具,广泛应用于企业级软件系统的性能评估。它通过模拟大量并发用户,来检测系统在高负载下的性能表现,找出可能的...

    LoadRunner压力测试实例

    LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具,通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。 LoadRunner 能够对整个企业架构进行测试,使企业能最大限度地缩短测试时间...

    loadrunner性能测试学习总结

    LoadRunner 的主要功能包括虚拟用户生成、负载测试、事务测试、结果分析等。 为什么要实现性能测试自动化? 性能测试可以让用户了解应用程序的性能瓶颈,能够回答以下问题: * 应用程序对目标用户的响应是否足够...

    软件测试 loadrunner 视频教程

    1. **负载测试**:模拟大量用户同时访问系统,评估系统在高负载下的稳定性和性能。 2. **压力测试**:通过不断增加负载,找出系统崩溃或性能显著下降的临界点。 3. **耐久性测试**:长时间运行测试,检查系统长时间...

    Linux安装loadrunner负载机,loadrunner分布式压测部署、必须rpm包及安装步骤.zip

    在IT行业中,性能测试是确保系统稳定性和可扩展性的...以上内容详细介绍了在Linux环境下安装和配置LoadRunner负载生成器,以及进行分布式压力测试的步骤。理解并掌握这些知识,对于提升系统性能测试的能力至关重要。

    LoadRunner(负载测试工具)入门培训教程.pdf

    LoadRunner通过模拟大规模并发用户,帮助测试团队预测系统在实际使用中的性能,提前发现和解决可能的问题,以保证软件在高负载下稳定运行,满足用户需求,并为企业节省昂贵的硬件升级成本。 【学习LoadRunner的益处...

    loadrunner性能测试介绍

    LoadRunner可以针对多种不同的系统架构实施负载测试,并通过该过程预测系统行为,从而优化系统性能,缩短测试周期,加速应用系统的发布。 LoadRunner的特点涵盖了广泛支持业界标准协议、支持多平台开发的脚本、能...

    软件测试实验报告(使用LoadRunner进行性能测试实验)

    性能测试是软件测试中的一种重要类型,以评估软件系统在高并发和大负载下的性能和可扩展性。LoadRunner是一款成熟的性能测试工具,广泛应用于各种软件系统的性能测试中。 二、性能测试的基准 性能测试的基准有多...

Global site tag (gtag.js) - Google Analytics