postman是一個谷歌出的輕量級的專門測試接口的小工具~(PS:postman包括兩種:Chrome瀏覽器插件和postman客戶端,我使用的是postman客戶端)雖然不如firefox的poster插件“輕量”,但是比firefox的poster插件、fiddler的接口測試功能更全面,比Jmeter更輕量、便捷~
一、JMeter 介紹
Apache JMeter是100%純JAVA桌面應用程序,被設計為用於測試客戶端/服務端結構的軟件(例如web應用程序)。它可以用來測試靜態和動態資源的性能,例如:靜態文件,Java Servlet,CGI Scripts,Java Object,數據庫和FTP服務器等等。JMeter可用於模擬大量負載來測試一台服務器,網絡或者對象的健壯性或者分析不同負載下的整體性能。
同時,JMeter可以幫助你對你的應用程序進行回歸測試。通過你創建的測試腳本和assertions來驗證你的程序返回了所期待的值。為了更高的適應性,JMeter允許你使用正則表達式來創建這些assertions.
JMeter與LoadRunner比較
JMeter 是一款開源(有着典型開源工具特點:界面不美觀)測試工具,雖然與LoadRunner相比有很多不足,比如:它結果分析能力沒有LoadRunner詳細;很它的優點也有很多:
- 開源,他是一款開源的免費軟件,使用它你不需要支付任何費用,
- 小巧,相比LR的龐大(最新LR11將近4GB),它非常小巧,不需要安裝,但需要JDK環境,因為它是使用java開發的工具。
- 功能強大,jmeter設計之初只是一個簡單的web性能測試工具,但經過不段的更新擴展,現在可以完成數據庫、FTP、LDAP、WebService等方面的測試。因為它的開源性,當然你也可以根據自己的需求擴展它的功能。
兩者最大的區別:jmeter不支持IP欺騙,而LR支持。
JMeter缺點
使用JMeter無法驗證JS程序,也無法驗證頁面UI,所以要須要和Selenium配合來完成Web2.0應用的測試。
我覺得我比較喜歡postman的兩個功能點,一個是它的批量執行、一個是它的查看源碼功能。下面與大家分享一下~
今天分享的是postman如何批量執行接口測試用例~其實很簡單,但是會給我們的工作帶來很多方便~比如我們寫了幾十個測試用例,請求都是同一個服務器IP,一旦服務器IP地址從測試環境搬到線上環境,需要修改所有的服務器IP,如果不能將測試用例保存起來,統一修改服務器IP ,並且批量執行,那將是一件很麻煩的事情!可是postman幫助我們完美地解決了這個問題~具體操作請見下文~
一.創建測試用例集、子集
如下圖,
點擊postman左側Collections下面有個添加文件夾圖標,就可以創建測試用例集,一個系統、模塊或其他分類粒度的測試用例可以存放在該目錄下
另外,該目錄下還可以創建子目錄,進行測試用例的細分,如下圖:
二.創建測試用例
創建接口測試用例,即新建http請求,選擇請求方式、寫好url、請求頭、請求體
三.設置變量
postman的變量和Jmeter的參數化相似,即把若干處出現多次的數值用一個變量表示,達到一次修改、多處生效的效果,便於修改和管理。
點擊postman上方一個按鈕,點擊Globals后面的Edit按鈕,添加全局變量
點擊右下角Add按鈕,添加Environment Name,Key值寫變量名稱,Value值寫變量對應的數值,點擊Save按鈕進行保存
把Value值出現過的地方用{{key}}代替,比如以上面的截圖為例,出現http://172...57:8080的位置使用“{{baseURL}}”代替
四.添加響應處理
響應處理有點類似Jmeter里的檢查點,即通過檢查響應數據是否符合預期來判斷test是否通過。在Tests中添加檢查條件,postman提供了一些常用的檢查條件的代碼,直接添加或稍加修改即可。如:響應數據的狀態碼為200,則判斷測試通過,則在代碼片中選擇“status code:code is 200”
tests["測試Response包含星期三"]=responseBody.has("10日星期三")
tests["測試Response包含星期三"]=responseCode.code === 200;
https://www.apiopen.top/weatherApi?city=%E9%83%91%E5%B7%9E(鄭州)
五.批量執行測試用例
點擊測試用例集中的“run”,批量運行測試用例,彈出collection runner,點擊“Start Run”,批量運行測試用例
運行后,彈出測試結果,顯示測試通過和失敗的個數、請求URL、請求頭、請求體信息,響應頭、響應體信息,狀態碼等,我們就可以查看測試用例的執行結果及具體信息啦~