[TOC]
測試是檢查應用程序的功能的過程是否按要求工作,在開發人員層面進行單元測試,在采取適當措施來測試每一個實體(類或方法)以確保最終產品符合要求。單元測試是非常必要的,這是軟件公司向他們的客戶提供高質量的軟件產品必要前提。
JUnit讓開發人員了解測試的實用性,尤其是在單元測試這一模塊上比任何其他測試框架都要簡單明了。憑借一個相當簡單,務實,嚴謹的架構,JUnit已經能夠“感染”了一大批開發人員。
<br>
<br>
**JUnit缺點:**
* 最初的設計,使用于單元測試,現在只用于各種測試。
* 不能依賴測試
* 配置控制欠佳(安裝/拆卸)
* 侵入性(強制擴展類,并以某種方式命名方法)
* 靜態編程模型(不必要的重新編譯)
* 不適合管理復雜項目應用,JUnit復雜項目中測試非常棘手。
## **Testng**
### 簡介
在設計接口測試框架或者UI自動化框架的時候,大概率都會用到testng這個框架,本篇主要介紹testng這個框架的使用。
官方文檔:[http://testng.org/doc/index.html](http://testng.org/doc/index.html)
## testng的特點
* 注解功能
* TestNG使用Java和面向對象的功能
* 支持綜合類測試(例如,默認情況下,沒有必要創建一個新的測試每個測試方法的類的實例)
* 獨立的編譯時間測試代碼運行時配置/數據信息
* 靈活的運行時配置
* 主要介紹“測試組”。當編譯測試,只要問TestNG運行所有的“前端”的測試,或“快”,“慢”,“數據庫”等
* 支持依賴測試方法,并行測試,負載測試,局部故障
* 靈活的插件API
* 支持多線程測試
## Testng與postman的異同
相同點:
1)都能做接口測試
2)都能存儲接口服務request、assert
不同點:
1)語言不同:testng基于java腳本語言、而postman基于ui-vue腳本語言
2)拓展性不同:postman的CI集成以及擴展封裝都需要單獨的開發新的項目兼容postman本生的框架語言。
testng只是一個測試框架的引用,其他都允許自定義封裝集成。
由于testng的成熟,許多CI都自動集成和兼容。
## MacOS IDEA配置Testng
1、安裝TestNG插件(IntelliJ IDEA-Preferences-Plugins)
:-: 
輸入testng,點擊install(我之前已經裝過了,所以是Installed)
:-: 
2、添加testng.xml文件:點擊項目名,選擇Creat TestNG XML(如果沒有看到 Creat TestNG XML 這個選項,可以重啟idea,如果還沒有,重復第3步重新安裝testng插件,多嘗試幾次)or 等待2分鐘
:-: 
3、添加測試類:選擇一個需要測試的類,選中類名點擊?option+enter?選擇 Create Test
:-: 
Testing library選中TestNG,選擇需要的選項,點擊ok(可能會提示“TestNG library not found In the module”,是因為沒有在pom.xml文件中,寫入TestNG插件的依賴,點擊下圖的“Fix”按鈕,即可自動添加)
:-: 
- Java自動化測試
- 第一章:Java:基礎內容
- 1.1:Java:Hello Word
- 1.2:Java:熱身
- 1.3:Java:注釋
- 1.4:Java:標識符
- 1.5:Java:常量
- 1.6:Java:基本數據類型
- 1.7:Java:引用類型
- 1.8:Java:String類
- 第二章:Java:運算符
- 2.1:Java:算數運算符
- 2.2:Java:關系運算符
- 2.3:Java:邏輯運算
- 2.4:Java:賦值運算符
- 2.5;Java:三元運算符
- 2.6:Java:位運算符
- 第三章:Java:循環控制語句
- 3.1:Java:for循環
- 3.2:Java:while循環
- 3.3:Java:switch
- 3.4:Java:if else
- 3.5:Java:練習題
- 第四章:Java:函數與全局/局部變量
- 4.1:Java:局部變量
- 4.2:Java:全局變量
- 第五章:Java:方法
- 5.1:Java:初識方法
- 5.2:Java:方法調用
- 5.3:Java:方法重載
- 5.4:Java:構造方法
- 5.5:Java:方法的注意事項
- 第六章:Java:面向對象
- 6.1:Java:小案例
- 6.2:Java:this 關鍵字
- 6.3:Java:super 關鍵字
- 6.4:Java:static 關鍵字
- 6.5:Java:final關鍵字
- 6.6:Java:instanceof 運算符
- 6.7:Java:面向對象之封裝
- 6.8:Java:面向對象之繼承
- 6.9:Java:面向對象之多態
- 第七章:Java:面向對象高級進階
- 7.1:Java:抽象類
- 7.2:Java:Java中String類
- 7.3:Java:interface接口
- 7.4:Java:ArrayList
- 7.5:Java:HashSet
- 7.6:Java:HashMap
- 7.7:Java:反射(reflection)
- 第八章:Java:日志以及異常捕獲
- 8.1:Java:log4j
- 8.2:Java:異常初識基礎
- 8.3:Java:未被捕獲的異常
- 8.4:Java:try和catch的使用
- 8.5:Java:多重catch語句的使用
- 8.6:Java:throws/throw 關鍵字
- 8.7:Java:finally關鍵字
- 8.8:Java:自定義異常
- 第九章:Java:xml and IO
- 9.1:Java:IO基本概念
- 9.2:java:properties
- 9.3:Java:xml基本介紹
- 9.4:Java:xml操作實例
- 第十章:Java:JDBC編程
- 10.1:Java:JDBC介紹
- 10.2:Java:JDBC查詢
- 10.3:Java:JDBC插入
- 10.4:Java:Batch
- 10.5:Java:JDBC連接池
- 第十一章:Java:TestNG
- 11.1:java:TestNG簡介
- 11.2:Java:TestNG小實例
- 11.3:Java:TestNG.xml文件配置
- 11.4:Java:TestNG基本注解
- 11.5:Java:TestNG注解代碼
- 11.6:Java:TestNG預期異常
- 11.7:Java:TestNG忽略測試
- 11.8:Java:TestNG超時測試
- 11.9:Java:TestNG分組測試