對接口自動化測試的幾點思考(一)

在自動化的測試體系中,目前應用的比較多,包含了UI自動化測試和接口自動化測試,在UI的自動化測試中使用最廣泛的是Selenium框架,移動端是Appium,接口自動化測試方面選擇性比較多。一個測試團隊在技術選型上在我看來相當的重要,因爲一個技術的選擇,它決定了研發效率,測試的工作主要是兩點,第一點是產品質量管理,關於產品質量部分,可以通過測試策略和測試分析得出什麼應該測試,什麼不應該測試,當然這是下一個測試技術發展的方向,不在今天的討論範圍內。第二點是工程效率,在測試這邊就是測試效率。那麼如何來提高測試效率了?

UI自動化測試有它存在的必然價值和意義,但是在互聯網時代和物聯網的快速迭代,快速快捷的開發模式中,唯一的不變是變化,那麼測試團隊如何來應對這個形式,這就值得有的討論。產品的不斷變化,UI的不斷調整,產品的快速迭代,UI自動化測試明顯跟不上這個節奏,即使使用了頁面對象設計模型,但是還是無法滿足需求。在測試的金字塔模型中,UI自動化測試的比例實際上並不高,見如下的截圖:

在這個模型中,越往下比例會佔的越高,也就是說在一個產品測試中,單元測試比例是最高的,依次是接口測試和UI自動化測試。基於現實的考慮,特別是在一個公司中,開發語言特別的多,比如本人所在的公司就有go,python,php等語言開發,當然還有js,對於測試來說做單元測試不是很理想,那麼就只有接口測試了。所以交互層的測試是需要投入的,但是儘量投入比較少的時間去測試,把更多的時間放在應用測的測試。

目前是開發模式基本是前後端分離,也要求測試掌握接口測試的知識,掌握接口測試的知識不是單純的說會一點抓包工具,會個postman就說可以會接測試,首先需要了解HTTP協議的相關知識,以及搞明白什麼是cookie,什麼是session和什麼是token,以及cookie,session,token之間的區別是什麼?明白客戶端與服務器之間的請求流程是什麼?這些知識點都是做接口自動化測試是必須要掌握的知識點。

HTTP的協議是基於應用層的協議,它不需要考慮網絡傳輸層的事情,另外HTTP協議是無狀態的協議,也就導致了cook了技術的發展。當打開google後,返回了google的首頁,或者說客戶端發送請求給服務端,服務端響應回覆給客戶端,這個請求的過程具體爲:

具體可描述爲:

1、客戶端與服務端之間建立TCP的連接;

2、發送HTTP請求,也就是客戶端發送Request請求;

3、返回HTTP結果,也就是說服務端Response回覆客戶端;

4、關閉TCP的連接。

如上信息就是一個完整的基於HTTP的請求流程,不管是基於目前前後端分離的開發模式還是開發提供的API,都是可以通過基於HTTP的請求流程來進行接口自動化的測試。在接口自動化測試中需要掌握的知識除了python語言外,還需要HTTP協議,POSTMAN測試工具,Jmeter測試工具,requests庫,序列化與反序列化等知識。想參加第五期接口自動化測試的同學可加QQ:2839168630

在快速迭代又要求高質量產品的一個環境中,測試只能快,要麼就是無休止的加班,但是即使這樣也不一定產品質量就是讓領導滿意的。而接口自動化測試也是可以滿足這個趨勢,另外在整個接口層開發改東的相對來說比較少,變化少,可以更加高效的投入時間在應用層的測試,少投入時間去測試交互層。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章