LoadRunner中lr_load_dll函数的应用

2012-08-20  陈磊 

在用LoadRunner进行压力测试的过程中,我们常常会遇到这样的情况:被测对象软件的客户端操作界面使用浏览器或可执行程序界面,后台则调用通用或私有的动态链接库(*.dll)同服务器进行通讯和数据传输。这时候如果通过VuGen不能成功录制脚本的话,可以考虑LoadRunner中的一个特殊的函数lr_load_dll。

    下面我们以某收费系统测试为实例介绍一下该函数的应用:

    某收费系统采用“收费点—收费站—数据中心”的三层结构,通过开发方提供的专用动态链接库将生产数据由收费点上传至收费站和数据中心,收费点用户操作界面则是由开发方根据该高速公路管理部门的要求专门定制的应用程序,收费点用户操作界面调用动态链接库中的函数进行数据传输。由于动态链接库在数据传输时进行了处理,使用Winsock协议录制测试脚本则可能使调试工作复杂化。考虑到开发方能够提供明确的动态链接库函数说明,我们设计用lr_load_dll直接调用动态链接库的方式制作脚本。

    函数说明:
动态链接库文件名称:CPGS_MID.dll
函数名:Mid_Data_Transession
实现目标:收费点上传传原始记录结算中心或收费站传原始记录
调用函数:
Mid_SetTarget  //设置目标节点
Mid_UploadData //上载数据
调用示例:
Mid_Data_Transession ()
{
long reqid;  //变量定义
char form[32];
int iRet;
char aBuf[1024]; //数据字串
//输入参数赋值
Mid_SetTarget(&02000,"IN_CENTER"); //设置数据传输目标及目标类型
strcpy( aBuf, “上传记录对象” );  //设置上传记录对象
iRet = Mid_UploadData (form,aBuf,reqid); //数据上载至
if( iRet == -1000)       //判断上传结果
{
   printf(“交易提交失败”);    //上传失败,反馈出错信息,并记录日志
   return -1;
  }
  return 0;
 }
测试脚本中调用方式如下:



    这样就实现了在LoadRunner中调用动态链接库,之后进行并发场景设置等工作与正常压力测试方式一致。此外还需要注意的是,在调用一个动态链接库函数之前,需要LoadRunner能识别该动态链接库文件,即该文件是在系统缺省或声明路径下,能够被正常引用。

    总结:我们知道LoadRunner提供了功能强大的API集合,可以满足大多数性能测试的需求。但在某些特定情况下,这些API仍然有覆盖不到的地方,这就导致LoadRunner可能不便或者无法捕捉相应的数据信息。对这种情况,通过直接调用动态链接库函数向服务器加压可以简化测试脚本的制作过程,提高测试工作的效率,不失为一种理想的解决方案。

532°/5327 人阅读/0 条评论 发表评论

登录 后发表评论