大家一般用什麼工具測試HTTP和json接口?

清ai小叄


做為一名開發者我用Postman。

在開發項目時前後端分離後,由於前後端在開發前已經定義好接口文檔,在開發階段都互不依賴,並行開發,最後聯調,後端在開發時需要模擬前端請求用來調試接口,這時Postman就派上用場了。

模擬各種請求

Postman可以模擬所有的http請求,比如模擬不同類型的header頭信息,正文以form-data或raw或application/json等方式發送,響應結果也可以用不同的方式查看。

預處理腳本

在接口請求前Postman可以調用一段js代碼,比如你的接口需要驗證token,可以把生成token的規則放到預處理腳本里,然後隨接口一塊兒發送。

接口分類管理

Postman可以保存你所有的接口,並且是雲同步的,你可以按目錄分類存放,並通過模糊搜索,快速找到想要的接口,這樣即便你擁有再多接口也不用擔心找不到問題。

環境變量

你可以按開發環境、測試環境、生產環境定義不同的環境變量,如分別在三個環境裡定義了接口的域名,然後在接口url地方直接用環境變量代替域名,就可以通過切換環境的方式來調試不同環境的接口。


程序員輝哥


相信每一個做後端接口開發的程序員,對於測試HTTP接口都相當熟悉了,因為日常工作中都必須用工具來自測開發的接口功能。

就拿我來說,我是近2年才開始做RESTFul的接口設計和開發工作,之前都是寫JUnit測試用例來測試自己的代碼,但後來發現用一些HTTP測試工具更簡潔高效,而且易於協作。下面就介紹下我自己常用的幾個測試HTTP接口的工具:

Postman

首先我先來簡單介紹下Postman,雖然在碼農的世界算是無人不知無人不曉,但其他行業的人估計就不太清楚了。

PostMan是一款功能強大的網頁調試與發送網頁HTTP請求的工具。postMan能夠發送任何類型的HTTP請求(GET, HEAD, POST,PUT..),附帶任何數量的參數和HTTP headers。支持不同的認證機制(basic, digest,OAuth),接收到的響應語法高亮(HTML,JSON或XML)。

PostMan既可以以chrome瀏覽器插件的形式存在,也可以是獨立的應用程序存在。

Postman功能非常強大,除了核心功能【測試HTTP接口】之外,還集中了本地分類存儲和雲端備份的功能,這2個功能工作中非常實用,極大提供工作效率。請求的接口url,header和body等等都通過google賬號同步到Google Drive中。

Collections就是分類存儲,下圖中可用看出,保存時除了填寫名稱和描述之外,還需要指定歸集到哪一個目錄下。

JMeter測試

JMeter是Apache旗下的使用Java開發,開源免費的測試工具,主要用來做功能測試和性能測試(壓力測試/負載測試),而且用Jmeter來測試Restful API, 非常好用。

HTTP接口測試的請求配置和請求結果如下圖所示:


其實測試HTTP接口的工具還有很多很多,但Postman和JMeter是最值得推薦給大家使用的,有什麼不懂的地方歡迎大家留言討論。


碼農胖哥


對於軟件工程師來講,RESTful API 無疑是每天都要接觸的東西。有一把趁手的調試工具會讓我們做起事來事半功倍,效率就是生命哈。

首先我是從業近十年的軟件工程師,從入行來一直都和網絡通信協議打交道,尤其是 HTTP。這些年使用過不少 GUI,Command-line 的工具來調試自己寫的和別人的 API。

對我來講,我對工具的要求不進要實用和符合習慣,更要美觀,美觀,美觀。對,沒錯,顏值就是生產力。試想一下,如果我們每天都要盯著醜陋的東西看,心情會怎樣?還有心情工作嗎?還怎麼創作?

下面分享一下我常在用的 RESTful API 調試工具。

Insomnia

首先它很漂亮,而且還可以自定義很多配色主題,每一款都很棒。

Debug APIs like a human, not a robot

這是 insomnia 的自我介紹,一個符合人類思維方式的工具,而不僅僅是一個冷冰冰的機器人。

在實際實用中,我們的項目往往會有好幾個環境,別入Port,Host等不同。這時候 Insomnia 的全局參數功能就非常實用。可以配置若干條環境變量參數,來區分不同的測試環境。

利用好 insomnia 的 workspace 和 environment 的概念可以輕鬆做到事半功倍,同時你也可以將你的配置導出給你同事等協作者,或者可以購買升級服務,直接開通團隊共享功能。

