Loadrunner场景设计篇——负载生成器
1 简介
当执行一个场景时,Controller把场景中的每个用户配到负载生成器(Load generator)。
所谓的负载生成器(Load Generator)就是执行Vuser脚本,运行Vuser模拟真实用户操作的机器。
默认情况下使用本地的负载生成器来运行脚本,但是模拟用户行为也需要消耗一定的资源,所以在一台电脑上无法模拟大量的虚拟用户,这个时候调用多个Load Generators来完成大规模的性能负载。
2 运行模式设置
Load Generator的核心是MMDRV.EXE进程,MMDRV.EXE负责运行脚本模拟用户行为,该程序支持进程或线程的方式,通过Runtime Settings即可设置,如下,设置线程模式
大多数情况,使用进程方式时一个Vuser会占用接近3MB的内存,而使用线程方式时一个Vuser大概只占用了200KB的内存。为了保证负载生成有效性,请在真正实施性能测试前先测试一个负载器是否存在硬件瓶颈(生成负载时的CPU,内存,带宽占用情况等),确保负载器自身不会成为瓶颈,其CPU和内存的使用率最好不超过80%
3 添加负载生成器
点击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
3 为脚本选择负载生成器
如图,点击下拉三角,选择要添加的负载生成器
4 关于远程负载生成器
通过设置多个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回收。