postman自动打开_趁热打铁,一口气记录下整个postman自动化测试过程!
生活随笔
收集整理的這篇文章主要介紹了
postman自动打开_趁热打铁,一口气记录下整个postman自动化测试过程!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、為什么選用postman
postman調試工具無論對于開發和測試小白,還是技術大牛來說應該都耳熟能詳,在過去的幾年里大家對這款工具應用最廣的用途是把當作接口調試的測試工具,它能發送幾乎所有類型的HTTP請求,操作界面非常簡潔美觀(大家來欣賞下圖),支持抓包,保存歷史記錄,有用戶組管理機制,方便多端同步用例等等。最主要的是各位小伙伴已經對它用于接口調試的功能非常熟悉,已經為我們接下來使用它做持續集成的接口自動化打下了良好的基礎。?二、postman 基礎知識
相信大家使用postman來調試接口應該是相當熟悉了,所以還不懂使用的同學可以在網上找到相關的資料(非常多),或者直接查閱官網,我建議大家還是要學會看官方文檔,度娘很多教程可能會不全或者已經過時了,官網是最新最全的學習文檔,不懂就慢慢看,這篇文章只能帶著大家入門,修行只能靠自己(微笑)。官方文檔:https://learning.getpostman.com/docs/postman/launching_postman/1、postman版本選擇postman分為chrome插件版和native版本,插件版的有很多功能都受限制,比如:必須要安裝擴展才可以操作cookie,headers設置受限制,沒有native版本的Postman console,非常不方便調試等,不方便我們后續做接口自動化,所以版本必須選擇native版,版本號用最新的就可以。工具下載:https://www.getpostman.com/downloads/2、postman代理抓包由于postman不是類似fiddle這種專門用于抓包的軟件,fiddler軟件安裝后默認打開抓包功能,默認端口是8888,但是postman需要自己手動打開代理設置。設置方法如下:①點擊右上角的攔截圖標,打開【Capture requests】,設置好Port和Target注意Capture requests按鈕一定是要處于on的狀態;Port:就是端口,只要不設置系統和瀏覽器的沖突端口就可以,比如9999;Target:就是抓到的HTTP包存放的目標地,我一般選擇放在history,方便查看。②打開瀏覽器的代理設置,設置相同端口打開瀏覽器,找到代理服務器,將地址修改為本地機器的ip地址,端口設置為第①步設置的端口號,點擊確定即可。我們演示的這個設置方法是以PC端為例子,有些同學需要抓APP端的包。設置方法原理也大概相同,大家可以參看官網文檔中的設置方法即可。移動端設置方法:https://learning.getpostman.com/docs/postman/sending_api_requests/capturing_http_requests3、postman調試控制臺打開左下角打開【postman console】控制臺,當我們某個測試用例跑不通的時候需要調試,可以打開這個postman的控制臺方便查看接口調試的打印信息,當然我們后續用js寫的腳本可以在控制臺中看到輸出信息。4、postman 發送請求發送請求是postman最核心的功能,如下圖選擇好請求方式及接口地址、相應參數,點擊發送即可。有兩個地方強調下:①需要發送上傳文件的請求,在body中選擇選擇form-data ,選擇File選項后即可選擇文件②可以將請求頭統一管理,打開任意一個請求tab,點擊Headers->Presets->Manage Presets可以設置好請求頭信息,下一個請求再需要相同的請求頭便可以從這里讀取。三、postman 變量與集合
1、什么是變量首先我們來思考一個問題,為什么要使用變量,如果某個參數值只需要在某個獨立接口的使用一次,那么我們可以不使用變量,但是如果變量需要在多個位置重復使用,或者發生接口傳遞(即前一個接口的返回值用于下一個接口的請求參數),那么借助變量,postman就可以實現業務邏輯與測試數據分離,幫助我們建立健壯的測試用例。2、變量的作用域全局變量(Global):主要用于需要在多個位置重復使用的幾乎不改變的數據環境變量(environment):主要用于接口傳遞的參數局部變量(local):集合/文件/接口中 某個js腳本中的變量數據變量(data):主要用于并發測試(json/csv文件)同變量名的情況下,優先級范圍:局部變量>數據變量>環境變量>全局變量3、如何設置變量設置變量的方法有兩種:① 在postman的ui上進行定義:如下圖所示② 使用腳本定義,在Test選項卡中填入腳本:pm.environment.set("new_name", "zhougang");4、如何使用變量使用變量也是有兩種寫法,用在不同的場景中① 在Builder中使用:{{varname}},一般用于請求頭、請求體、請求地址中② 在js 腳本中使用:pm.environment.get("variable_key"),一般用于Test或pre-request Script選項卡中5、集合我們為什么要使用集合以及使用集合的好處在哪?①可以組織業務邏輯:分類和存儲接口②方便一鍵運行:在runner中選擇要運行的集合或者里面的文件夾進行運行③方便導入導出:導出和導入json文件,如使用newman在命令行執行;注意點:集合和變量的導出是分開的。④方便分享:分享至自己團隊的共享目錄下基于以上幾點,我們想要寫出好維護且高效的接口測試用例,一定要好好利用集合。四、postman腳本應用–接口斷言
前三節內容我們了解到了做自動化測試前必須掌握的基礎知識,這一節我們進入到接口自動化測試中的核心內容:如何判斷一個接口的返回值與期望值相符,也就是我們說的接口斷言成功。這個時候postman的測試沙箱sandbox就發揮了巨大的作用。官方解釋:Postman sandbox沙箱是一個JavaScript執行環境,在編寫pre-request scripts 和 test scripts編寫的腳本在此沙箱中執行(Postman和Newman中都可以使用)①在請求發送前,在“pre-request script”選項卡下輸入腳本,主要用于設置測試需要的測試參數②在請求發送后,在“test”選項卡下輸入腳本,主要用于做斷言。③因此如果我們需要斷言一個接口返回是否是預期值,可以參考如下例子:1)判斷code是不是返回200?var jsonData = pm.response.json();pm.test("操作是否成功", function () {pm.expect(jsonData.code).to.eql(200);});2)判斷字段是不是跟預期值相等tests["名稱是否正確"] = jsonData.data.name === pm.environment.get("customer_contract_name");3)判斷返回時間是否在預期2000ms內pm.test("接口返回時間是否超過2s", function () {pm.expect(pm.response.responseTime).to.be.below(2000);});4)執行順序設定(此代碼只在runner和Newman中生效):postman.setNextRequest('接口名稱');上邊的例子都可以在工具的右側找到事例,大大節省我們編寫斷言的時間,如果這里沒有你需要的,可以查看幫助文檔https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference/重點強調:你可以將請求和測試腳本添加到一個集合,一個文件夾,一個請求中,優先級是:請求>文件夾>集合。舉個例子,判斷返回時間的斷言就可以放在集合或者文件中,因為多個接口可以共用這一個斷言。五、postman接口自動化
前面我們已經做好了各種準備工作,包括抓包、編寫接口、存入集合、設置變量、斷言等,接下來就可以把我們的接口自動的跑起來。1、使用postman自帶的 runner工具①按照下圖進入runner頁面,在runner中選擇要運行的collection或者里面的文件夾進行運行②enviroment:選擇用例跑的環境變量集合③iterations:接口迭代次數(接口自動化 默認使用1就行,1以上一般拿來做并發測試)④delay:每個接口發起請求的的間隔時間(建議100ms)⑤data:數據文件,可以是json格式的,也可以是csv格式的(一般用于并發測試)⑤keep variable values: 重點!!!必須要勾上,環境變量將會更新⑥start run:運行結果集,并查看結果頁,可導出運行結果如下顯示,示例中34條成功,0條失敗。如果有失敗的用例可以用控制臺查看是請求沒發送成功還是斷言失敗,單獨調試。2、使用postman的插件:Newman到了這一步,其實我們已經講完用postman做接口自動化的一個完整過程了。但是再來思考一個問題,如果我要將這個接口自動化測試加入持續集成的環節,并且再給領導發一份這個測試結果的報告呢?這時候 Postman的持續集成方案,便是使用自帶的插件Newman + 持續集成工具如Jenkins的結合使用1)官方說明文檔:https://www.npmjs.com/package/newman(https://www.npmjs.com/package/newman2)使用Newman運行用例并生成測試報告①首先需要安裝node.js環境(同時安裝了npm)下載地址:http://nodejs.cn/download/②使用命令行安裝 Newmannpm install -g newman安裝導出html報告的包:npm install -g newman-reporter-html③Newman運行命令腳本,一般只需要指定運行集合、運行環境、間隔時間,數據文件,指定輸出報告的模板和位置原始腳本:newman run xxx.json添加下述定制化參數:指定運行環境變量集合:--environment xxx.environment.json指定輸出環境變量集合:--export-environment xxx.environment.json指定輸出報告形式:-r cli,html指定輸出報告文件:--reporter-html-export xxx.htm指定接口間隔時間:--delay-request 100進入腳本所在文件目錄,運行最終腳本newman run cms_init.postman_collection.json --environment cms-test.environment.json --export-environment cms-test.environment.json -r cli,html --reporter-html-export ./reports/cms_init_html_output.htm --delay-request 120運行結果(命令行):運行結果(html格式):3)使用Newman與Jenkins結合當我們將代碼推送到git上后,可以使用jenkins直接構建任務即可,省去了腳本打包放到對應服務器再啟用對應環境腳本的麻煩。參考鏈接:https://www.jianshu.com/p/18863c609019參考鏈接:https://blog.csdn.net/qq_16510189/article/details/79074809①下載jenkins的war包,使用java -jar jenkins.war –httpPort=8080啟動, 按照配置jenkins完成②在Jenkins中安裝對應的插件,Git、NodeJS 插件③新建job,配置相關內容構建環境配置構建腳本選擇構建,查看控制臺輸出信息六、與釘釘機器人結合
釘釘是我們常用于工作溝通的工具,配合釘釘強大的機器人功能,可以讓我們在持續集成的測試環節中實時、快速接收到測試結果的消息推送。1、建一個自動化測試群,點擊群設置-》群機器人2、選擇自定義機器人3、添加機器人,獲取到access token4、將access token設置到Jenkins中的釘釘通知器插件中(在Jenkins插件中下載安裝),最后保存即可5、Jenkins任務跑完以后,釘釘就會收到消息推送End
以防走丟,請及時星標 置頂 關注我?
你這么可愛,點個三連再走唄~總結
以上是生活随笔為你收集整理的postman自动打开_趁热打铁,一口气记录下整个postman自动化测试过程!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js map 箭头_JS异常函数之-箭头
- 下一篇: 手机号正则_这20个正则表达式,对你有大