更詳細的內容你可以自行探索:

https://insomnia.rest

Command-line

對於那種臨時的調試需求我一般會用命令行還搞定,最常用的是 curl 這個命令,當 response 為 json 結構的字符串時,我會搭配 jq 這個命令來格式化 response。例如:curl

http://example.com

| jq


或者我會實用 httpie 這個命令。

在 MacOS 上這寫命令可以實用 homebrew 進行安裝:

brew install jq httpie


鬼碼師兄


目前有很多可以進行HTTP請求的測試工具,主流的有postman、swagger、restletClient、jmeter、SoupUI等。作為一名具備多年經歷的高級研發,一直在使用restletClient和postman,主力為restletClient。

restletClient是由谷歌開發,提供桌面應用程序以及chrome插件。也正因此,筆者基本一直只使用該工具,而postman只做備胎。在chrome上安裝插件,登錄賬號即可進行數據同步,隨時隨地使用,而且這個工具十分輕量化,不用安裝桌面應用也可使用。

postman則是絕大多數開發者在用的一款,對http的請求頭請求方式及body參數等設置也比較便捷,而且橘紅和褐色的搭配也很時尚,讓很多開發者成為其忠實用戶。

但是postman的瀏覽器插件相對restletClient來說略微有點沒那麼好用,所以筆者一直使用的是restletClient。

其餘的筆者使用較少,所以不在此贅述了,有喜歡討論分享的朋友可以留言,一起分享共同進步!


LetXGo


postman、jmeter、swagger

我們平時用的基本這三類

Postman使用簡單,參數Url請求頭請求體請求方式設置非常便捷,還要搜索結果緩存的機制,但是大多需要安裝一下,網上的所謂綠色版,大多也是安裝的,註冊表裡面都會有信息,只是使用步驟和普通軟件的安裝不一樣

swagger這個基本都是在springboot後臺工程中,需要後臺集成對應的依賴包,也是很方便的,優點是方法通過註解註釋,可以將具體的請求方式,請求參數,返回結果都在方法上顯示出來,更方便調用者查找使用

jmeter相對postman來說設置使用麻煩一些,我們這邊更多的是測試使用,也做一些自動化測試


西安石頭科技


具體選擇什麼樣的框架或者工具,取決於我們的測試複雜度,或者說取決於我們的測試需求(測試策略、深度、廣度)。


常見的接口測試工具及測試自動化測試框架

我們先介紹下現在主流的接口測試工具和框架。

接口測試工具

  • Postman:接口功能

  • Jmeter:接口性能、功能

  • Loadrunner:接口性能、功能

  • SoapUI:接口功能、性能、安全

接口自動化測試框架

  • 測試庫構架框架

  • 數據驅動的自動化測試框架
  • 關鍵字驅動的自動化測試框架

如何選擇

框架、工具的選擇是我們確認開展自動化後首先面臨的問題。之前網上有個梗,泡麵煮著吃是沒有靈魂的,當然這是一種調侃。自動化測試開展一定要結合被測系統的特點進行選擇,不顧被測系統(系統框架)特性、場景而盲目選擇自動化測試框架(或工具), 它是沒有靈魂的,自動化失敗概率會相對高很多。

如果我們的測試需求,只是進行接口的功能測試,需要使用一種方便的工具進行接口請求響應的驗證。如上介紹的四種接口測試工具,都可以考慮,如果是功能性驗證,推薦使用Postman、SoapUI,如果進行接口的性能測試,推薦使用Jmeter、Loadrunner。

如果我們的測試需求是希望對接口進行自動化測試,考慮到具體系統業務的複雜度,比如接口之間的依賴,業務場景的覆蓋。單獨就某一個接口進行測試,難以覆蓋真實的測試場景,因此需要考慮結合接口自動化測試框架來滿足我們的測試需求。

首先自動化測試框架更傾向於一種設計思想 ,這種思想指導工具的使用或者自研開發,並且不是隻能使用僅僅一種框架,結合被測系統本身特性一般是選擇多種測試框架的組合,來滿足測試和設計需求(開發、維護角度)。

這裡直奔主題,不錯多餘鋪墊,推薦使用Robot Framework關鍵字驅動的自動化測試框架進行接口自動化,通過自定義關鍵字的開發實現複雜的測試場景,需注意自定義關鍵字的易用性和可維護性。有興趣的可以關注下Httprunner接口自動化測試框架的設計思想,很不錯,指的學習和借鑑。


