zoukankan      html  css  js  c++  java
  • Loadrunder之脚本篇——参数化取值策略

    参数取值选项

    Select next row

    Update value on

    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值

    以上两个选项是改变参数化取值的关键选项。

     

    Select next row包含如下选项:

    Sequential:顺序选择

    Random:随机取值

    Unique:唯一值

     

    Update value on包含以下选项:

    Each iteration:每次迭代更新。

    Each occurrence:每次取值更新

    Once:只更新一次

     

    1  Sequential+Each iteration取值

     

    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值

    这种取值是按顺序的,即按照Parameter List中记录的先后顺序从上往下取值,当记录取完后,再重新从记录头开始取值,而Each iteration是基于Run-timesettings->Run Logic中的迭代次数完成记录变化操作的。

    例子:

    Action3()

    {

    lr_eval_string("{NewParam}");

    return 0;

    }

    迭代次数1:NewParam取值 甲

    迭代次数5:NewParam取值 甲|乙|丙|丁|戊

    迭代次数6:NewParam取值 甲|乙|丙|丁|戊|甲

     

    注意:Update on value on Each iteration时,只有开始了新的一次迭代,也就是说回放日志中出现了Starting iteration才会触发记录变化,否则取值内容均不变化

    例如:迭代次数为2

    Action3()

    {

      for (int i=0;i<2;i++)

        {

           lr_eval_string("{NewParam}");

      }

    return 0;

    }

    NewParam取值 甲甲乙乙

     

    2  Sequential+Each occrrence取值

    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值

     

    按顺序取值,即按照Parameter List中记录的先后顺序从上往下取值,当记录取完后,再重新从记录头开始取值,而Each occrrence只要取了一次参数值,参数值就变化,取下一个参数值

    例子:

    Action3()

    {

     lr_eval_string("{NewParam}");

     lr_eval_string("{NewParam}");

     return 0;

    }

    如果迭代次数 1:NewParam取值 甲|乙

    如果迭代次数 2:NewParam取值 甲|乙|丙|丁

     

    3  Sequential+Once取值

    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值

    按顺序取值,即按照Parameter List中记录的先后顺序从上往下取值,当记录取完后,再重新从记录头开始取值,而Once针对整个脚本来说,只要取了一次参数值,参数值就不再变化了

    Action3()

    {

      lr_eval_string("{NewParam}");

      return 0;

    }

    无管迭代多少次,或者for循环,NewParam取值都是甲

     

    4  Random+Each iteration取值

    VuGen会从参数列表中随机取出一条记录,其取值的次数受到Update value on选项的限制。

    Random+Each iteration:每当一次新的Starting iteration开始,重新从参数列表中取一次随机值。

     

    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值

     

    5  Random+Each occurrence

    每当取一次该参数值,从参数列表中重新取一次随机值

     

    6  Random+Once

    当第一次取到随机内容后,再不更新记录。

     

    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值

     

    7  Unique取值

    一种更高级的顺序取值,强调取值的唯一性,但是违反了该规则也能继续运行,VuGen提供了When out of values选项来处理非唯一的情况【当且仅当Update value on Each iteration,Update value on Each occurrence, When out of values才可以用】

    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值

     

    其中,update value on和上面的意思一样,不再赘述

     

    When out of values

    1)Abort Vuser

    当参加参数取值超出参数表记录的条数时,忽略用户脚本,停止运行脚本

    2)Continue in a cyclic manner

    当参数取值超出参数表记录时,使用循环扫描的方式

    3)Continue with last value

    当参数取值超出参数表记录时,使用参数表中的最后一个值

    列子:

    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值
    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值

     

     

    Action3()

    {

    lr_eval_string("{NewParam}");

    return 0;

    }

     

    迭代6次

    loadrunner <wbr>脚本优化-参数化之Parameter <wbr>List参数取值

     

     

    小技巧:有时候,需要手工将参数的值下移一位(不管是不是Update value on Each iteration),怎么办?使用lr_advance_param()函数来解决这个问题,

    例子:前面脚本的参数{NewParam},Sequential+Each iteration,使用脚本:

    lr_eval_string(“{Newparam}”);

    lr_eval_string(“{Newparam}”);

    运行结果 甲|甲

     

    lr_eval_string(“{Newparam}”);

    lr_advance_param(“Newparam”);

    lr_eval_string(“{Newparam}”);

    运行结果 甲|乙

  • 相关阅读:
    SQL调用另一台服务器的表及存储过程(SQL函数openrowset()的使用以及相关问题处理)
    解决SQL Server 阻止了对组件Ad Hoc Distributed Queries访问的方法
    sql server exec 参数的传递
    c#修改webservice 的地址和端口(修改配置文件)
    JS转换HTML转义符,编码及解码
    nginx使用ssl模块配置支持HTTPS访问,腾讯云申请免费证书
    thinkcmf 相关
    ThinkJS 开发node后端 使用 简介
    linux复制指定目录下的全部文件到另一个目录中
    谷歌地图,国内使用Google Maps JavaScript API,国外业务
  • 原文地址:https://www.cnblogs.com/langhuagungun/p/8335164.html
Copyright © 2011-2022 走看看