关注于测试自动化和测试管理,我是一个永远的测试新手。

Loadrunner参数化测试数据(2)

上一篇 / 下一篇  2007-10-16 09:56:46 / 个人分类:Loadrunner

51Testing软件测试网3f"Q#l0K-c0_*WT

原帖:http://bbs.51testing.com/thread-93017-1-1.html

9~Q*{6dT9f^M#i051Testing软件测试网xG!kp'u9h6Y'x

为了解决他的问题,特回复一下。51Testing软件测试网#Ky$ubM gNV

51Testing软件测试网a`Ne8]/R e

指点迷津不敢~~说说我的理解给你参考一下:

+DV8a.^HhvH6r+d0

jW g [qtD0参数化设置的一般都是向server提交数据的函数,例如web_url、web_submit_data等函数,这些函数通常都是一个整体,无法进行分拆的参数化输入,因此每次进行参数化时,要考虑所有的被参数的参数的取值问题,引申出来参数化的最重要的步骤——做数据51Testing软件测试网 Sz? I8q.rd!|

bs-itolx+C0数据集有很多种,比如说 txt bat文件,比如说直接从数据库中读取,这些不同的数据集,lr应该处理的方式都是一样的,就是都是从数据集中先读取,然后存放到默认的bat文件中,然后再进行固定策略的参数化活动,因此,我们在做数据时,完全没有必要区分不同的数据集,我就只使用txt文件做数据集,如果是从数据库中读取数据,我就先自己select出来我要的,然后保存到txt文件中。同样,excel也是如此。

j2c:OU.m7|6}f051Testing软件测试网F GreA0i

做数据时需要选择不同的策略,就是不同的数据存放在几个文件中!需要仔细考虑好,例如你的文章:LoadRnner参数化之疑问一之续一51Testing软件测试网(]Bjsh6G*G
中就有如下参数要进行参数化:51Testing软件测试网"h'tM:b:zO/Px
TBillNo、tranID、realCode、TBillDate、invoiceNo、contractNo、inUnitecode51Testing软件测试网%rl'Qu*@2N*P-U \}
其中TBillNo、tranID、realCode、inUnitecode你选择的策略是取唯一值,其它的3个值估计就是无所谓了,可以随便选择一些,但是我不明白的时,你为什么更新值策略每个参数都不相同,做的很复杂,建议只用一个数据集文件,把所有取唯一值的数据放入这个文件,其他无所谓的值就不参数化了,手动填写一些值就OK了;文件格式类似:51Testing软件测试网 Zj+Ad5_V'iO
TBillNo tranID realCode inUnitecode51Testing软件测试网vj!CyD+_*h
a1 b1 c1 d1
#uePy+n!|\0a2 b2 c2 d2
-gr R3hh \0v G.u0a3 b3 c3 d351Testing软件测试网2g)l;r9@F$NH@~
……
h G hA:h7]1y E0然后选择更新值策略为唯一,选择下一行为每次迭代,步长为1即可;这样参数化就完成了,直接执行虚拟用户就OK。

/b!LuI]&V qc!a.O0

bBg{F6i a3a;z0再回答你的几个问题:51Testing软件测试网O-ws lY;g
1、实际完成的数据是否等于 迭代次数*vuser数??51Testing软件测试网*s0p(rI;B+Y ?az
答:这个【迭代次数*vuser数】理论上是提交请求数,实际的交易成功数可能不是,如果你没有做返回的检查的话,提交失败的你有时无法检查出来。因为lr的录制的时候提交的数据都是正确的,返回也是正确的,但是实际在vuser执行时,可能你提交的数据有问题,程序给你返回错误的结果,但是你没有做判断,lr依然认为这个是正确的,没有报错,这样,实际上你10条记录提交了,实际只完成2条,完全有可能。因此,在脚本中增加对应的返回值检查是很必要的。

3s(j`w P1a051Testing软件测试网/Q%}kv4ae2F2h

2、如何取得唯一值?51Testing软件测试网}o nm.h$SS
答:在场景中执行的vuser脚本,使用唯一(unique)+每次迭代即可;
s^e e)@0   例如:你设置了【唯一(unique)+每次迭代】,然后用10个vuser来跑,不设置持续运行时间的话,那么你提交的请求就是 10个【每个vuser选取一个唯一值】,当然前提是你的参数化数据足够多。
*m#spnIk"XS0   再例:你设置runtime-setting的action的迭代次数为10,然后再用10个vuser来跑【唯一(unique)+每次迭代】的脚本,那你最好设置一下步长,就是规定每个vuser的取值空间,这样不会造成取值冲突;如果设置步长为10,那么你第一个vuser取值就是【(N-1)*100+10】行(N为迭代次数),这样可以避免有些策略提交了同样的值,造成请求发出,但是实际没有成功。

.Q&\}Ax?0

x-c SV+LS;ia:J0你可以参考我的blog文章:http://www.51testing.com/?6343/action_viewspace_itemid_64365.html

m7{ [(\;v1d0

G u4fO0Z*D-\?0有问题继续讨论,呵呵~~~~

K$}P\.N)wN0

TAG: LoadRunner 参数化 LR参数化 Loadrunner

lswx2的个人空间 引用 删除 lswx2   /   2008-09-08 15:30:32
验证码是8888  呵呵
TaoTao Ma的个人空间 引用 删除 tongfenglcz   /   2007-10-18 13:47:33
谢谢你的回复,通过你的指点,我又重新运行了一下脚本(没有修改脚本),运行成功,与预期值一样。知道了一个问题:日志中参数被替换的值,对于系统来说未必有效。
对于你的解答,我有个问题:“ 例如:你设置了【唯一(unique)+每次迭代】,然后用10个vuser来跑,不设置持续运行时间的话,那么你提交的请求就是 10个【每个vuser选取一个唯一值】,当然前提是你的参数化数据足够多。”参数化数据不够的时候,是不是应该参考When out of valies的设置?还是这个超出值到底是什么意思?谢谢
水知寒的个人空间 引用 删除 水知寒   /   2007-10-17 22:31:04
法国红酒
 

评分:0

我来说两句

qiguojie

qiguojie

北京测试一草根儿

日历

« 2024-04-14  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 120372
  • 日志数: 39
  • 图片数: 1
  • 建立时间: 2007-06-05
  • 更新时间: 2011-06-29

RSS订阅

Open Toolbar