軟件測試自動化之- API Test


API測試


 

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

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

為了將待測的程序和用於測試它們的測試套件(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自動化測試的流程:


 

1、准備測試用例數據,最好是獨立於測試套件,可以存放在txt文件 ,XML文件和數據庫,以便多個測試套件重復使用。這里我准備好了

測試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

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

2、讀入測試用例數據

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

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

c.方案 

View Code

3、解析測試用例

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

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

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

4、把數據轉換為合適的類型

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

b.看下面的整理代碼

5、判定測試用例通過與否

a.如何判定API測試用例是否通過

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

c.具體代碼看下面

6、記錄測試用例結果

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

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

c.代碼實現看下面

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

 

View Code

8、通過計算對測試結果進行總結

9、獲得測試的總運行時間

 

    用DateTime TimeSpan可以實現

 

10、處理輸入為空或者期望值為空的情況--NULL

 

11、處理“方法拋出異常”的情況

12、處理輸入參數為空字符串的情況

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

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

 

14、自動運行測試套件

 

用.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自動化測試介紹基本完畢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM