接口測試很難嗎?教你用Postman輕松搞定接口測試
作為一個接口自動化測試工具,Postman的大名,一直是在耳邊圍繞,目前只要是測試工程師,技能那一欄必然會有“接口測試經驗,精通Postman等接口測試工具”,Postman到底是個啥,又是怎么用的呢,讓我這個Postman的小白,一同帶您回顧一下小白在使用Postman進行測試時用到的各種功能吧!
首先下載安裝完成后打開Postman,展現給大家的是它的主頁面。主要的界面功能,小白用一圖來給大家直觀的介紹,這里就不給大家贅述了。

當大家拿到了需要測試的接口文檔后,會了解到具體的接口訪問的方式是POST還是GET,具體的參數格式是:form-data、x-www-form-urlencoded、JSON還是XML等,接口所需傳參的參數定義及相關的值域范圍等信息,按照具體的接口文檔要求可以在下圖進行相應的配置。

跟大家簡單的介紹一下小白在項目中主要用到的三種請求的格式:
form-data:可以理解成以表單的形式將數據進行請求;
x-www-form-urlencoded:它是將表單內的數據轉換為鍵值對進行請求;
raw:可以上傳任意類型的文本,如text、json、xml等,因為小白項目多為JSON格式的報文請求,所以raw-json是小白在項目中用的最多的。
下面,我們以非常簡單的某天氣的接口為例,來具體的介紹接口測試的方式。

根據接口文檔要求,我們知道theUserID及theCityCode兩個參數,通過x-www-form-urlencoded方式進行訪問,其中,theUserID作為用戶身份可不賦值,theCityCode為城市碼為中文,如果想查詢上海市的天氣情況,可將theCityCode填寫為“上海”,參數配置完成后,點擊“Send”按鈕,Response的響應報文Body中可直接查看到具體的響應報文。

那我們如何驗證接口返回報文是否正確,接口服務是否正常呢?這里我們就要用到Postman的Tests了。

在Tests中我們可以使用Postman常用函數對接口進行驗證,第一想到的就是如何自動化的驗證接口是否可用,返回報文是否正常,那我們就要用到以下方法:
- pm.test("Body matches string", function () {
- pm.expect(pm.response.text()).to.include("string_you_want_to_search");
- });
這個方法主要通過對Response返回報文中字符串進行比對,如命中字符串則認定Response返回報文正常,接口驗證通過。比如以天氣查詢接口的返回報文為例:
- pm.test("Body matches string", function () {
- pm.expect(pm.response.text()).to.include("直轄市 上海");
- });
通過對“直轄市 上海”字符串比對,可以判定接口驗證通過,返回正常,同時我們也可以使用以下方法對整個響應進行比對。
- pm.test("Body is correct", function?() {
- pm.response.to.have.body("response_body_string");
- });
我們還可以使用以下方法對響應時間進行驗證,驗證此接口返回報文的響應時間是否符合我們要求的時間。
- pm.test("Response time is less than 200ms", function () {
- pm.expect(pm.response.responseTime).to.be.below(200);
- });
我們也可以使用下列方法將響應報文從XML格式轉化成JSON格式,方便對響應報文進行進一步的處理。
- var jsonObject = xml2Json(responseBody);
當需要驗證多個接口,且下一個驗證接口的發送報文中需發送上一個接口的響應返回的值時,我們該怎么辦?需要我們寫大段的代碼來實現這個功能么?不,Postman只需要2行代碼就可以實現了,如下所示:
- var jsonData = JSON.parse(responseBody);
- pm.environment.set("TOKEN5", jsonData.XXX.XX);
將響應報文賦予jsonData,將所需響應報文中的值賦予環境變量“TOKEN5”中。同時在下一個接口請求中可以使用{{TOKEN5}}使用已存入環境變量“TOKEN5”的值如下所示:

當多個接口同時使用多個變量時,Postman提供了方便快捷的變量修改功能和查看功能,可以使用右上角的“齒輪”圖標和“眼睛”圖標來實現:

最后在Tests標簽頁有17函數方法的快捷使用欄,方便大家可以通過輕松的點擊實現斷言的驗證、對響應報文的格式轉換等方法,對于小白的我來說,So Easy!項目經理再也不用擔心我的接口測試了。
