接口自動化:HttpClient + TestNG + Java(一) - 接口測試概述+自動化環境搭建


1.1 接口測試簡介

1.1.1 什么是接口測試

開始學習接口自動化測試之前,我們先要來了解什么是接口,以及什么是接口測試。

我們都知道,測試從級別上划分可以分為

  • 組件測試
  • 集成測試
  • 系統測試
  • 驗收測試

其中在集成測試這個階段,一個最主要的測試活動就是接口測試。在組件測試中,我們對單個組件自身的功能性能等指標進行驗證,上升到集成測試級別,我們則進一步去驗證組件之間的交互和集成。而組件之間的交互,就是通過‘接口’來達成的。所以一定程度上,集成測試和接口測試概念是大幅度重疊的。(就組件集成/接口測試而言,其實還有系統集成測試)

比如在主流的web項目中,前端和后端之間的交互,就要通過接口,也是我們這個系列要應對的主要任務。

 

1.1.2 為什么要做接口測試

我經常喜歡用一台汽車做為例子來講述組件,集成和系統測試之間的關系。

比如,現在有一台汽車需要做質量檢測,那么我們可以怎么測試?

  • 組件測試 - 測試這台汽車的各個部件(如發動機、底盤、變速箱、制動器、轉向系統、輪轂輪胎)
  • 集成測試 - 測試這台汽車各部件之間的聯動(變速箱如何控制發動機的運作?轉向系統如何對輪轂產生影響?)
  • 系統測試 - 測試這台汽車做為一個整體的功能性能

有一個疑問是,難道我在系統測試這個級別,就不能測試上述例子中的“變速箱如何控制發動機的運作”指標嗎?其實一定程度而言是可以的,這也是為什么在過去一段時間內,其實大量的測試人員是被堆積在系統測試級別的。但隨着我們的行業越來越發展,測試理念越來越先進,測試人員的技能儲備也更加豐富,現在的IT項目中已經越來越重視測試的左移和測試的深度。

接口測試在筆者看來,其最大的好處莫過於如下兩點:

 

1.  可以盡早的讓測試介入項目,更早的發現和解決問題。比如在整體系統還未開發完畢時,部分接口其實已經可供測試了。

2.  可以從更底層的角度進行測試,從而彌補系統測試級別容易忽略和難以觸發的一些測試。

 

完備的接口測試可以給項目質量帶來遠超系統測試的收益,參考測試金字塔理論:

 

 

1.1.3 HTTP請求的類別

本系列會主要應對是http類型的接口測試。

我們先通過一個表格來列舉出8種http請求的類別定義,具體請求方法的實際應用我們在后續的自動化實例中再進一步探討。

 

在實際工作中,最常見的是GET以及POST方法。

 

1.2 接口自動化工具准備

1.2.1 必備工具

 要搭建http接口測試環境,我們需要以下的東西:

  •  JDK:推薦使用1.8
  •     集成開發環境:這里我們使用eclipse
  •     自動化構建管理:Maven
  •     其他相應的依賴包我們通過maven管理

1.2.2 JDK的安裝

JDK的下載安裝和環境變量配置網上有大量教程,本文不再贅述。

1.2.3 Eclipse的安裝

eclipse的安裝也非常簡單,本文不再贅述。

1.2.4 Maven的安裝

Maven的下載安裝和環境變量配置網上有大量教程,本文不再贅述。

 

以上不再贅述的部分如果遇到問題,歡迎留言我會跟進:)

 

1.3 接口自動化項目

在eclipse中新建一個maven項目MavenAPIProject,打開項目自帶的pom.xml文件,加入以下依賴信息:

   <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.2</version>
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.testng/testng -->
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.8</version>
        <scope>test</scope>
    </dependency>

修改完畢后保存,就可以看到eclipse會在后台開始去自動下載並添加以上所有項目依賴的jar包。

我們現在主要引入的是httpclient、httpcore以及testNG三個依賴包:

  • httpclient是一個高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,我們用它來創建和管理請求;
  • HttpCore是對HTTP協議的基礎封裝的一套組件,我們測試接口過程中會用到其中的底層網絡方法;
  • testNG是一套單元測試框架,為我們提供測試入口和測試組織。

后續如果用到其他依賴包我們再去添加。 

 

下一篇我們就開始寫第一個get方法請求的接口自動化測試用例。


免責聲明!

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



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