接口測試很難嗎?教你用Postman輕松搞定接口測試

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

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

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

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

那我們?nèi)绾悟炞C接口返回報文是否正確,接口服務(wù)是否正常呢?這里我們就要用到Postman的Tests了。

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

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

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




























