這篇隨筆主要是對比下筆者接觸過的3種接口測試工具,從實際使用的角度來分析下3種工具各自的特點
分別為:jmeter、postman、python的requests+unittest或requests+excel
1.利用jmeter進行接口測試
jmeter本身是一個基於java的性能測試工具,它可以自定義發送http請求,並根據響應結果進行斷言,所以借助jmeter自帶的一些元件便可以進行接口自動化測試。
大致思路就是將接口測試用例寫到一份csv文件中,然后構建jmeter腳本逐條讀取csv中的用例數據,結合ant生成測試報告,同時也可以結合jenkins實現自動定時執行腳本
特點:jmeter本身是一個功能強大的開源壓測工具,網上有很多相關的使用教程,即使不進行二次開發,僅針對接口測試的話,也可以達到預期的效果(能夠應對我們公司的大部分接口測試工作),基礎內容的學習成本不是很高;
但是編寫接口測試用例是一個耗時的工作,因為用例都寫在一份csv文件,如果請求參數過多,那么會產生很多組合情況,寫起來其實挺費勁的;
如果想更靈活地運用jmeter的話,需要一定的java功底,對jmeter的一些函數的使用做到心中有數才行,這個需要深入研究並在工作中實踐才好。
相關隨筆:https://www.cnblogs.com/hanmk/category/1037987.html
2.利用postman進行接口測試
postman只做一件事:網頁調試與發送網頁HTTP請求,所以它天然是一款做API自動化測試工具,而且公司的很多研發(無論前端還是后端)都喜歡用postman來進行調試工作
筆者在年初的時候研究過postman的詳細使用方法,並整理成了系列文章,也在組內進行了相關的技術分享(可以說是真愛了,哈哈)
用postman進行接口測試的大致思路就是以創建集合(Collections)的方式來對接口進行分類,然后對接口再進行細分,一個接口的一種參數組合情況寫一個請求,如下
如果是有關聯的接口,可以利用環境變量對其進行參數化,靈活運用Pre-request-Script標簽和Tests標簽,即可應對大部分接口測試需求,因為postman本身是基於JavaScript編寫的,所以你可以編寫js腳本來定制請求(即使是生成時間戳或者MD5 加密簽名)
特點:工具封裝的很好,網頁調試利器,單個調接口十分方便;對於沒有代碼基礎的人來說,新手可以很快熟悉postman的基礎使用方法,學習成本低;並且學會進階使用方法后可以應對公司的大部分的接口測試需求。
但是postman在批量執行接口時,生成的報告不太好看,結合Newman+jenkins生成的測試報告更丑
相關隨筆:https://www.cnblogs.com/hanmk/category/1366452.html
3.python的requests+unittest或requests+excel
先看一段簡介
也就是說我們可以利用requests庫來發送任何http請求,包括:get請求、post請求、put請求等等,所以我們可以用requests進行接口測試或者網絡爬蟲。
筆者分別使用python自帶的unittest單元測試框架和requests+excel的方式進行過接口測試,我們公司並沒有主推使用代碼來進行接口自動化測試,這里更多是自己的一種嘗試,主要是為了提高python應用能力。
特點:對於編程能力強的人,更喜歡自己編寫代碼來進行接口測試,無論是自己寫框架或是借助開源框架再根據業務進行二次開發也好,功能可以定制,用法也比較靈活;
不過這種方式對個人要求較高,最起碼要熟悉一門語言才好。這種方式也很難在整個組推廣,因為不可能叫所有人都去寫代碼,黑盒測試目前也還是不可或缺的(但這是每個測試人員努力的一個方向,成為一個既業務又懂代碼的測試人員)。
相關隨筆:https://www.cnblogs.com/hanmk/category/1185856.html、https://www.cnblogs.com/hanmk/category/1203663.html
總結
沒有最好的測試工具或方法,只有最適合的。根據實際業務情況進行選擇就好