首页 > 代码库 > LoadRunner 12 Controller

LoadRunner 12 Controller

1、Controller的引入

1)需要Controller的原因?需要多个用户来模拟并发的时候。

2)一种强大的、成熟的工具的体现。

2、 Controller的启动方式

1)LoadRunner Launcher - Run Load Tests

技术分享

2)在开始菜单中

技术分享

 

3)在VuGen中

技术分享

技术分享

一般controller放一台机器,负载生成器放另外一台机器。因为controller负责协调和收集负载生成器的信息。如果再用它去做负载,可能收集到的数据会不准。

百分比模式:

技术分享

多个脚本运行时,不需要给每个脚本指定多少个用户。会以百分比的形式自动分配。

技术分享

非百分比模式

技术分享

 

 

 

 

 

 

技术分享

场景模式:对所有组进行统一设置。

组模式:对每个组进行单独设置:选中哪一个组,就可以对那个组进行单独的设置。

技术分享

技术分享

运行模式

实际计划:有时候网站访问量白天多,晚上少,这种模式可以模拟高峰低谷。一般长时间做稳定性测试用这个。一般情况还是用基本计划。

技术分享

基本计划:

技术分享

一般压测设置:

技术分享

 技术分享

Controller中的运行时设置

1)与VuGen中的不同,各自有各自的,不要认为是同一个

2)Think time默认设置的不同

3)系统日志,真正运行的时候就设置成仅仅当错误时才发送,提高效率。

4)事务的设置

5)带宽的设置

但是controller里面的设置,是controller里面的,vuser是vuser里面的。需要分开设置。

可以每个group单独设置,也可以选中多个group一起设置。

注意这几个地方

技术分享

技术分享

技术分享

技术分享

 关于迭代

如果持续时间大于脚本迭代时间,action在持续的时间内一直迭代。

技术分享

 

技术分享

在运行的时候,关注哪些数据,可以直接从左边拖到右边来。不关注的数据,也可以右键删除。

技术分享

也可以右键进行配置。

技术分享

运行过程中,可以增加用户。

技术分享

运行中,各个状态

技术分享

技术分享

init:正在执行vuser_init

stoped:

技术分享

负载生成器3

lr可以将负载生成器装到负载机中。

技术分享技术分享

启动agent服务LoadRunner Agent Server 对应进程 magentservice.exe 我本机没找到

负载生成器的使用要保证负载生成器自己不要成为瓶颈。

mmdrv解析

真正运行时,是mmdrv这个进程在跑。

以线程的方式运行。50个线程用1个mmdrv。也就是说如果有101个线程,会启动3个mmdrv。会共享内存,可能会遇到一些错误。

技术分享

 

 

以进程的方式运行。虚拟用户数和mmdrv是一一对应的。有多少个虚拟用户数,就有多少个mmdrv进程。对于代码来说,这种方式更安全,但是更浪费资源。

IP Spoofer和集合点

IP欺骗(IP Spoofer)

1) 为什么需要IP Spoofer?因为不管用多少个用户,用了都是同一个ip。对于有些网站,对请求频繁的ip,可能会做一些处理。比如屏蔽。这个时候,就需要使用多个ip。模拟真实的场景。

2) 如何使用IP Spoofer?

技术分享
Action()
{
    char *ip;
    ip=lr_get_vuser_ip(); //只有controller里面发挥作用。
    if (ip) {
        lr_output_message("ip地址为:%s",ip);
    }
    else 
    {
        lr_output_message("IP欺骗关闭");
    }
    return 0;
}
View Code

设置2个用户跑一次。查看log。产生2个日志。说明1个用户生成1个日志

技术分享

技术分享

输出:Action.c(10): IP欺骗关闭 [MsgId: MMSG-17999]

打开ip欺骗。

技术分享

继续运行 输出:Action.c(6): ip地址为:192.168.188.216 [MsgId: MMSG-17999]。 2个log只有1个IP

设置IP

技术分享

不能选自动获得IP,然后点击高级添加IP地址。无线需要断开连接,在重新连接wifi。

技术分享

可以看到这个时候有3个IP地址。

再次运行脚本。查看log

Action.c(6): ip地址为:192.168.28.104 [MsgId: MMSG-17999]

Action.c(6): ip地址为:192.168.28.105 [MsgId: MMSG-17999]

可以看出,2个虚拟用户用了不同的IP地址。

lr提供了工具用于快速生成IP

技术分享

11、Controller中的集合点

 脚本如下

技术分享
Action()
{
    lr_think_time(3);
    lr_rendezvous("jgd");
    lr_think_time(4);
    return 0;
} 
View Code

controller检查到脚本中有集合点函数。可以在这里进行设置。

技术分享

技术分享

技术分享

技术分享当rendez为设置的虚拟用户数时,同时执行。

 自定义数据采集、lr_user_data_point解析

用这个函数,记录自己的数据,进行分析。用这个函数记录样本名和值。样本次数自动统计。可以去拿自己想要的数据。并在controller里进行分析。

技术分享
Action()
{
    int i;
    for (i=0;i<100;i++) {
        lr_user_data_point("cpu",i);
        lr_think_time(0.5);
    }
    return 0;
}
View Code

2个用户跑。

技术分享

 

LoadRunner 12 Controller