一篇文章讲明白LoadRunner:参数化

本文涉及的产品
.cn 域名,1个 12个月
简介: 一篇文章讲明白LoadRunner:参数化

一、参数化概述

1、什么是参数:

对于一个URL来说由域名+端口号+路径+参数 组成,网址中”?”后边的都是参数,参数由key和value组成,多个参数通过””来连接。

2、参数化的概念:将脚本中某个写死的参数,把它转化为一个数组列表,我们可以从数组里边取到值,来进行值的传递。

拓展:如何查询一个域名对应的IP及域名的解析

查询域名对应的IP:

在浏览器地址栏中输入” 183.232.231.172”就可以访问百度的页面

→ 端口8080是默认的,可忽略,最后边的”/”默认为一个页面,如” /index.php”

域名的解析:

index.php

3、需要进行参数化的情况:

①数据库校验字段的唯一性

②应用程序不允许用一个值进行反复操作(游戏的登录)

③避免数据库的查询缓存,而导致性能测试结果失真

(数据库在执行一条sql操作时,会进行语法检查、语意分析、检查表是否存在、是否有权限进行操作,然后生成执行计划,open表进行查询操作、若数据在内存中,在内存中取数返回,如果内存中没值,在硬盘中取数返回,若数据库缓存开启会将结果放入查询缓存)

页面输入的东西,最多需要进行参数化。服务器返回的非输入之外的值,有可能需要进行关联。

4、如何避免使用参数化:

①去掉数据库唯一字段限制(数据量太大的情况)

②改应用程序

③关掉数据库的查询缓存

二、脚本的参数化操作基本界面说明

注意:如上图在userNo.dat中对参数进行编辑操作完成后,光标的位置应该在”006”的回车一行,多一行或者少一行都不行,如果保存的时候,光标在” 006”的后边,而不是回车的下一行,那么脚本在进行参数化取值的时候,不会取到值”006”。

三、取值策略及值更新策略详细说明

1、取值策略选择"same line as xxx"

当userNo.dat文件中,有两列时,取值策略会多一个选项"same line as xxx",如下图配置:

根据如上两图,username的参数userNo取的是userNo.dat文件的第一列的值,password的参数passwd取的是userNo.dat文件的第二列的值,在参数取值策略中password选择"same line as userNo"意思是说,无论username选择文件中第一列哪个值,password的取值就是该username取值所在行的第二列的值,回放脚本,检查结果:

对比userNo.dat中的参数列表,发现userNo=0003和pwd=888是在同一行中且对应的,回放结果正确。

2、参数化测试代码段

1 Action()

2 {

3 int i; //声明一个变量

4 for (i=0;i[span style="color: rgba(128, 0, 128, 1)">2;i++) //循环

5 {

6 char a = "{p1}"; //获得参数赋值给a

7 char b = "{p2}//代码效果参考:http://www.ezhiqi.com/bx/art_6305.html";//获得参数赋值给b

8 char *c = "{p1}"; //获得参数赋值给c

9

10

11 lr_output_message("%s,%s\n,%s\n",lr_eval_string (a),lr_eval_string (b),lr_eval_string (c)); //打印

12

13 return 0;

14 }

3、取值策略:顺序 + 值变更策略:每次迭代

4、取值策略:顺序 + 值变更策略:每次遇到

5、取值策略:顺序 + 值变更策略:ONCE

6、取值策略:随机 + 值更新策略:迭代

7、取值策略:随机 + 值更新策略:每次遇到

8、取值策略:随机 + 值更新策略:ONCE

9、取值策略:唯一 + 值更新策略:迭代

用户1:a1--a5,b1--b5 用户2:a6--a10,b6--b10

唯一是对多用户而言,在并发的时候,会出现唯一,将总的参数化池划分子集,各子集间没有交集

值的分配策略

在跑并发时需要遵循的原则:

①数据库表中的值是否足够,

②要算出给每个用户分配多少个值,才够用

在唯一的时候,用户和用户之间,他们的值会单独区分开来

参数模拟(不适用于值的更新策略为每次出现的情况),如下图:

可以模拟多用户参数的取值情况(用该模拟器模拟的时候,着重自己分析,该模拟器存在bug)

10、取值策略:唯一 + 值更新策略:每次遇到

值不够时候处理,注意这里选择取值策略为唯一才会出现,如下图:

对于Abort Vuser处理方式,会报如下错误:

Error: Parameter 'p1': No more unique values for this parameter in table 'p1.dat' 【unique range is 1-10】. The Vuser is aborted according to "When Out Of Values" policy.

对于continue with last value处理方式,会报如下错误:

Error: Parameter 'p1': No more unique values for this parameter in table 'p1.dat' 【unique range is 1-10】.The parameter continues with last value of the range according to "When Out Of Values" policy.

但是依然用最后一个值替换

对于continue in a cyclic manner处理方式不会报错,从头开始取值

11、取值策略:唯一 + 值更新策略:ONCE

四、其他一些内容

1、通过数据库大批量赋给参数值

需要在负载端安装数据库驱动

2、参数化类型

①Unique Number(唯一的数字)

②Random number

③Date/Time

五、总结

1、对银行流水号进行参数化

相关文章
|
5月前
|
JSON Java 测试技术
一篇文章讲明白loadrunner
一篇文章讲明白loadrunner
33 0
|
测试技术
Loadrunner 脚本开发-从文件读取数据并参数化
Loadrunner 脚本开发-从文件读取数据并参数化
117 0
|
SQL 关系型数据库 MySQL
Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
111 0
|
测试技术
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part 2
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part 2
124 0
|
测试技术
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取
120 0
|
测试技术
loadrunner 脚本优化-参数化之场景中的参数化取值
loadrunner 脚本优化-参数化之场景中的参数化取值
158 0
|
测试技术 数据安全/隐私保护
loadrunner 脚本优化-参数化之Parameter List参数同行取值
loadrunner 脚本优化-参数化之Parameter List参数同行取值
180 0
|
测试技术
loadrunner 脚本优化-参数化之Parameter List参数取值
loadrunner 脚本优化-参数化之Parameter List参数取值
151 0
|
测试技术
loadrunner 脚本优化-参数化方法
loadrunner 脚本优化-参数化方法
291 0