loadrunner扩展之环境准备 vc2008+LR8.1

上一篇 / 下一篇  2010-10-29 16:21:41

工具准备阶段: loadrunner, VC2008
1.  Microsoft Visual Studio2008 (vc9 vc2008)
D:\Program Files\Microsoft Visual Studio 9.0\
vc2008个头大,安装完1.6G左右,考虑到我可怜的C盘,还是挪窝


2.  Mercury Loadrunner (LR8.1)
C:\Program Files\Mercury Interactive\Mercury LoadRunner
默认路径,LR8.1个头也不小,600M左右


3. 编译环境设置
3.1. 菜单文件-->新建-->项目  或者快捷键 ctrl+shift+N    (看不清,点图放大)

3.2. 确定后,再点下一步, 不要直接点完成哦(看不清,点图放大)

3.3. 完成的,最终成果(看不清,点图放大):

4.  洗洗手,开始上把,先来个简单的
4.1 编辑lr_dll_test.h 头文件
在自动生成的fnlr_dll_test函数声明前,加上extern "C"
//自动生成的
//LR_DLL_TEST_API int fnlr_dll_test(void);
//修改后的, 因为LR只支持C,不支持C++,所有加上extern "C",
//告诉编译器,用C语法编译器
extern "C"LR_DLL_TEST_API int fnlr_dll_test(void);
4.2 编辑 lr_dll_test.cpp
//根据兴趣修改自动导出示例
// 这是导出函数的一个示例。
LR_DLL_TEST_API int fnlr_dll_test(void)
{
    int a = 50;
    int b = 200;
    return a+b;
}
4.3 大功告成(简单吧,其实只加了一句extern "C"),开始编译
菜单 生成->生成解决方案  或 快捷键 F7, 在lr_dll_test\Debug
目录下生成lr_dll_test.dll。

5. LR调用DLL方法,有两种
   5.1一种是通过lr_load_dll函数,
     5.1.1直接指定路径lr_load_dll("D:\\vc2008\\lr_dll_test\\Debug\\dll_test.dll");
           注意是两反斜杠
     5.1.2 拷贝DLL到LR脚本目录,或者LR安装目录,直接lr_load_dll("dll_test.dll")
       C:\Program Files\Mercury Interactive\Mercury LoadRunner\bin
   5.2第二种是全局调用,VUGen启动时自动加载
      修改,LR安装目录,dat子目录下的mdrv.dat文件,[lrun] 字段,在末尾添加
      C:\Program Files\Mercury Interactive\Mercury LoadRunner\dat\mdrv.dat
    [lrun]
    ExtPriorityType=communication
    WINNT_EXT_LIBS=lrun50.dll
    WIN95_EXT_LIBS=lrun50.dll
    LINUX_EXT_LIBS=libLrun50.so
    SOLARIS_EXT_LIBS=libLrun50.so
    HPUX_EXT_LIBS=libLrun50.sl
    AIX_EXT_LIBS=libLrun50.so
    LibCfgFunc=lr_configure
    ExtMessageQueue=0
   WINNT_DLLS=dll_test.dll

   5.3, 写个简单的脚本,调用刚才写的 fnlr_dll_test
   


6.注意点:
  6.1 DLL导出函数,需返回整形,如需返回char*型,
     LR调研时需加上强制转换,同理,返回结构指针也需强制转换
      p = (char*)fnlr_dll_test2(buff, 2);  不然会出错 
     “have illegal types `pointer to char' and `int'"
  6.2 DLL导出函数,动态申请的内存,无法在LR脚本中释放free,
        需另写一个free的导出函数。
        出错信息:  memory violation : Exception ACCESS_VIOLATION received
  6.3 LR不支持C++,当然无法导出类,引用调用等c++才有的特征

      



TAG: 扩展 loadruner vc2008 vc9 调用 动态库 环境

 

评分:0

我来说两句

Open Toolbar