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

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

1. Run Logic

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

1) lr_output_message()函数的介绍?

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

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

  1. int x;
  2. x=10;
  3. lr_output_message("%d",x);

B. 输出字符串

  1. Char *x;
  2. x="welcome to 51testing";
  3. 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

【转载】lr运行时设置,每个action 比例的更多相关文章

  1. loadrunner 运行场景-运行时设置

    运行场景-运行时设置 by:授客 QQ:1033553122 A.   查看.修改单个脚本的运行时设置 a)   途径1: Scenario Groups.Scenario Groups Script ...

  2. [转]Loadrunner11之VuGen运行时设置Run-Time Setting

    转自:http://www.51testing.com/html/92/450992-248065.html General 1.Run Logic运行逻辑 脚本如何运行的,每个action和acti ...

  3. LoadRunner 学习笔记(2)VuGen运行时设置Run-Time Setting

    定义:在Vugen中Run-Time Setting是用来设置脚本运行时所需要的相关选项

  4. 【转】使用DataConnectionDialog在运行时设置数据源连接字符串

    介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...

  5. 使用DataConnectionDialog在运行时设置数据源连接字符串

    介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...

  6. 转载 网页打印时设置A4大小

    最近开发项目时遇到了网页打印的问题,这是问题之二,打印宽度设置 在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch)指标. 经过我仔细的测试,发现了网页打印中,默认采用 ...

  7. loadrunner运行时设置中清空缓存方法

    用函数web_cache_clearup()或run-time settings---browser emulation 把clear  cache on each iteration打勾 W v\] ...

  8. Run-time Settings 运行时设置

    1.执行顺序设置和执行概率设置 2.迭代之间的等待时间设置 3.日志设置 4.思考时间 5.杂项 线程进程选择: 一般服务器没有安全机制选择线程执行 但是有安全机制的话 比如第一个进程50个线程 第二 ...

  9. VC项目程序运行时设置指定目录读取Dll

    方法一: 选择当前工程,右击"Properties" -> "Configuration Properties" -> "Debuggin ...

随机推荐

  1. Centos7.3之K8S安装初体验

    容器是发展趋势,所以是时候从虚拟机中脱离出来,投入到容器化的怀抱中了. 曾经试过安装k8s,都没有成功,各种乱七八糟的报错,于是一拖再拖,这次总算发现一个可以快速部署的工具,终于安装成功了. 这个k8 ...

  2. 【MongoDB学习之二】MongoDB数据库、文档、集合、元数据

    环境 MongoDB 4.0 CentOS6.5_x64 一.连接语法格式: mongodb://[username:password@]host1[:port1][,host2[:port2],.. ...

  3. windows系统常用命令

    dir 指定要列出的驱动器,显示当前文件夹下的文件   /?可显示所有命令 显示当前路径下的所有文件的绝对路径,包含子文件夹中的内容 D:\test > dir /b /s /o:n /a:a  ...

  4. python3.5+tornado学习

    python3.5的安装 python官网下载地址:https://www.python.org/ 自行下载最新版本 下载pip包或者easy_install 后缀为.gz格式 地址:https:// ...

  5. JVM性能调优的6大步骤,及关键调优参数详解

    JVM性能调优方法和步骤1.监控GC的状态2.生成堆的dump文件3.分析dump文件4.分析结果,判断是否需要优化5.调整GC类型和内存分配6.不断分析和调整JVM调优参数参考 对JVM内存的系统级 ...

  6. Django框架(十三)——Auth模块

    Auth模块 一.什么是auth模块 Auth模块是Django自带的用户认证模块 Auth模块是Django自带的用户认证模块,可以实现包括用户注册.用户登录.用户认证.注销.修改密码等功能.默认使 ...

  7. 【转】python测试框架--doctest

    转自https://my.oschina.net/lionets/blog/268542 doctest 是一个 Python 发行版自带的标准模块.有两种模式可供使用. ##1 doctest 的概 ...

  8. [CF30E]Tricky and Clever Password(KMP+manacher)

    首先枚举回文中心,然后显然中心两边要尽量扩展作为middle,这个用manacher实现. 然后注意到suffix的结尾位置是固定的(串尾),那么预处理出以每个位置结尾的串与原串后缀至多能匹配多长,然 ...

  9. 手把手教你打造高效的 Kubernetes 命令行终端

    Kubernetes 作为云原生时代的操作系统,熟悉和使用它是每名用户的必备技能.本文将介绍一些提高操作 Kubernetes 效率的技巧以及如何打造一个高效的 Kubernetes 命令行终端的方法 ...

  10. Python的字符串函数

    今天用了将近一天的时间去学习Python字符串函数 上午学了17个,下午学了23个(共计40) 详细内容请见菜鸟教程--Python3字符串--Python的字符串内建函数