1. 程式人生 > >Postman高階應用(6):解放測試同學的雙手——自動化測試

Postman高階應用(6):解放測試同學的雙手——自動化測試

背景

我們寫完了業務介面,一般都要自驗一下,看下通沒通。雖然可以寫單元測試,但實施起來沒有那麼簡單。我們第一時間想到了Postman,它的出現不就是為了解決API測試問題的嗎?我們要做的是把要測試的API錄入到Postman,然後寫驗證返回結果的測試指令碼。每次改完程式碼,都可以手動跑一下所有API,如果返回結果都是我們想要的,那證明這個介面通了。除了手動觸發執行以外,我們還可以用做成自動化,做CI持續整合。

實戰

  1. 先編寫好一個API,我這裡以Postman提供的示例API為例,請求地址是https://postman-echo.com/get?foo1=bar1&foo2=bar2

    。點選選項卡Tests,在這裡寫我們的測試指令碼。與上一節Pre-request Script一樣,在這裡可以寫JavaScript程式碼,不同的是,Tests是在請求結束後執行的。

  2. 在面板右側,Postman提供了超全面的示例程式碼。我們根據該請求的返回結果,簡單寫兩個test,第一個是校驗請求返回碼是200,第二個是校驗args欄位。

  3. 寫完指令碼,我們再發送一下請求。發現Test Results裡面有東西,而且是綠色,證明我們的測試通過。當然我們可以把一些通用一點的test(例如請求碼返回200)寫在收藏夾或資料夾裡,這樣裡面所有的請求都能被執行到,然後在每個請求裡面寫跟該請求特定的test(具體業務相關的)。

  4. 利用Runner功能批量執行請求。點選最頂部的Runner開啟Runner面板,選擇一個收藏夾或資料夾(我這裡選擇了一個收藏夾,裡面只有一個剛才寫好的請求)。簡單說下這裡的設定,Environment是選擇環境,Iterations是執行次數(這裡填10次),Delay是每個請求執行的間隔(這裡填100ms),Data可以選擇一個數據檔案,然後在請求中設定佔位符{{xxx}},就可以用檔案中的資料來替換,一個請求一個數據,這裡不作介紹,詳情看官方文件


    執行結果

  5. 雖然Runner功能已經很方便,但每次寫完程式碼都要手動點一下還是很麻煩。其實postman可以用命令列來執行,我們自己寫指令碼基本也可以實現自動化測試。另外,postman可以整合到

    JenkinsTravis CI上,在每次部署前或者把程式碼合併到主幹分支前都進行一次介面測試,以保證系統服務可用。大家結合專案和團隊實際需求來選擇,這裡不作深入介紹,用到的話在官方文件看下如何配置。

相關推薦

Postman高階應用6解放測試同學雙手——自動化測試

背景 我們寫完了業務介面,一般都要自驗一下,看下通沒通。雖然可以寫單元測試,但實施起來沒有那麼簡單。我們第一時間想到了Postman,它的出現不就是為了解決API測試問題的嗎?我們要做的是把要測試的API錄入到Postman,然後寫驗證返回結果的測試指令碼。每

Postman高階應用8檔案變成了亂碼——下載檔案

背景 在做後臺管理系統時候,涉及到匯出報表等功能,如果我們用以前的方式請求,往往會看到返回一堆亂碼,而不是我們想要的檔案。其實Postman為我們提供了檔案下載功能,同樣普通的html文字和json資料也可以返回儲存為檔案。 實戰 點發送按鈕旁邊的三角形,然後點Send a

Postman高階應用7我又錯哪了——控制檯輸出

背景 我們上兩節介紹了Postman的Pre-request Script和Tests,它們都需要寫JavaScript程式碼,說到寫程式碼肯定離不開除錯(控制檯輸出)。Postman為我們提供了一個類

Postman高階應用4只改一處地方——設定全域性變數

背景 之前我們做過一個案例,就是在cookie設定登入憑證token。但token有時需要改變,而且大量請求都需要用到這個token。每次請求都改掉token顯然不切實際,如果使用上一節介紹的環境變數也無法一次性修改所有請求。這裡帶大家介紹Postman的全域

Requirejs高階應用模組無法載入錯誤的解決辦法

在angular與requirejs的結合中,提示“Module name has not been loaded yet for context: _”,如下: require-lib.js:900 Error: Module name "common/

mybatis高階應用使用maaper介面開發

1.介面開發 1)規則: 1)介面名稱必須和mapper檔名稱相同 2)介面包路徑和名稱空間一致(介面檔案和mapper檔案在一起) 3)介面中要宣告的方法名和某個sql配置的id屬性一致 4)引數和