疑問:接口測試用例設計是隻針對一個個單接口測試,還是流程場景測試?

首先需要區分這裡的流程場景指的是業務流程場景,還是操作流程場景。

業務流程場景

業務流程場景一般指的是系統業務流程,類似於辦公流程,具有強流程性。

針對業務流程場景,接口的自動化用例是需要進行場景化設計的,一般常使用關鍵字驅動的測試框架+ python request模塊。

借鑑關鍵字驅動測試思想,把接口請求發送、響應校驗、響應內容返回(下一個接口依賴上一個接口,需返上一接口響應體),三部分封裝成"請求校驗"自定義關鍵字。

同時再封裝"內容提取"自定義關鍵字——提取接口響應體特定數據。這樣就可以獲取上一個接口返回中的特定數據作為下一個接口的輸入參數。

如此。任何業務場景都可以通過"請求校驗"自定義關鍵字 + "內容提取"自定義關鍵字 + "響應校驗"自定義關鍵字 +…

操作流程場景

操作流程場景一般指的是先使用哪個功能,再使用哪一個,沒有強制性的操作步驟規範,比如單一的查詢功能。

針對操作流程場景,則可以視情況,開展單一接口的自動化測試。現有的很多自動化框架、工具都適合此場景的自動化測試開發,在此不做擴展。


關於響應體為JSON的校驗方式

在測試工作中,一般都會接觸到期望結果數據與實際結果數據一致性比對的測試場景,對於複雜、龐大數據的比對工作。如果依靠人工執行,其成本相當高,難以保障執行結果的一致性(多次執行可能存在偏差),並且重複性極高。因此,通常我們需要考慮如何通過自動化工具實現數據的比對。

JSON的兩種數據結構

1.Key-Value對集合,在Python語言中可以理解為字典(Dict),如下圖。

2.有序集合,在Python語言中可以理解為列表(List),如下圖。


一致性校驗核心設計

在測試工作中接觸的Json數據校驗,大多是請求響應體的校驗,設計主要考慮了以下兩點:

1.需支持複雜JSON比對,如查詢地市編碼基本信息接口的響應體中包含,省份編碼、省份地市的基本信息(地市編碼、地市名稱、地市排序),例如 :

2.需支持比對結果的可追溯,比如地市數量(Count)不一致時,不能僅輸出期望、實際結果的地市數量,還需要輸出整個JSON的哪個節點的值不一致,或者缺失哪個節點,如Detail.Count的值不一致,例如:

[ERROR] ACTUAL-JSON ==> [Detail.Count]的VALUE不同: <actual>: 2 <expect>: 3/<expect>/<actual>


設計實現

一致性比對的整體設計包含三個模塊:遞歸解析模塊,格式轉換模塊,數據比對模塊,具體描述如下。

具體Python實現可以閱讀:《Python實現JSON數據的一致性校驗》https://www.toutiao.com/i6662316383423955468/



相關推薦閱讀:可關注我,閱讀《測試之術》專欄,其中對接口自動化測試設計、場景測試框架的介紹及Robot Framework使用都有詳細介紹,希望能夠對你有所幫助。


軟件測試開發技術棧


我最早做開發的時候直接去百度搜索http測試工具,後面用php的curl函數,但是現在比較偏多的使用的是postman工具。


postman介紹:


用戶在開發或者調試網絡程序或者是網頁B/S模式的程序的時候是需要一些方法來跟蹤網頁請求的,用戶可以使用一些網絡的監視工具比如著名的Firebug等網頁調試工具。今天給大家介紹的這款網頁調試工具不僅可以調試簡單的css、html、腳本等簡單的網頁基本信息,它還可以發送幾乎所有類型的HTTP請求!Postman在發送網絡HTTP請求方面可以說是Chrome插件類產品中的代表產品之一。


去瀏覽器安裝這個插件,通常來說chorme內核的都是訪問谷歌,可以採用一些騷操作,最好的話可以去搜索下辦法。


postman的工作界面


響應體示例: 響應的格式可以有多種,我這裡由於請求的是 百度,so, 響應的是 html ,一般情況下,我們自定義接口的話是 json格式的響應體


DT程序員林軍


接口測試在整個測試流程中有著很重要的作用,一般在項目初期就開始,也可以用於迴歸測試。接口測試的性價比要比UI測試的性價比高很多。特別是現在一個服務端對應多個客戶端的情況,web端、移動端、各種終端都離不開接口,所以接口數據的正確性關係到多有終端的正確性,接口測試意義重大,那麼工作中都用哪些工具進行接口測試呢?

