LoadRunner如何调用外部函数
LoadRunner如何調(diào)用外部函數(shù)
?
?? 使用 VuGen 時,可以調(diào)用在外部 DLL 中定義的函數(shù)。通過從腳本調(diào)用外部函
數(shù),可以降低腳本的內(nèi)存使用量以及總體運行時間。
要調(diào)用外部函數(shù),需要加載定義了該函數(shù)的 DLL。
可以用下列方法加載 DLL:
?本地— 用于一個腳本,使用 lr_load_dll 函數(shù)。
?全局— 用于所有腳本,方法是向 vugen.dat 文件中添加語句
加載 DLL — 本地
? 使用 lr_load_dll 函數(shù)可以在 Vuser 腳本中加載 DLL。DLL 加載成功之后,可以
調(diào)用 DLL 中定義的任何函數(shù),而無需在腳本中對其進行聲明。
要調(diào)用 DLL 中定義的函數(shù),請執(zhí)行下列操作:
1 使用 lr_load_dll 函數(shù)在腳本的開頭加載 DLL。將語句放在 vuser_init 部分的開
頭。lr_load_dll 將替換 ci_load_dll 函數(shù)。
請使用以下語法:
lr_load_dll(library_name);
注意,在 UNIX 平臺中, DLL 被稱為共享庫。該庫的擴展名取決于平臺。
2 在腳本的適當(dāng)位置調(diào)用 DLL 中定義的函數(shù)。
在下例中,創(chuàng)建表 Test_1 之后,調(diào)用了在 orac1.dll 中定義的 insert_vals 函數(shù)。
int LR_FUNC Actions(LR_PARAM p)
{
lr_load_dll("orac1.dll");
lrd_stmt(Csr1, "create table Test_1 (name char(15), id integer)\n", -1,
1 /*Deferred*/, 1 /*Dflt Ora Ver*/, 0);
lrd_exec(Csr1, 0, 0, 0, 0, 0);
/* Call the insert_vals function to insert values into the table.*/
insert_vals();
lrd_stmt(Csr1, "select * from Test_1\n", -1, 1 /*Deferred*/, 1 /*Dflt Ora Ver*/,
0);
lrd_bind_col(Csr1, 1, &NAME_D11, 0, 0);
lrd_bind_col(Csr1, 2, &ID_D12, 0, 0);
lrd_exec(Csr1, 0, 0, 0, 0, 0);
lrd_fetch(Csr1, -4, 15, 0, PrintRow14, 0);
注意: 您可以為 DLL 指定完整路徑。如果不指定路徑, lr_load_library 將使用
Windows?平臺上的 C++ 函數(shù) LoadLibrary 所使用的標(biāo)準(zhǔn)序列來搜索 DLL。在
UNIX 平臺上,可以設(shè)置 LD_LIBRARY_PATH 環(huán)境變量(或平臺上與其等效的
變量)。lr_load_dll 函數(shù)使用與 dlopen 相同的搜索規(guī)則。有關(guān)詳細信息,請參
閱 dlopen 或與其等效的主頁。
加載 DLL — 全局
可以全局加載 DLL,使其函數(shù)能夠用于所有 Vuser 腳本。DLL 加載成功之后,
可以調(diào)用 DLL 中定義的任何函數(shù),而無需在腳本中對其進行聲明。
要調(diào)用 DLL 中定義的函數(shù),請執(zhí)行下列操作:
1 向 mdrv.dat 文件(位于應(yīng)用程序的 dat 目錄)的相應(yīng)部分中添加要加載的 DLL
列表。
請使用以下語法:
PLATFORM_DLLS=my_dll1.dll, my_dll2.dll, …
用您的特定平臺替換單詞 PLATFORM。有關(guān)平臺的列表,請參閱 mdrv.dat 文件
的開始部分
例如,要在 NT 平臺上為 Winsocket Vuser 加載 DLL,請向 mdrv.dat 文件中添
加下列語句:
[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, …
2 在腳本的適當(dāng)位置調(diào)用 DLL 中定義的函數(shù)。
?
轉(zhuǎn)自:http://www.51testing.com/html/66/34866-101583.html
轉(zhuǎn)載于:https://www.cnblogs.com/abcd19880817/p/7201301.html
總結(jié)
以上是生活随笔為你收集整理的LoadRunner如何调用外部函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大楼(bzoj 2165)
- 下一篇: 使用HDFS客户端java api读取h