Java+TestNG+Maven+Jenkins實現接口自動化測試全教程

發表于:2020-4-24 08:37  作者:王東   來源:51Testing軟件測試網原創

字體: | 上一篇 | 下一篇 |我要投稿 | 推薦標簽: Jenkins 接口測試 自動化測試

  第一章 概述
  隨著移動互聯網的逐漸普及,越來越多的人在手機中安裝和使用APP,APP的用戶體驗對于其廠商來說就顯得尤為重要。有個常識大家肯定知道:APP一般是通過HTTP/HTTPS協議的接口來獲取所需的數據和相應的業務邏輯,所以接口測試的重要性越來越凸顯。
  由于當前市場競爭的加劇,很多APP發版周期變得越來越短,3-4天就發一次版也很平常了。這種情況下,自動化測試就體現出其價值和優勢來了。相比手工測試,自動化測試快速高效,測試結果可靠可信,不會因不同人員測試而給出不同的測試結果。
  說起自動化測試,可能很多人首先想到的就是模擬人工測試的GUI自動化測試。但總結本人近些年的測試實踐,個人認為接口自動化測試比GUI自動化測試有更大的意義和重要性。
  相比GUI自動化測試,接口自動化測試主要有以下三個優勢:
  1.構建成本低:只需要根據給出的參數,執行后判斷是否與預期結果一致即可;而GUI自動化測試則需要安裝和配置好較為復雜的測試環境,其學習成本和學習曲線也更高;
  2.穩定性高:接口測試針對的是API,沒有圖形界面,不會受到圖形界面中元素變化因素的困擾,所以測試腳本相對比較穩定;而GUI自動化測試針對的是圖形界面,而這部分變化是較頻繁的,這也意味著對應的GUI自動化測試腳本經常需要修改以適應新的圖形界面;另外,GUI自動化測試技術本身就比接口自動化技術更為復雜,GUI自動化測試過程中可能會經常出現一些莫名其妙的錯誤,其實這也很容易理解,接口測試畢竟屬于相對底層的測試,復雜性較低,當然出錯的概率也低了,來看下著名的測試金字塔大家就更容易理解了;
  3.速度快:執行一個接口自動化用例腳本可能不用一秒鐘,但執行一個GUI自動化用例腳本至少需要5秒以上,當用例數量增加時,這種差別將非常明顯。
  所以多開展接口測試,并且結合現在廣為使用的持續集成工具Jenkins實現接口測試的全過程自動化無疑是一個值得探索和嘗試的自動化測試實踐。
  第二章 HttpClient和TestNG簡介
  因為本人更熟悉和偏愛Java,所以選用了Java語言作為接口用例腳本編寫的語言。雖然現在很多人使用Python語言編寫自動化測試腳本,但個人覺得Python語言不如Java語言嚴謹(Python是弱類型,Java是強類型),出現變量類型錯誤不容易被發現,當代碼量較大時(大于1000行以上),使用Java無疑效率更高(呵呵,歡迎反對的同學來噴)。
  因為選擇了Java,所以采用了Apache的開源框架HttpClient作為接口調用的底層框架。
  HTTP 協議是現在 Internet 上使用得最多、最重要的協議了,越來越多的  軟件需要通過 HTTP 協議來訪問網絡資源。雖然在 JDK 的 java net包中已經提供了訪問 HTTP 協議的基本功能,但是對于大部分應用程序來說,JDK 庫本身提供的功能還不夠豐富和靈活。HttpClient 是 Apache Jakarta Common 下的子項目,用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包,并且它支持 HTTP 協議最新的版本和建議。
  HttpClient和瀏覽器有點像,但卻不是瀏覽器。它是一個HTTP通信庫,因此它只提供一個通用瀏覽器應用程序所期望的功能子集,最根本的區別是HttpClient中沒有用戶界面。HttpClient只能以編程的方式傳輸和接受HTTP消息。
  HttpClient的主要功能:
  1.實現了所有 HTTP 的方法(GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS、CONNECT和PATCH);
  2.支持 HTTPS 協議;
  3.支持代理服務器(Nginx等);
  4.支持自動(跳轉)轉向.
  在測試框架的選擇上,果斷選擇了TestNG,雖然本人JUnit也用過,但確實TestNG的功能比JUnit強大許多。為哈?因為TestNG就是在JUnit的基礎上發展起來的啊。
  第三章 在Eclipse中新建一個Maven項目
  3.1必備工具安裝
  3.1.1 JDK:使用Java編程,JDK必須安裝和配置好。建議下載和安裝JDK 1.8, 網上有很多相關資料和教程,這里略過。
  3.1.2 Eclipse:進行Java編程的IDE(集成開發環境),能大幅度提高工作效率。建議安裝最新版本(最新版本應該已經包含了Maven插件,無需在Eclipse中再安裝和配置Maven插件)。網上有很多相關資料和教程,這里略過。
  3.1.3 Maven:可自動下載Java項目相關的Jar文件,自動打包測試等,是Java編程人員必備神器。建議安裝最新版本,網上有很多相關資料和教程,這里略過。
  3.2 在Eclipse中新建一個Maven項目
  雙擊Eclipse圖標,然后新建一個Maven項目。



版權聲明:本文出自《51測試天地》第五十七期。51Testing軟件測試網及相關內容提供者擁有51testing.com內容的全部版權,未經明確的書面許可,任何人或單位不得對本網站內容復制、轉載或進行鏡像,否則將追究法律責任。

【福利】填問卷送精選測試禮包+接口測試課程!為測試行業做點事!

評 論

論壇新帖

頂部 底部


建議使用IE 6.0以上瀏覽器,800×600以上分辨率,法律顧問:上海瀛東律師事務所 張楠律師
版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2020, 滬ICP備05003035號
投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

滬公網安備 31010102002173號

51Testing官方微信

51Testing官方微博

掃一掃 測試知識全知道

日本av