场景设计
-负载生成器管理

by:授客
QQ1033553122


简介

当执行一个场景时,Controller把场景中的每个用户配到负载生成器(Load
generator)。

所谓的负载生成器(Load
Generator)就是执行Vuser脚本,运行Vuser模拟真实用户操作的机器。

默认情况下使用本地的负载生成器来运行脚本,但是模拟用户行为也需要消耗一定的资源,所以在一台电脑上无法模拟大量的虚拟用户,这个时候调用多个Load
Generators来完成大规模的性能负载。


运行模式设置

Load
Generator的核心是MMDRV.EXE进程,MMDRV.EXE负责运行脚本模拟用户行为,该程序支持进程或线程的方式,通过Runtime
Settings即可设置,如下,设置线程模式

大多数情况,使用进程方式时一个Vuser会占用接近3MB的内存,而使用线程方式时一个Vuser大概只占用了200KB的内存。为了保证负载生成有效性,请在真正实施性能测试前先测试一个负载器是否存在硬件瓶颈(生成负载时的CPU,内存,带宽占用情况等),确保负载器自身不会成为瓶颈,其CPU和内存的使用率最好不超过80%


添加负载生成器

点击Load
Generator
按钮(或者Scenario->Load
generators),

在打开的Load
Generators对话框中点击Add并输入你要添加的负载生成器的详细信息

或者如下

点击添加Add

注意:

1.这里的名称可以是ip(本地、远程),也可以计算机名、localhost(本机)

2.如果Temporary
directory目录为空,那么运行时, LoadRunner存储临时文件在负载生成器上,由负载生成器变量TEMP、TMP变量指定的临时目录.

3.要勾选Enable
load generator to take part in the scenario,启用负载生成器,否则应该下面的管理器中Enable选择定的生成器,反过来,如果某个开启的负载生成器对于某个特定场景不可用,可临时禁用负载生成器,而不必要把它从列表移除。

点击More

添加后

点击Connect

添加该引擎后,可以单击Connect按钮,链接负载生成器,如果出现Ready则说明正确连接,该负载生成服务器可以使用,否则就需要检验下错误出在哪里。

说明:

Windows下,如果排除了防火墙的问题后,Load
Generator无法链接一般是由于Load
Generator的权限配置错误导致,具体解决方法如下:

1)  HP->LoadRunner->LoadRunner
Agent Runtime Setting……

说明:

Allow virtual users to run on this machine without user
login

处输入登陆信息,这样可以让远程的Controller无须登陆就直接连接到这个Load
Generator,这里需要输入本地电脑的账号,这样可以解决无法远程访问负载引擎的错误。

这里的Domain也就是计算机全名

2) 
输入域,帐号,密码,点击OK


为脚本选择负载生成器

如图,点击下拉三角,选择要添加的负载生成器


关于远程负载生成器

通过设置多个Load
Generator可以有效的增加负载量,解决单台电脑无法模拟大量负载的问题。

 

负载均衡

负载均衡最终通过用户在被请求负载生成器之间分发负载,来保证一个准确的负载测试。

当某个load
generator的CPU超负荷使用,Controller停止在超负荷的load生成器上加载虚拟用户,并自动在其它参与了场景的生成器中分发虚拟用户,如果没有其它负载生成器,那么Controller会停止加载虚拟用户。

Laod
Generators管理对话框中的图标变化表明了CPU的使用状态:

当负载生成器的CPU使用变得有问题时,负载生成器左边图标包含一个黄色条;当超负载时,图标包含一个红色条;绿色说明负载生成器有空余的资源。

注:据说负载平衡仅在手工场景的百分比模式和以目标为导向的场景中可用。??有待验证

1. 
安装负载生成器

要使用远程负载生成器,必须在远程负载机器上安装负载生成器,windows下,下载.iso文件,加载,点击setup,选择组件LoadGenerator安装

2. 
开启远程负载生成器的LoadRunner
Agent服务

Start > Programs > LoadRunner > LoadRunner Agent
Process

说明:

当场景开始运行时,Controller会将脚本传到各个负载生成器上,等运行结束后,各个负载生成器的日志会被Controller回收。

最新文章

  1. Chrome-Console( Command Line API Reference)
  2. android——判断网络状态
  3. js 默认行为取消
  4. C 几种异常机制简单讲述
  5. Simple Factory 简单工厂模式(静态工厂)
  6. centos防火墙端口配置
  7. Cent OS 修改网卡配置
  8. ACM比赛(11462 Age Sort)
  9. 基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)介绍(二)
  10. 详解Vue 非父子组件通信方法(非Vuex)
  11. C++ 入门[1]
  12. input 呼起数字键盘
  13. javascript(作业九)
  14. CSS三:CSS的三种引入方式
  15. windows批处理定时关机
  16. Qt解析Json数据
  17. ldconfig命令与ldd命令
  18. dede列表页调用
  19. 【Supervised Learning】 集成学习Ensemble Learning & Boosting 算法(python实现)
  20. 【Linux】time+dd测试硬盘读写速度

热门文章

  1. [CocoaPods]pod安装与pod更新
  2. lombok的介绍及使用
  3. LeetCode--No.015 3Sum
  4. [视频]K8飞刀无代码编程之生成EXP
  5. 【sping揭秘】17、@Around,@Introduction
  6. .net core通过发布nuget实现引用项目
  7. spring cloud+.net core搭建微服务架构:Api授权认证(六)
  8. git 简单命令总结
  9. 【详解】WebSocket相关知识整理
  10. 程序员进阶之算法练习:LeetCode专场