zoukankan      html  css  js  c++  java
  • LoadRunner 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个用户跑。

  • 相关阅读:
    Chrome调试工具常用功能
    把读取sql的结果写入到excel文件
    Android逆向破解:Android Killer使用
    鸭子类型和猴子补丁
    Scrapy同时启动多个爬虫
    命令注入
    理解RESTful架构
    程序员需要谨记的九大安全编码规则
    10条建议分享:帮助你成为与硅谷工程师一样优秀的程序员
    代码审计:是安全专家都应该掌握的技能
  • 原文地址:https://www.cnblogs.com/milanmi/p/7089329.html
Copyright © 2011-2022 走看看