1.postman、Jmeter 目前比較火的就是這兩款工具,簡潔輕量,博得很多測試人員的喜愛。postman是谷歌的一個插件,非常便捷。Jmeter是基於Java語言開發的,可模擬性強。當我們用兩款工具進行接口測試的時候,當真正的到企業級的時候,會發現軟件有點力不從心了,有些地方需要自己寫腳本了,工具自帶的無法實現或者實現太死板了,這就是工具的侷限性。所以,很多人開始寫腳本進行接口自動化測試了,如下。

2.純腳本實現,一般就是python語言或Java語言開發的,都需要藉助第三方庫,python藉助requests庫,而Java藉助httpclient庫。加上python的unttest測試框架,Java藉助於testNG框架,很容易組織測試用例。測試用例一般都是放在excel或者配置文件中管理的。

至於接口測試的細節另外開篇講述,這裡不便全部講述了,希望這些文字能對軟件測試感興趣的同學有所幫助。

如上就是我對接口測試工具的認識。

喜歡軟件測試的同學關注我哦,持續分享軟件測試知識。


雲端白鶴


作為一直在開發HTTP rest API接口的程序員丁哥來回答一下這個問題。

API測試的主要任務是看被開發的應用程序接口,是否符合期望,能否可靠的服務,能否提供API所預定的功能,然後就是測試性能如何,接口的安全性如何。

接下來我們就來看看,目前最流行的測試應用程序接口的工具有哪些。

...Soap UI

Soap UI的功能比較強大, 它可以測試REST API,SOAP API和網絡服務。

該工具有免費版和付費版兩種版本。

...Katalon Studio

Katalon Studio同時支持SOAP和REST API, 這其中包括各種操作如get,put,delete,post等等。當然也支持各種參數和數據負載。它的另一個特點是支持幾乎所有現在流行的平臺比如說windows系統,蘋果系統, Linux系統。

該工具提供免費版本。

...Postman

最初這個工具是Chrome的一個插件, 到後來開發了新的版本, 可以支持Windows和蘋果系統。

這個工具只支持Rest API測試。

該工具提供免費版本和付費版本。

...Tricentis Tosca

這個工具支持的協議比較多, 包括HTTP(S), JMS, AMQP, Rabbit MQ, TIBCO EMS, SOAP, REST, IBM MQ, NET TCP。

該工具提供付費版本。

...Apigee

這個工具的特點是支持雲端API測試,能夠分析和測試程序接口的性能,能夠支持像Swagger這樣的API編輯器。

該工具提供免費試用版和付費版。

...JMeter

這款工具是一款開源的測試工具,可以支持應用程序接口測試和接口性能的測試。

該工具是開源的,是免費的。

...Rest-Assured

這是一款開源的測試工具。支持界面和rest API測試。

該工具是開源的,也是免費的。

...Assertible

這個工具專注於自動化測試和可靠性測試。可以跟github和slack集成。

該工具提供免費版和付費版。

...Karate DSL

這是一個比較新的測試工具。並且是開源的。不需要,具有開發員背景,也可以寫出測試案例。

該工具提供開源版本,當然是免費的。

俗話說沒有最好的工具, 只有更好的工具, 更合適你的工具。



丁哥開講


SoupUI,這是我現在用的最多的接口測試工具。

在我們日常的開發過程中,大多數是兩種類型的接口:SOAP API和Rest API兩種,SoupUI對這兩種接口都有很好的支持,而且還支持Amazon Web Service,這個只在軟件的首頁上看到過,沒有實際使用過。

其實很多的接口測試工具對這兩種常用的接口都有很好的支持,具體的使用方法我在這裡也不詳細講了,都是圖形界面的操作,按照指示一步一步的新建即可完成。


其中它可以很方便地進行壓力測試,也是按照提示,一步一步新建,最後的的操作頁面是這樣的:


可以設置:併發數、策略,壓力測試的時間等。

結果可以展示:接口的最大響應時間、最小響應時間、平均響應時間、TPS等等。

非常好用,大家可以嘗試。


希望我的回答,能夠幫助到你!我將持續分享Java開發、架構設計、職業發展等方面的見解,希望能得到你的關注;另外,關注我後私信【資料】兩個字,可獲取架構、大數據、面試等相關資料。



分享到:


相關文章: