最近在电信进行2.0系统的入网测试,其中在性能测试环节遇到了一个问题:
电信要求我方提供的参数具备如下要求:
1、唯一性;
2、随机性;
3、数据量能支持8小时疲劳测试且不违反上述规则。
接着局方就通过交流中建议,在LR脚本中通过调用DLL的方式实现上述规则。
根据局方的意思,就是LR中设置参数时把“Select Next Row”属性设为“Unique”,按场景需要把“Allocate values for each user”属性设置一个值,这个功能并不可靠。
说实话,在以前测试的过程中,我还没有遇到Unique参数设置失效的情况,但既然局方表态了,我们还得照着他们的意思改,谁让甲方乙方的关系摆在这儿呢。
所以Unique是否有效这个问题暂时不讨论,如何实现DLL的功能呢?
经过讨论,决定使用【迭代次数+用户ID】形成唯一的值,根据这两个值,从DLL中产生需要的参数;
Test.DLL在VC中创建,基本写法如下:
int ReturnParam(int VuserID, int ItrationNumber)
{
int ReturnRes;
Res = 业务逻辑,在此省略;
return ReturnRes;
}
在LoadRunner中调用时如下:
lr_load_dll("Test.dll");
lr_message("Param1 %d",ReturnParam({VUserID},{ItrationNumber}));
实现完毕,下一步就是参数化的过程了……