在網上找了一個接口來實踐一下,因爲接口地址每日有次數限制,就打碼了。
接口文檔:
名稱 | 類型 | 必填 | |
---|---|---|---|
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的使用