什麼是動态庫?
動态庫一般又叫動态連結庫英文為dll,是dynamic link library 的縮寫形式,dll是一個包含可由多個程式同時使用的代碼和資料的庫,dll不是可執行檔案。動态連結提供了一種方法,使程序可以調用不屬于其可執行代碼的函數。函數的可執行代碼位于一個 dll 中,該 dll 包含一個或多個已被編譯、連結并與使用它們的程序分開存儲的函數。dll 還有助于共享資料和資源。多個應用程式可同時通路記憶體中單個dll 副本的内容。dll 是一個包含可由多個程式同時使用的代碼和資料的庫。

我們都知道,我們在程式設計時會調外部庫函數,因為程式的中許多代碼都是可以複用的,調用外部函數就大大的簡化了我們的工作量。代碼編寫完成後,需要編譯才能運作,在編譯的過程中,會把程式中調用的函數庫加載到記憶體裡。這就是靜态連結方式。
假如有一個函數庫,a程式要使用它,然後把函數庫的内容全部加載自己的程式中。b程式也要使用這個函數庫,b程式也把函數庫的内容也全都加載到自己的程式中;這樣同樣一個東西重複出現在多個程式中,就會造成是種記憶體的浪費。是以,我們把被多個程式調用的函數放在一個公其的地方,就這一份。誰需要誰調用。這就是動态連結方式。
loadrunner為什麼要使用動态庫?
dll最重要的一個特點就擴充應用程式的特性。 再強大的工具也有不是萬能的,通過調用動态庫的方法極大地增強loadrunner的功能。當你在用loadrunner對于某些需求的測試感鞭長莫及時,這也是一種思路或方式。
使用動态庫方法
建立一個動态庫
動态連接配接庫支援所有windows下的程式設計。 vb、dephi、c#、c/c++等。我們這裡用vc++進行示範。
下面通過vc++ 6.0中文版來建立一個動态函數。
打開vc++ 6.0,建立一個工程,這裡先擇工程類型為“win32 dynamic-link library”,起一個工程名稱,并選擇好存方位置。
點選“确定”按鈕,會詢問你希望建立什麼類型的dll?
我們選擇第三項“一個可以導出某些符号的dll工程(d)”
點選确定,系統會給我們建立兩個檔案mydll.h和mydll.cpp
分别對兩個檔案進行編寫代碼
mydll.h
因為我們的loadrunner 的vugen是一個c語言的解釋器與編譯器,隻支援純的c語言,不支援c++ ,是以,我們要在前面加“extern "c"”将函數轉義成純的c語言。
mydll.cpp
選擇“工具”菜單---組建[mydll.dll] 或直接按f7程式進行編譯。
編譯完成後,提示沒有錯誤與警告,說明我們成功了!
在loadrunnre中調用動态庫
下面打開我們的loadrunner 的vugen ,寫入下面代碼。
vuser_init 部分
action部分
運作結果:
從上面的代碼看出。我們的loadrunner中并沒有對資料進行計算,真正計算的代碼是調用dll函數庫的代碼。這樣就大大增強了loadrunner的能力,而這種方式也使我們測試結果更加準确。雖然上面代碼簡單。但這無疑是一種擴充思路。