天天看點

LoadRunner使用動态連結庫技術

什麼是動态庫?

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

LoadRunner使用動态連結庫技術

  我們都知道,我們在程式設計時會調外部庫函數,因為程式的中許多代碼都是可以複用的,調用外部函數就大大的簡化了我們的工作量。代碼編寫完成後,需要編譯才能運作,在編譯的過程中,會把程式中調用的函數庫加載到記憶體裡。這就是靜态連結方式。

  假如有一個函數庫,a程式要使用它,然後把函數庫的内容全部加載自己的程式中。b程式也要使用這個函數庫,b程式也把函數庫的内容也全都加載到自己的程式中;這樣同樣一個東西重複出現在多個程式中,就會造成是種記憶體的浪費。是以,我們把被多個程式調用的函數放在一個公其的地方,就這一份。誰需要誰調用。這就是動态連結方式。

loadrunner為什麼要使用動态庫? 

  dll最重要的一個特點就擴充應用程式的特性。 再強大的工具也有不是萬能的,通過調用動态庫的方法極大地增強loadrunner的功能。當你在用loadrunner對于某些需求的測試感鞭長莫及時,這也是一種思路或方式。

使用動态庫方法                                                                       

建立一個動态庫

  動态連接配接庫支援所有windows下的程式設計。 vb、dephi、c#、c/c++等。我們這裡用vc++進行示範。

下面通過vc++ 6.0中文版來建立一個動态函數。

打開vc++ 6.0,建立一個工程,這裡先擇工程類型為“win32 dynamic-link library”,起一個工程名稱,并選擇好存方位置。

LoadRunner使用動态連結庫技術

點選“确定”按鈕,會詢問你希望建立什麼類型的dll?

我們選擇第三項“一個可以導出某些符号的dll工程(d)”

點選确定,系統會給我們建立兩個檔案mydll.h和mydll.cpp

LoadRunner使用動态連結庫技術

分别對兩個檔案進行編寫代碼

mydll.h

因為我們的loadrunner 的vugen是一個c語言的解釋器與編譯器,隻支援純的c語言,不支援c++ ,是以,我們要在前面加“extern "c"”将函數轉義成純的c語言。

mydll.cpp

選擇“工具”菜單---組建[mydll.dll] 或直接按f7程式進行編譯。

編譯完成後,提示沒有錯誤與警告,說明我們成功了!

在loadrunnre中調用動态庫

  下面打開我們的loadrunner 的vugen ,寫入下面代碼。

vuser_init 部分

 action部分

運作結果:

  從上面的代碼看出。我們的loadrunner中并沒有對資料進行計算,真正計算的代碼是調用dll函數庫的代碼。這樣就大大增強了loadrunner的能力,而這種方式也使我們測試結果更加準确。雖然上面代碼簡單。但這無疑是一種擴充思路。

繼續閱讀