在進(jìn)行LoadRunner打壓時(shí),有時(shí)候請求的參數(shù)是加密的,而加密的法則是通過調(diào)用一段DLL來生成的。這樣通過參數(shù)化模擬的打壓請求就無法達(dá)到預(yù)期的效果,這時(shí)候就需要調(diào)用DLL后,拿到DLL的返回值,用返回值來構(gòu)造打壓請求。那么怎么調(diào)用DLL呢?
創(chuàng)新互聯(lián)公司成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站開發(fā),網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:18982081108首先說一下調(diào)用DLL需要的條件:
1、 VuGen只能識(shí)別標(biāo)準(zhǔn)C編譯的DLL, 所以使用VC6創(chuàng)建的函數(shù)必須在函數(shù)開頭加上extern "C",它告訴編譯器對這個(gè)函數(shù)按照標(biāo)準(zhǔn)C的方式進(jìn)行編譯。
2、 需要有標(biāo)準(zhǔn)C的導(dǎo)出函數(shù)??梢酝ㄟ^Dependency Walker查看:
滿足這兩點(diǎn)后,就可以在LoadRunner腳本中調(diào)用此DLL了。
調(diào)用外部DLL的方法有兩種:
● (單個(gè)腳本中)在腳本中是使用 lr_load_dll 函數(shù)。
● (全局設(shè)置,所有腳本)通過修改 mdrv.dat 文件實(shí)現(xiàn)。
第一種方法,可以直接通過lr_load_dll函數(shù)來實(shí)現(xiàn)。
這樣就可以直接保存返回值用戶后續(xù)的打壓參數(shù)了。但是這種方法是單個(gè)腳本才能用的,其他腳本不能使用。
第二種方法是全局設(shè)置,相當(dāng)于將dll加載到LoadRunner的DLL庫中。所有腳本你都可以調(diào)用。
1、將需要的DLL拷貝到LoadRunner安裝路徑的Bin目錄下。
2、修改mdrv.dat文件,找到[lrun_api]節(jié)點(diǎn),在后面加上一句:
WINNT_DLLS=XXX.dll
這樣,就不用lr_load_dll函數(shù),直接調(diào)用XXX.dll里面的函數(shù)了。
另外,在具體通過agent打壓時(shí),會(huì)發(fā)現(xiàn)報(bào)如下錯(cuò)誤:
Error: CCI security error:You are running under secure mode and the function ci_load_dll is not allowed in this mode.
這是由于遠(yuǎn)程agent打壓機(jī)無法加載DLL導(dǎo)致的。解決辦法是在添加腳本時(shí),將引用的DLL也添加進(jìn)來。