軟件測試自動化之- API Test

API測試


 

從本質上來講,API測試是用來驗證組成軟件的那些單個方法的正確性,而不是測試整個系統自己.數據庫

API測試也被稱爲單元測試(Unit Testing), 模塊測試(Module Testing), 組建測試(Component Testing), 以及元件測試(Element Testing).api

爲了將待測的程序和用於測試它們的測試套件(test harness)系統區分開來,待測程序一般叫作SUT(System Under Test), AUT(Application Under Test) 或者IUT(Implementation Under Test)數組

一般來講,當待測函數或方法都位於DLL當中時,使用術語API測試.當待測方法位於某個類(固然,這個類可能做爲一個DLL來實現)中的時候,使用術語單元測試等更爲寬泛的術語.函數

API測試須要注意的點


 

  • 存儲用於測試用例的數據 (文本[自定義的序列化/反序列化,IOReaderWrter],XML[XmlSerializer],數據庫[ADO.net])
  • 讀入測試用例的數據
  • 解析測試用例
  • 運行測試用例
  • 斷定測試結果
  • 紀錄測試過程與結果
  • 給測試加上時間戳
  • 綜合總結測試結果
  • 紀錄測試總耗時
  • 處理輸入輸出特殊值(null,string.Empty,"",越界值)
  • 處理"方法拋出異常"
  • 發送郵件(Report)
  • 自動運行(.Bat, Task Schedule, Daily Build & Run)(TFS)

自動化測試相對於手工測試有如下優勢


 

  • Speed--快速地進行成千上萬個測試用例;
  • Accuracy--不受人爲的因素的干擾,例如記錄錯誤的結果;
  • Precision--每次都以一樣的方式運行;
  • Efficiency--晚上白天均可以進行測試;
  • Skill-Building--培養技能,手工測試很是枯燥乏味,提升不了技能。

待測方法的代碼以下:


 

View Code

 

好了,下面來介紹API自動化測試的流程:工具


 

一、準備測試用例數據,最好是獨立於測試套件,能夠存放在txt文件 ,XML文件和數據庫,以便多個測試套件重複使用。這裏我準備好了post

測試ID    待測方法    測試輸入  指望值單元測試

0001:ArihthmeticMean:4 8:8
0002:ArihthmeticMean:2 2:24
0003:ArihthmeticMean:4 8:8
0004:ArihthmeticMean:3 2:345.4
0005:ArihthmeticMean:55 555:555
0006:ArihthmeticMean:2 444:23234
0007:ArihthmeticMean:4 8:8
0008:ArihthmeticMean:2 2:24測試

實際測試時,須要成千上萬個測試用例數據,包括邊界值,空值,無效輸入。有些自動化測試工具能夠自動產生測試用例數據。ui

二、讀入測試用例數據spa

a.如何從測試用例文件中讀入讀入每條測試用例數據?

b.設計--經過while循環遍歷測試用例的每一行。

c.方案 

View Code

三、解析測試用例

a.如何解析出用字符串隔開的測試用例的各個字段

b.設計-使用string.Split()方法,該方法返回一個字符數組。具體使用去查查api

c.具體實現方案看接下來的代碼

四、把數據轉換爲合適的類型

a.讀入的是字符串類型,在這裏必須轉爲整型

b.看下面的整理代碼

五、斷定測試用例經過與否

a.如何斷定API測試用例是否經過

b.設計--調用待測方法,傳給它測試用例的輸入,獲得返回值,而後比較實際結構和測試用例中讀入的指望值是否一致

c.具體代碼看下面

六、記錄測試用例結果

a.如何把測試用例的結果存入獨立於測試程序的簡單文本文件

b.設計--在處理測試用例的主循環中,使用System.IO.StreamWriter對象把測試用例ID和測試結果寫到一個文本文件。固然能夠記錄到XML文件或者數據庫中,看須要

c.代碼實現看下面

七、給測試用例結果文件加上實際戳

 

View Code

八、經過計算對測試結果進行總結

九、得到測試的總運行時間

 

    用DateTime TimeSpan能夠實現

 

十、處理輸入爲空或者指望值爲空的狀況--NULL

 

十一、處理「方法拋出異常」的狀況

十二、處理輸入參數爲空字符串的狀況

1三、在測試用例失敗時發送警告郵件

      System.Net.Mail下的MailMessage類實現,很簡單

 

1四、自動運行測試套件

 

用.BAT文件能夠實現,用System.Diagnosis.Process命名空間下的Start()方法

  

在這裏,稍微實現了代碼

 

View Code

結果以下:


 

CaseID Result Method Details
===============================
0001  Pass  ArihthmeticMean  actual=8
0002 Fail ArihthmeticMean actual=2
0003  Pass  ArihthmeticMean  actual=8
0004 Fail ArihthmeticMean actual=3
0005  Pass  ArihthmeticMean  actual=555
0006 Fail ArihthmeticMean actual=444
0007  Pass  ArihthmeticMean  actual=8
0008 Fail ArihthmeticMean actual=2
===========================end test run===============
pass=4Fail=4

測試結果文件2011-3-26 16-01-02  testresult.txt,內容以下

0001  Pass  ArihthmeticMean  actual=8
0002 Fail ArihthmeticMean actual=2
0003  Pass  ArihthmeticMean  actual=8
0004 Fail ArihthmeticMean actual=3
0005  Pass  ArihthmeticMean  actual=555
0006 Fail ArihthmeticMean actual=444
0007  Pass  ArihthmeticMean  actual=8
0008 Fail ArihthmeticMean actual=2

 

至此,API自動化測試介紹基本完畢

相關文章
相關標籤/搜索