1. 程式人生 > >百測學習之postman-介面測試

百測學習之postman-介面測試

一、postman的請求

1、url與uri的區別     url與uri的區別   http://doc.nnzhp.cn/          http+host(域名)+path路徑(uri) 2、get和post的區別         1)、get請求會顯示傳參 不安全,post請求更安全         2)、get獲取資料,但如果url超長,url有一個長度限制會出現截斷的情況導致請求報錯,建議更換型別         3)、post提交請求,如果格式為text:是文字為純色,換成json之後顏色變化,適合入參為json型別的         3、Json:通用的資料型別,如下: 常用引數型別:long、bigint、Arrays[]、Arrays[String]、Arrays[int]、Object(對應為一個json) 相比較與key-value,json可支援父類,陣列arrays[]、Arrays[String]和物件 如果少欄位,會報引數缺失
 常用引數型別:
Object:
"farther": {
"name": "大王",
"age": 35
}

引數名 是否必填 型別
farther 是 Object

farther引數:
name 是 String
age 是 int

Object[]
4、開發語言     前端語言:Vue、React     後端:Python、Php、Java、Go、C++ postman可以生成程式碼,還有支援不同的語言  
5、cookie、session和token 1).cookie前端的快取,主要儲存在前端的瀏覽器, 會帶在url中 2).session後端的快取, 儲存在快取或是資料庫中 3).token:授權 jwt/passport 引數依賴:根據業務場景判斷是不是需要,比如註冊不需要,檢視商品的價格就需要   6、chrome的F5檢查元素F12,F5重新整理之後可以進去 通過token登入: http://122.51.199.160:8080/vue/index.html#/ 我的:user123/user123   7、註釋快捷鍵: ctrl+? 或是直接// 8、文字編輯器:notepad++ / sublime  9、chrome控制檯抓包                   network             Headers
             general:請求介面的基礎資訊如:介面url、請求型別
Query引數:
String parameters ===> postman params
form ===> postman的body下的form-data
Json

token相關:如
X-Litemall-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0aGlzIGlzIGxpdGVtYWxsIHRva2VuIiwiYXVkIjoiTUlOSUFQUCIsImlzcyI6IkxJVEVNQUxMIiwiZXhwIjoxNjA3ODMzOTgwLCJ1c2VySWQiOjEsImlhdCI6MTYwNzgyNjc4MH0.Ftjb6Pj5TeecGftrd2mbGPPfqOB2HEQvYLXQFoR0Ny
             jwt:json web token

10、postman介面引數依賴
       獲取引數作為後續介面使用的引數
postman requests請求的tests標籤中
var data = JSON.parse(responseBody); // 解析介面返回結果,把資料序列化成一個json物件,這個時候 data 就是介面返回的json資料
var sign = data.login_info.sign; // 定義變數 sign 並賦值,內容是前面介面的login_info欄位下的sign欄位的資料 ,這個路徑叫做json path
pm.globals.set("sign", sign); // 定義一個全域性變數,命名為 sign ,值是前面取出來的login_info欄位下的sign欄位的資料
// 後續使用的時候,需要在填寫的地方, 用{{引數名字}}
// 定義的全域性變數作用域是 postman整個會話;
// 如果測試過程中切換了host,需要重新開啟postman;

var name = "小黑";
pm.globals.set("name",name);

postman檢查點
1、通過字串匹配,檢查是否存在欄位,採用的是模糊匹配,返回中包含這個內容即代表檢查通過;
tests這個tab頁的右側,找到Response Body:Contains string;

pm.test("檢查msg", function () {
pm.expect(pm.response.text()).to.include("msg");
});

2、通過jsonpath獲取到具體的值來檢查與預期結果是否一致,採用的是完全匹配,
tests這個tab頁的右側,找到Response Body:JSON value check;

pm.test("檢查errorCode是否為2", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.error_code).to.eql(2);
});

tests["stu_info的第一條資料id為30"] = jsonData.stu_info[0].id === 30;
tests["stu_info的第2條資料id為20"] = jsonData.stu_info[1].id === 20;
11、postman 介面引數的設計思路: 1.是否必填:是否必填 2.欄位型別:傳其他型別是否報錯 string int可以轉到string,但是string不能轉到int上 4.欄位長度:由於是與資料庫互動的功能需要檢查欄位長度 5.是否為空:null /""(空字串)/ 5.介面的聯通性:是否為通的 6.業務場景:比較偏向於介面實現的功能邏輯(正常的功能測試) 6.安全性:sql注入   介面測試用例模板

 12、網路知識

   什麼是內網ip?
10.x.x.x
172.16.x.x
192.168.x.x

驗證網路是否連通 ping xxx.xxx.xxx.xxx
驗證服務是否可用 telnet xxx.xxx.xxx.xxx port

什麼是迴路地址?
127.0.0.1 localhost