1. 程式人生 > >TestNG 搭建測試框架 自動化測試

TestNG 搭建測試框架 自動化測試

準備 request 可用 jar 文本文件 網址 user ext 接口協議

框架層級及基本組件: 參考:https://www.cnblogs.com/jier888/p/8998724.html

Java作為開發語言

Maven管理項目及Jar

Testng作為測試框架,管理測試用例集,生成測試報告

Selenium為測試工具

Testng被選為測試框架的優點

靈活的測試配置

測試用例可以更容易地進行分組

可以使用TestNG實現測試並行

支持數據驅動測試

內置的報告

註釋可以幫助我們來組織使測試更容易

技術分享圖片

8.1 介紹框架層級及基本組件

框架層級及基本組件:

Testng的使用

Eclipse安裝testng插件,便可支持testng語法

1.啟動Eclipse,選擇“Install New Software”

2.輸入網址為“http://beust.com/eclipse”,然後單擊“Add”

3.打開添加存儲庫對話框輸入名稱為“TestNG”,然後點擊“OK”

4.點擊“全Select All”和“TestNG”將被選擇

5.檢查被選中項目,然後單擊“Next”,一直點擊next,知道finish,安裝好重啟eclipse即可

IntelliJ IDEA自帶testng插件

8.2 數據驅動及數據腳本分離

數據驅動及數據腳本分離:

數據驅動測試:從數據文件(如Excel文件、文本文件、XML文件或數據庫等)中讀取測試數據,然後通過變量傳入事先編寫或錄制好的測試腳本中,這些變量既可傳遞測試輸入數據也可傳遞測試輸出的驗證數據。測試數據只出現在數據文件中,測試腳本負責測試邏輯業務過程、測試狀態以及數據文件讀取。

因此,測試數據和測試腳本是分開存放的。數據文件中的每一行表示一組測試數據,通過循環遍歷數據文件中的每一行,將數據逐一註入到相同的測試流程進行反復的測試驗證。

數據驅動的核心:從數據文件中讀取輸入數據,將數據與測試腳本分離,從而可以在不修改測試腳本的情況下通過更新測試數據完成對測試用例的增加、更改和刪除。通過變量的參數化,將測試數據傳入測試腳本,不同的數據文件對應不同的測試用例。

數據驅動及數據腳本分離案例:

技術分享圖片

8.3 對象封裝及共享使用

公共基礎類,對象封裝及共享使用

技術分享圖片

8.4 編寫和執行自動化測試腳本

編寫和執行自動化測試腳本

技術分享圖片技術分享圖片

8.5 查看和分析自動化測試報告

查看和分析自動化測試報告

Testng生成的測試報告目錄,默認啟動頁是target/surefire-reports/index.html

技術分享圖片

8.5 查看和分析自動化測試報告

查看和分析自動化測試報告

使用reportng優化後的報告如圖

技術分享圖片

10.1 常用API接口協議介紹

HTTP協議

超文本傳輸協議

它是用來在Internet上傳送超文本的傳送協議,運行在TCP/IP協議族之上,它可以使瀏覽器更加高效,使網絡傳輸減少。

任何服務器除了包括HTML文件以外,還有一個HTTP駐留程序,用於響應用用戶請求。

瀏覽器是HTTP客戶,向服務器發送請求,當瀏覽器中輸入了一個開始文件或點擊了一個超級鏈接時,瀏覽器就向服務器發送了HTTP請求,此請求被送往由IP地址指定的URL。駐留程序接收到請求,在進行必要的操作後回送所要求的文件。

Http協議接口請求的介紹

一個http請求報文由請求行(request line)、消息頭部(header)、空行、請求正文四部分組成;

1、請求行

請求行由請求方法字段、URL字段和HTTP協議版本字段,組成,它們用空格分隔,例如:GET /index.html HTTP/1.1

HTTP協議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這裏介紹最常用的GET和POST方法;

GET:當client要從server中讀取文檔時,使用GET方法。GET方法要求服務器將URL定位的資源放在響應報文的數據部分,回送給client。使用GET方法時,請求參數和對應的值附加在URL後面,利用一個問號(“?”)代表URL的結尾與請求參數的開始,傳遞參數長度受限制,例如: /index.jsp?id=100&op=bind

POST:當client給服務器提供信息較多時, 使用POST方法。POST方法將請求參數封裝在HTTP請求數據中,以key/value的形式出現,可以傳遞大量數據,可用來傳遞文件。

