如何使用LoadRunner調用外部DLL動態鏈接庫(2)

發表于:2011-11-09來源:未知作者:領測軟件測試網采編點擊數: 標簽:
該動態鏈接庫編譯成功后,打開MyDll工程中的de bug 目錄,可以看到MyDll.dll、MyDll.lib兩個文件。LIB文件中包含DLL文件名和DLL文件中的函數名等,該LIB文件只是

  該動態鏈接庫編譯成功后,打開MyDll工程中的debug目錄,可以看到MyDll.dll、MyDll.lib兩個文件。LIB文件中包含DLL文件名和DLL文件中的函數名等,該LIB文件只是對應該DLL文件的"映像文件",與DLL文件中,LIB文件的長度要小的多,在進行隱式鏈接DLL時要用到它。讀者可能已經注意到在MyDll.h中有關鍵字"extern C",它可以使其他編程語言訪問你編寫的DLL中的函數。

  LoadRunner調用動態鏈接庫

  上面完成動態鏈接庫開發后,下面就介紹動態鏈接庫如何被LoadRunner進行調用,其實也是很簡單的。在LoadRunner中的DLL調用有局部調用與全局調用,下面介紹局部調用。

  首先把你編譯的DLL放在角本路徑下面,這里是MyDll.dll,MyDll.lib.然后在Action中使用

  lr_load_dll("MYDll.dll"),此函數可以把DLL加載進來,讓你調用DLL里面的函數,而DLL中的運算是編譯級的,所以效率極高,代碼樣例如下:

  #include "lrs.h"

  Action()

  {

  //

  int nRet = 6;

  char srckey[129];

  memset(srckey, 'a', 128);

  lr_message(lr_eval_string(srckey));

  lr_load_dll("MyDLL.dll");

  nRet = desinit(5,8);

  lr_message("比較的結果為%d",nRet);

  return 0;

  }

  運行結果

  比較的結果為8

  全局的動態鏈接庫的調用則需要修改mdrv.dat,路徑在LoadRunner的安裝目錄下面(LoadRunner/dat directory);在里面修改如例:

  [WinSock]

  ExtPriorityType=protocol

  WINNT_EXT_LIBS=wsrun32.dll

  WIN95_EXT_LIBS=wsrun32.dll

  LINUX_EXT_LIBS=liblrs.so

  SOLARIS_EXT_LIBS=liblrs.so

  HPUX_EXT_LIBS=liblrs.sl

  AIX_EXT_LIBS=liblrs.so

  LibCfgFunc=winsock_exten_conf

  UtilityExt=lrun_api

  ExtMessageQueue=0

  ExtCmdLineOverwrite=-WinInet No

  ExtCmdLineConc=-UsingWinInet No

  WINNT_DLLS=user_dll1.dll, user_dll2.dll, ...

  //最后一行是加載你需要的DLL

  這樣你就可以在LR中隨意的調用程序員寫的API函數,進行一些復雜的數據加密,準備的一些操作,進行復雜的測試。同時如果你覺的有大量高復雜的運算也可以放在DLL中進行封裝,以提高效率。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97