postman接口自動化測試實戰

在網上找了一個接口來實踐一下,因爲接口地址每日有次數限制,就打碼了。

接口文檔:

名稱 類型 必填
key String  
keyWord String 查找關鍵詞
page Int 請求頁數,默認page=1
rows Int 返回記錄條數,默認rows=20,最大50
dtype String 返回結果格式:可選JSON/XML,默認爲JSON
format Boolean 當返回結果格式爲JSON時,是否對其進行格式化,爲了節省流量默認爲false,測試時您可以傳入true來熟悉返回內容

 

重點在於測試用例的設計,在拿到接口文檔後就可先寫好用例,用例設計看這張圖

首先發送一個正常的請求,看一下請求返回結果

主要是根據返回的json來設計一下tests驗證的內容,簡單的寫了幾個:

1.驗證返回的狀態碼

2.格式化返回數據

3.驗證返回的data中是否存在result字段,沒有false

4.驗證result中是否存在第二條數據,沒有false

5.存在第二數據的話,則取第二條數據

6.判斷第二條數據中的id是否取到,如果取到爲true

7.將取到的id設爲環境變量,供下個接口調用


pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

// 將結果解析成json格式
var data = JSON.parse(responseBody);

// 判斷返回的數據中result字段是否有值
if(data.result){
    
    tests['結果是否存在'] = true;
    // 判斷result中是否存在第二個字典項
    if (data.result[1]){
        tests['是否存在第二條數據'] = true;
        // 取result中第二個字典項
        var a = data.result[1];
        // 判斷字典裏的id有沒有取到
        if (a.id){
            tests['是否取到《'+a.name+'》的ID'] = true;
            // 將id設爲環境變量,供下個接口使用
            pm.environment.set("tssc_id", a.id);
        }
        else{
            tests['是否取到《'+a.name+'》的ID'] = false;
        }
    }
    else{
         tests['是否存在第二條數據'] = false;
    }
}
else{
    tests['結果是否存在'] = false;
}

可以看到我們的用例全部通過

我們把剛纔取到的id設爲了環境變量{{tssc_id}}

用這個接口的返回值作爲另一個接口的入參

可以看到是成功請求數據的

 

這是一個用例 我們可以使用runner來批量執行用例,將用例寫在csv文件中

重點還是用例設計,隨便寫了幾個僅做演示

postman中讀取數據的時候,會將表名默認的認爲是data。所以在讀取數據的時候,比如讀取keyword這一列的數據,則書寫爲data.keyword。postman會按照data.keyword的讀取方式讀取數據直到數據爲空。

我們用Excel寫完後,用notepad打開,轉爲utf-8格式,不然可能會亂碼,postman識別不了

修改我們的接口參數

與文件的標題一致

我們是需要對錶格中的數據進行參數化,所在在發送請求之前,我們要讓postman能夠讀取到文件中的數據,在postman中,Pre-request Script中的語句postman會在請求發送之前執行,所以讀取語句的操作,我們放在這裏執行

我們打開runner進行設置環境變量,選擇csv文件,可以點擊preview預覽

 

 

如果亂碼的話會執行失敗

最後我們點擊run按鈕進行測試,看一下結果

當然也可以點擊名稱分析與tests中驗證的是否一致

到此爲止postman的使用告一段落,大體滿足日常使用,接着會介紹一下postman+newman+jenkins的使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章