2、消息頭部

請求頭部由key/value鍵值對組成,每行一對,key和value用冒號":"分隔,請求頭部通知服務器有關於client端的請求信息,典型的請求頭:

User-Agent:產生請求的瀏覽器類型

Accept:client端可識別的內容類型列表

Host:請求的主機名,允許多個域名同處一個ip地址,即虛擬主機    

3、空行

最後一個請求頭之後是一個空行,發送回車符和換行符,通知服務器請求頭結束。對於一個完整的http請求來說空行是必須的,否則服務器會任務本次請求的數據尚未完全發送到server,處於等待狀態

4、請求正文

請求數據不在GET方法中使用,而是在POST中使用。POST方法適用於需要client填寫表單的場合,與請求數據相關的最常用的請求頭是Content-Type 和Content-Length

Http協議接口返回狀態代碼介紹

常見狀態代碼、狀態描述、說明

200 OK //客戶端請求成功

400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解

401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用

403 Forbidden //服務器收到請求,但是拒絕提供服務

404 Not Found //請求資源不存在,eg:輸入了錯誤的URL

500 Internal Server Error //服務器發生不可預期的錯誤

503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間後,可能恢復正常

Http協議接口實體報頭介紹

請求和響應消息都可以傳送一個實體。一個實體由實體報頭域和實體正文組成,但並不是說實體報頭域和實體正文要在一起發送,可以只發送實體報頭域。實體報頭定義了關於實體正文(eg:有無實體正文)和請求所標識的資源的元信息。

Content-Type實體報頭域用語指明發送給接收者的實體正文的媒體類型

如:Content-Type:text/html;charset=ISO-8859-1

Content-Type:application/json;

Content-Type:application/soap+xml;

Content-Type:application/x-www-form-urlencoded

HTTPS協議

超文本傳輸安全協議

它是由Netscape開發並內置於其瀏覽器中,用於對數據進行壓縮和解壓操作,並返回網絡上傳送回的結果。

HTTPS實際上應用了Netscape的完全套接字層(SSL)作為HTTP應用層的子層。(HTTPS使用端口443,而不是象HTTP那樣使用端口80來和TCP/IP進行通信。)SSL使用40 位關鍵字作為RC4流加密算法,這對於商業信息的加密是合適的。HTTPS和SSL支持使用X.509數字認證,如果需要的話用戶可以確認發送者是誰。

SOAP協議

簡單對象訪問協議

它是交換數據的一種協議規範,是一種輕量的、簡單的、基於XML(標準通用標記語言下的一個子集)的協議,它被設計成在WEB上交換結構化的和固化的信息,SOAP使用基於XML的數據結構和超文本傳輸協議(HTTP)的組合定義了一個標準的方法來使用Internet上各種不同操作環境中的分布式對象。

技術分享圖片

SMTP協議

簡單郵件傳送協議

它是由源地址到目的地址傳送郵件的一組規則,用來控制信件中轉方式的一種協議。

SMTP使用的TCP端口號是25,接收端在TCP的25號端口等待發送端來的E-mail,發送端向接收方(即服務器)發出連接要求,一旦連接成功,即進行郵件信息交換,郵件傳遞結束後釋放連接。

技術分享圖片

SNMP協議

簡單網絡管理協議

它是專門設計用於在 IP 網絡管理網絡節點(服務器、工作站、路由器、交換機及HUBS等)的一種標準協議。

SNMP,由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema)和一組資源對象。該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何引起管理上關註的情況。

技術分享圖片

FTP協議

文件傳輸協議

它是一個標準協議,是在計算機和網絡之間交換文件的最簡單的方法,像傳送可顯示文件的HTTP和電子郵件的SMTP一樣,FTP也是應用TCP/IP協議的應用協議標準。

FTP通常用於將網頁從創作者上傳到服務器上供人使用,而從服務器上下傳文件也是一種非常普遍的使用方式。作為用戶,您可以用非常簡單的DOS界面來使用FTP,也可以使用由第三方提供的圖形界面的FTP來更新(刪除,重命名,移動和復制)服務器上的文件。

技術分享圖片

10.2 API 接口自動化測試的基本原理

基於HTTP協議的自動化測試基本原理

1.模擬請求url和報文,準備測試數據

2.模擬客戶端發送HTTP請求

3.模擬客戶端從服務器接收返回報文

4.驗證返回結果是否符合預期

技術分享圖片

TestNG 搭建測試框架 自動化測試