Loadrunner提高篇:block(块)技术和参数化

发表于:2017-4-07 11:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:一加一    来源:51Testing软件测试网采编

  三、参数类型属性
  创建参数后,需要对参数类型属性进行设置,主要有以下几种参数类型:
  1、date/time(日期/时间)参数类型,如图7所示:
  
图7(日期时间参数类型)
  2、group name(组名)参数类型
  用vuser组的名称替换参数。创建方案时,要指定vuser组的名称,否则运行脚本时,组名始终为“无”。
  3、iteration number(迭代编号)参数类型
  用当前的迭代编号替换参数,迭代编号的格式可以自己设置。
  4、load generator name(负载发生器名)参数类型
  用vuser脚本的负载发生器名替换参数,负载发生器是运行vuser的计算机。
  5、random number(随机数)参数类型
  用一个随机生成的整数替换参数,可以通过指定最小值和最大值,设置随机数的范围。
  6、unique number(唯一数)参数类型
  用一个唯一编号替换参数。start表示vuser从第几个参数开始使用;block size指明分配给每个vuser的编号块的大小;number数据类型表示产生的唯一的类型。
  7、vuser id参数类型
  使用该虚拟用户的ID来代替参数值,该ID由controller来控制,在vugen中运行脚本时,vugen将会是-1.
  8、file(文件)参数类型
  可以在参数属性中编辑参数文件,也可以直接选择已编辑好的参数文件,还可以从现成的数据库中提取(这是最常用的一种参数化方式),下面的内容会详细介绍。
  四、数据文件
  参数的数据源可以来自于真实的历史数据也可以是自行构建的数据,参数中的数据如何调用也是需要设置的。
  1、browse属性:如果修改过参数文件路径,则需要在这里重新选择,否则无法读到参数文件中的参数(会报错error-13889),如图8所示:
  注:如果设置的是绝对路径的话,那么脚本移植到另的机器上运行时会报错,因为脚本的路径发生了变化,所以最好的方法就是采用相对路径,将脚本的根目录使用“.”来代替。
  (比如绝对路径:E:\loadrunner\0331参数化\0331注册脚本\parameter\parameter;则相对路径:.\parameter\parameter)
  
图8(选择参数化文件)
  2、edit with notepad设置:打开记事本,可在记事本中对参数值进行修改、添加或删除。
  3、select column设置:指明参数选择的列,可按列号(包含所需要数据的列的索引),也可按列名。
  4、column delimiter设置:选择列分隔符,一般是选择逗号。
  5、file data line设置:在脚本执行时选择第几行数据开始使用。如果选择从列标题后的第一行参数开始执行,就输入1。
  6、select next row设置:该属性都是针对虚拟用户来说的,即这里的策略是针对controller设置的,在调试脚本的过程中是看不出来的,其决定虚拟用户选择参数的过程。
  when out of values:表示当参数不够时如何处理
  1)abort vuser:忽略剩下所有的虚拟用户不再运行
  2)continue in a cyclic manner:将参数继续循环一次,虚拟用户按顺序参数进行迭代
  3)continue with last value:一直使用最后一个数据进行后面的迭代
  allocate vuser values in the controller:指在控制器运行时,如何分配这些参数
  1)由LR自动分配每个虚拟用户使用的参数情况
  2)为每个虚拟用户所设置的虚拟用户数。假如设置为20,那么第一个虚拟用户使用的参数为1-20,第二个则为21-40。(注:不要将该值设置为参数的总数)
  *same link as ..:与某个已定义好的参数取同一行值,该方法要求至少其中的一个参数必须是sequential、random、unique
  比如将参数PW'select next row'设置为’same line as user‘,当user选择test2时,那么参数pw只能选择跟它同一行的值
  7、update value on设置:设置脚本迭代过程中取值的策略,其结果可以在代码调试的日志中体现。
  1)each iteration:脚本每迭代一次都访问数据表中的下一个值,即在同一次迭代中,不管同一个参数出现多少次都只使用这一个参数
  2)each occurrence:在每次迭代过程中,参数的值都更新,即使在同一次迭代过程,如果某个参数使用了多次,其选择的值也会更新而不会使用相同的参数值。
  3)once:在同一个vuser中一直取同一个参数,表中其他的数据不参与迭代的过程
  五、导入数据
  如果在事务中希望参数是来自实际的数据,那么LR允许利用参数化从已经存在的数据中导入数据。提供microsoft query、指定数据库连接字符串和SQL语句 两种方式,如图9所示:
  
图9(导入数据方式)
  1、microsoft query创建查询
  2、指定数据库连接字符串和SQL语句
  具体创建LR数据源步骤,可看:http://jingyan.baidu.com/article/b2c186c8fee106c46ef6ffb8.html
  以上是参数化的整个过程,但参数化过程中有以下几个问题需要注意:
  1)参数化文件尽可能少,因为参数化是放在内存中的,占用了内存的资源
  2)参数化文件与脚本分离
  3)参数文件的路径应该设置为相对路径
  4)为了使参数更具有真实性,参数应该从历史数据库中获得
  5)参数类型的选择
  6)参数的数据由事务决定
  关联与参数化的区别
  一、数据处理的方式不同
  参数化的数据是由客户端向服务器提交的,而关联是需要获取服务器返回客户端的数据。在参数化时,参数化的数据会通过web_submit_data提交到服务器,其参数化的策略来自于相关设置选项,关联的数据是从服务器端返回给客户端的,是提交请求的一组验证信息,所以处理关联数据一定要在从服务器返回的信息中获取。
  二、处理的数据是否确定
  参数化的数据是测试工程师知道需要使用什么数据进行参数化,以满足事务的需要;而对于需要关联数据的内容是不清楚的,所以只能通过左右边界值来确定。参数化的数据是静态的,即提交的数据可以静态地表示 ,但关联的数据是动态,即它们之间的原理截然不同。
相关文章:
22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • 逍遥于尘世
    2017-4-25 11:01:54

    当用loadrunner录制含http和websocker协议脚本时,选择多协议时,为什么总出现400报错?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号