Loadrunder之参数化在场景中的运用

Posted 残~枫~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Loadrunder之参数化在场景中的运用相关的知识,希望对你有一定的参考价值。

Action()

{

   lr_eval_string("{NewParam}");

   lr_eval_string("{NewParam}");

   return 0;

}

参数设置:

技术分享图片

 

举例说明

打开Tools>Create Controller Scenario选项,弹出如下图,选中Manual Scenario(手工场景),虚拟用户数为5个,其他选项使用默认

 

点击上图的OK,打开如下界面

 

技术分享图片

Schedule设置

 

技术分享图片
 

2、Run-Time Settings->Log,打开日志

 

技术分享图片

注意:

确保Log options是Always send message,并且选中Parameter substitution,否则在场景日志中看不到参数取值的结果

 

3.确认测试结果目录。打开Results- >Results Settings,设置生成的测试报告所在目录及对应的结果名。如下图

 

技术分享图片

 

4.运行整个场景,单击Start Scenario按钮或者按F5键。几秒中后脚本就执行完,到对应目录下,查看日志文件(也可以在场景中直接查看),文件名形式:脚本名_用户编号.log的形式。几个用户就会有几个文件,如果脚本出错,对应该用户的日志就不会生成。

 

技术分享图片

 

步骤5:在Run Logic中设置迭代次数2,然后运行脚本,接着看不同的取值方式在场景中的效果

注意:如果需要修改场景脚本执行的iteration,必须在Controller的Run- time Settings中进行修改,而不能修改VuGen中的Run-time Settings

 

顺序取值

技术分享图片

随机取值

 

技术分享图片

 

唯一取值

当选择Unique取值时,在Parameter List里面会有一个新的选项,Allocate Vuser values in the Controller,三种情形,分别按如下设置

 

技术分享图片

 

 

 技术分享图片

运行结果:

 

技术分享图片

 

更改参数配置,添加值:N,如下,再测试

 

技术分享图片

运行结果:

 

技术分享图片

说明:

1、在Unique这种选项下,虚拟用户之间的取值是不同的,并且遵守唯一性取值,如果用户分配不到该值,那么就提示错误!

2、Continue in cycle manner:缺少参数值时,循环取值,特别要注意的是,仅在每个用户获取到的参数值范围内进行循环,见上述运行结果,比如Vuser2,获取到3个参数值,D,E,甲,第一次迭代,获取DE,第二次迭代,可获取的参数值仅有甲,还少一个,咋办?按策略,从头开始取,取D,这里的头不是从A开始的,而是分配Vuser2的参数值中的第一个,同理下面的Continue with the last Value也不是从最后一个N开始的,而是分配给用户的参数值中的最后一个

3、Aclocate X values for each Vuser:为每个用户分配X个参数值,例中,按上述的分配方式,可得到如下图,即每个用户分配到的具体参数

4、Automatically allocate block size(自动分配块):检查一个脚本有多少次迭代,然后让用户根据迭代次数分配该迭代大小的数据块

 

技术分享图片
 

更改参数配置如下,继续测试

技术分享图片

 

运行结果:

技术分享图片









以上是关于Loadrunder之参数化在场景中的运用的主要内容,如果未能解决你的问题,请参考以下文章

Loadrunder之参数化方法

Loadrunder之参数化取值策略

性能工具之 Locust 工具关联与参数化

性能工具之 Locust 工具关联与参数化

性能工具之 Locust 工具关联与参数化

参数化在服务结构中运行的 docker 映像