DLL接口自動化測試總結

1. DLL接口測試方法介紹

在最近測試的項目中,系統給業務端提供DLL文件,業務端經過DLL文件中的C++接口實現系統功能,這就須要對DLL中的C++接口進行詳細功能測試。 本文主要介紹項目測試中使用的DLL接口測試方法及基於AutoIT實現的DLL接口自動化測試方法。node

 1.1 VS2005

經過VS2005能夠直接加載DLL文件中的C++接口,模擬業務端調用,傳遞一些參數值從而驗證接口返回碼等功能是否正確接口。這部分代碼,相似與白盒測試中編寫的驅動模塊,須要有必定的C++編程基礎。 項目初期就是請開發人員按照這種方法編寫demo進行測試的,功能相對比較簡單,能夠正常完成接口的功能測試,但同時存在測試執行相對複雜、效率不高的問題(下圖)。編程

1.2 Loadrunner

中間也調研了Loadrunner加載DLL文件C++接口的方法,以下:函數

  • 新建Loadrunner腳本,協議選擇C Vuser 
  • 定義接口中的參數,並進行賦值
  • 使用lr_load_dll函數加載DLL 
  • 根據接口文檔中的函數說明,便可正常調用DLL接口

  • 將接口輸入參數進行參數化,能夠批量調用接口進行測試

  • 定義一個參數保存預期的結果,調用接口獲得接口返回值與其比較,判斷成功與失敗。以下圖定義的預期結果參數IDExRes與IDRes比較:

  • 定義循環的次數,可一次執行屢次測試,實現自動化測試,經過日誌便可查看測試結果

1.3 AutoIT

AutoIT調用DLL接口方法基本與Loadrunner類似:工具

  • 首先使用DllOpen函數,加載DLL 
  • 以後定義接口中的參數,並進行賦值
  • 而後使用DllCall函數,調用DLL中的接口
  • 最後經過DllClose關閉已打開的DLL文件

2. AutoIT DLL接口自動化測試方案

使用AutoIT,經過操做Excel用例,讀取表格中的參數輸入值和指望結果,經過與調用接口獲得返回碼進行比較,能夠完成DLL接口自動化測試。測試

2.1 基本邏輯

2.2 配置文件設計

config.ini配置文件,主要配置了版本號、接口名稱、參數個數及類型等信息,示例文件以下:ui

[Version]
Version=Build#1032
[DFSInitDll]
DFSInitDll =5
defName=const char*
nodeIP=const char*
nodePort=int
nodeName=const char*
nodePwd=const char*

2.3 測試用例設計

測試用例表格是根據平臺測試組通用的測試用例模版修改而來,主要是增長了詳細的輸入參數列,工具執行時根據讀取這些數據做爲接口的輸入參數。spa

2.4 代碼設計

AuotIT腳本簡單來講,能夠說是一個個函數堆起來的。本腳本里使用了一些自定義函數,以下:設計

代碼編寫總體邏輯與設計一致,即首先從配置文件獲取相關配置,讀取Excel獲取輸入數據,調用DLL接口,保存結果至Excel中。日誌

2.5 存在的不足

使用AutoIT編寫接口自動化腳本過程當中發現仍然存在一些侷限及不足之處:接口

  • 對於異常或存在必定的邏輯關係的用例,很難開發作到能夠統一處理,因此工具對於接口用例暫時沒法作到100%覆蓋
  • AutoIT打開非文本文件讀取內容後,調用接口傳輸的16進制數據轉化成了文本,上傳後文件內容不正確(暫時只能實現txt文本文件的上傳)

3. 總結

使用了三種方法測試DLL接口,對比總結以下:

  • 使用VS 2005直接測試接口,適合在時間比較緊的狀況下進行使用。該方法建議由開發人員編寫相應的驅動代碼,測試人員進行執行。測試使用易用性及效率通常
  • 使用Loadrunner,測試人員能夠快速便捷的根據接口設計文檔,調用相關接口(相似WebService接口測試工具Webservice Studio),在對相應的參數進行參數化後能夠進行"半自動化測試",節省很多時間
  • 使用AutoIT編寫自動化測試工具,功能比較完善,能夠進行完整的自動化測試。但工具編寫相對繁瑣與耗時,實際對測試工做效率提高有限
相關文章
相關標籤/搜索