• 【转载】lr运行时设置,每个action 比例


    提供了再脚本运行时所需要的相关选项。

    性能测试的关键之一:能否通过脚本来完全模拟用户的行为,可以通过运行设置让脚本运行的更人性化。

    1. Run Logic

    脚本如何运行,每个action与action之间运行的先后顺序就在这里设置。

    1) lr_output_message()函数的介绍?

    与C中的printf类似,作用是将内容输出到Replay Log中(需要考虑输出的内容格式)

    A. 输出整数型的内容,应该这样写:

    [plain] view plaincopy
     
     
     
    1. int x;  
    2.   
    3. x=10;  
    4.   
    5. lr_output_message("%d",x);  

    B. 输出字符串

    [plain] view plaincopy
     
     
     
    1. Char *x;  
    2.   
    3. x="welcome to 51testing";  
    4.   
    5. lr_output_message("%s",x);  

    运行脚本后,对应的内容会显示在Replay Log中。

    在各个action中插入lr_output_message()函数,

    在Vuser_init中写入以下内容:

    lr_output_message("this is vuser_init");

    在Action中写入:

    lr_output_message("this is action");

    在Vuser_end中写入以下内容:

    lr_output_message("this is vuser_end");

    回放脚本,在日志中可以看到脚本的运行顺序,脚本运行的顺序和脚本的名称没有关系,而与Run Logic的设置有关。

    操作:insert Action按钮将脚本添加到运行逻辑中,move up/move down按钮将脚本的先后顺序进行调整。

    修改Iterations迭代值为2,可以看到Run上多 了一个x2的标记:说明Run下的action将运行两次,日志信息如下:

    vuser_init.c(3): this if Vuser_init

    .....

    Action.c(3): this is action

    ......

    Action.c(3):this is action

    ......

    vuser_end.c(3): this is vuser_end

    .....

    可以看到this is action被显示了两次,说明Action()函数被运行了两次。再观察日志能够发现在每次迭代进行时,都可以得到以下成对的信息

    Starting iteration x

    Ending iteration x

    只有在Run上的迭代次数才能产生这样的迭代效果。

    选择Run右键,打开属性设置对话框:

    Run Logic 提供了两种运行模式,Sequential(顺序)模式和Random(随即)模式。Iterations用来设置Run上的迭代次数。

    若选择了Random方式:则Run下的脚本将根据各自设置的比例进行随机选择并运行。这里需要对每个Run下的Action进行单独的属性设置,修改它们的百分比。Random可以随机用户行为的模拟。例如需要模拟用户有40%的可能性去注册,60%的可能性去登陆,就可以通过Action在Run Logic中的随机运行来简单解决这个问题。

    Block是一个有趣的功能,它提供了一个脚本块的功能。方便的对脚本进行层次组合。

    Insert block按钮可以为脚本添加一个块,在这个块中可以继续添加脚本,而每个快都可以实现顺序/随机的运行方式,并且块上海可以防止循环的次数,通过这种块的扩展,就能实现各种复杂的脚本。

    用户打开首页后,有两种选择,40%可能性登陆,其余不登陆。登陆的有两种随机选择,不登陆也有两种选择,这个时候用块能很简洁的解决这个问题。

    如果需要用编程的方式来控制脚本运行的策略,又如何做呢?

    1. 熟悉action之间的调用方式?

    在VuGen中录制的脚本被放在一个函数中。

    Action(){

    return 0;

    }

    如果需要在Action函数中调用其他文件的函数,只需要在代码中直接添加被调用的函数名即可,例如:

    Action(){

    Vuser_init();

    Return 0;

    }

    这样就实现了代码级得逻辑控制。

    如何解决随机的问题?

    在脚本中使用随机函数来解决。模拟用户有30%的概率去执行一个操作,30%是什么概念?

    可以这样理解:如果随机生成一个1-100的数字,且随机结果在1-30这个范围内,那么这就是30%的概率了,通过这个方法我们就可以实现随机操作的模拟了。

    Action(){

    int rowNum;

    rowNum = rand()%100+1;//使用rand()获得随机值,然后对100取余后加1,即可得到1-100的随机内容

    if(rowNum<=30)//如果值小于30,那么就是30%内的概率,则执行vuser_init()函数

    Vuser_init();

    return 0;

    }

    在Run Logic 中删除的脚本不会被执行,但仍可以通过编程的方式来调用。

    原文转载自:https://blog.csdn.net/shilijun988/article/details/45248499

  • 相关阅读:
    SQL Server 2014忘记SA密码或禁用而且Windows身份验证也无法登录的解决办法
    深入解密.NET(Tuple元祖)
    DbContext 和 ObjectContext两者的区别
    开源的监控软件
    进程kswapd0与events/0消耗大量CPU的问题
    loadrunner---<二>---菜鸟对cookie的思考
    替换linux下的rm命令,并对-rf进行判断
    linux下恢复误删除的文件方法(ext2及ext3)
    oracle闪回使用以及删除存储过程恢复
    eclipse中新建maven项目-转
  • 原文地址:https://www.cnblogs.com/lelexiong/p/8974835.html
Copyright © 2020-2023  润新知