51Testing软件测试论坛
标题:
通过用户ID和迭代次数生成LoadRunner参数。
[打印本页]
作者:
Athenst
时间:
2007-5-21 11:18
标题:
通过用户ID和迭代次数生成LoadRunner参数。
在最近做的一次性能测试过程中,有这样的一个用例:
先描述以下要求数据规模:
交换局:2W
网元:2W
用户端口:2000W
交接箱:4W
分线盒:160W
主干+配线线对:5000W
性能测试用例及场景设计:
每用户地址可开1000门电话,即1个用户地址下挂1000个号码资源;
并发用户数从400起,每5分钟增加10个用户直到满足以下三个条件时退出:
1、总体事务错误率在统计区间内的平均值首次大于1%;
2、服务器CPU负载在统计区间内的平均值首次大于80%;
3、被测系统任一服务器主机发生操作系统重启情况;
根据以上场景,和开发人员讨论、和预测试的经验,初步判断系统可并发用户为500左右,则系统运行时间为1小时左右,每装一门电话系统运行时间为10″钟左右,think_time设定为3*3=9″钟,最初压上来的400个用户的迭代次数预估计为180次,也不排除更多的可能性;
则计划需要18W条基础数据,讨论后决定建立20W条基础数据,数据建立规则如下:
号码段从99000001到992000000;
用户地址从“XX街道XX小区XX号13B000001”到“XX街道XX小区XX号13B002000”;
每分线盒下挂100个资源,分线盒资源编号从000001到000200;
用户端口、电缆线对编号后六位从000001到200000;
由于参数量比较大,所需要参数化的内容也比较多,所以经过了一阵子简单的尝试后不打算使用参数文件或者从数据库读取参数的方式;
而是使用VUserID+IterationNumber生成参数;
参数化的过程如下:
1、在系统参数中为脚本建立ParameteType为VUser ID 和IterationNumber的参数,分别使用%3S【NewParam_VUserID】和%3D【NewParam_ItrationNbr】;
2、将两个参数叠加,形成六位数字,作为基本参数;
3、当迭代数超过200时,VUserID+500,IterationNumber-200,重新生成六位基本参数;
4、分线盒资源参数、地址资源参数通过基本参数的换算后得到;
所使用到的函数以及方法都是比较常用的,如下:
1、sprintf:合并两个参数,并将其保存为基本参数;
sprintf(ParamVI,"%s%s",lr_eval_string("{NewParam_ItrationNbr}"),lr_eval_string("{ParamVUID_Nbr}"));
2、lr_save_string:保存参数用;
lr_save_string(ParamVI,"
aramVI");
3、atoi:字符转数字;
4、itoa:数字转字符;
主要是将基本参数在字符和数字之间转换,用于换算其他资源参数;
5、intlength:判断字符串长度;
根据字符长度决定是否需要在前面补0;
当这样做了之后,会发现参数化的过程也变得非常简单,简单的将需要参数化的内容替换成{ParamVI}即可,为调试脚本和数据节约了大量的时间,也为测试结果打下了比较好的基础;
PS:总的来讲过程比较简单,但想法还是比较新鲜,至少我以前没有这样子做过(丫的,需要20W条参数,汗),所以Blog出来希望给出指导建议。
作者:
rabbit_tian
时间:
2007-5-21 15:46
嗯,好方法
作者:
konglingzhen
时间:
2007-5-21 17:21
多谢!描述的挺详细的,研究+学习!!
作者:
tjliyaling
时间:
2007-5-22 10:22
xiexie
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2