網路應用6http報文結構與curl的使用

http是一個協議,協議就是約定、規定,先不管為什麼這麼約定有什麼高深的東西,為了解決具體問題,我們先要能使用協議,理解協議中對我們有用的那部分資料,是的,我們不是研究生,更不是純研究,所有的研究都要由具體的問題來驅動。 那這裡的具體問題是什麼?就是看懂http的請求跟回覆啊,就像寫某某申請一樣,你不理申請最

SparkCore6Spark應用的監控Job History

1.實現功能 對於spark正在執行的應用,可以通過webUI:4040來檢視,但是對於已經執行完的job,則需要通過spark的job history來檢視,檢視方式是webUI:18080 2.配置Spark Job History (1)建立HDFS上儲存spar

linux命令學習6ps命令

bytes 釋放 ice cti width kthread hellip 名稱 pts Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程,如果想要

C++傳智筆記6socket客戶端發送報文接受報文的api接口

內存泄露 rcp 分配內存 strcpy light cpp tac 第三方 _file__ #define _CRT_SECURE_NO_WARNINGS #include "stdio.h" #include "stdlib.h" #include "string.

Windows Phone開發6處理屏幕方向的改變

cati sources mon stack mar ber XML break pac 俺們都知道,智能手機可以通過旋轉手機來改變屏幕的顯示方向,更多的時候,對於屏幕方向的改變,我們要做出相應的處理,例如,當手機屏幕方向從縱向變為橫向時,可能要重新排列頁面上的控件以適應顯

設計模式六大原則6開閉原則

思考 外部 編程人員 恰恰 單一職責 何事 適應 擴展 分享 開閉原則 定義:一個軟件實體如類、模塊和函數應該對擴展開放,對修改關閉。 問題由來:在軟件的生命周期內,因為變化、升級和維護等原因需要對軟件原有代碼進行修改時,可能會給舊代碼中引入錯誤,也可能會使我們不得不對

springBoot6web開發-模板引擎jsp

spring boot 一、新建工程 註意新建的工程下沒有webapp目錄eclipse下會自動創建webapp目錄這裏我們需要自動創建一個webapp目錄並創建WEB-INF。 對ServletInitializer.java進行說明 1、這個類相當於我們以前的web.xml 2、只有3.0以上才

Linux同步與相互排斥應用基礎概念

使用 line 關系 並發執行 來看 文章 必須 生產者 而且 【版權聲明:尊重原創,轉載請保留出處:blog.csdn.net/shallnet 或 .../gentleliu,文章僅供學習交流,請勿用於商業用途】 當操作系統進入多道批處理

學習用Node.js和Elasticsearch構建搜索引擎6實際項目中常用命令使用記錄

nds 黃色 ati cat htm action last shard open 1、檢測集群是否健康。 curl -XGET ‘localhost:9200/_cat/health?v‘#後面加一個v表示讓輸出內容表格顯示表頭 綠色表示一切正常,黃色表示所有

TF-IDF與余弦相似性的應用自動摘要

下一步 dip target 似的 abs tps .net ebo ace 轉:http://www.ruanyifeng.com/blog/2013/03/automatic_summarization.html 有時候,很簡單的數學方法,就可以完成很復雜的任務。 這個

EasyPR源碼剖析6車牌判斷之LBP特征

extend 順序 位置 feature tput ray bpf range str 一、LBP特征 LBP指局部二值模式,英文全稱:Local Binary Pattern,是一種用來描述圖像局部特征的算子,LBP特征具有灰度不變性和旋轉不變性等顯著優點。 原始的LBP

python函數6內置函數和匿名函數

a20 *args -s 執行 code str 思維導圖 inpu 其他 我們學了這麽多關於函數的知識基本都是自己定義自己使用,那麽我們之前用的一些函數並不是我們自己定義的比如說print(),len(),type()等等,它們是哪來的呢? 一、內置函數 由pytho

Linux自學筆記6Linux文件系統及文件類型

linux文件類型 linux文件系統 Linux的文件系統:跟文件系統(rootfs)root filesystem LSB,FHS:linux發行標準1 bin boot dev etc home lib lib64 media mnt opt proc root run

《Linux學習並不難》Linux常用操作命令6uname命令顯示計算機和系統相關信息

Linux8.6 《Linux學習並不難》Linux常用操作命令(6):uname命令顯示計算機和系統相關信息 使用uname命令可以顯示計算機以及操作系統的相關信息,比如計算機硬件架構、內核發行號、操作系統名稱、計算機主機名等。 命令語法: uname [選項] 命令中各選項的