Postman接口測試_基本功能

1、   安裝與更新

一、安裝的方式

方式1:chrome插件版本:chrome--->設置--->擴展程序;java

方式2:native版本(具備更好的擴展性,推薦使用):https://www.getpostman.com/node

二、Chrome app和native app的區別

一、Cookies(登陸):native版本能夠直接操做cookie,而chrome版本須要安裝擴展;python

二、Built-in proxy(代理):native版本自帶proxy,能夠用來抓包;chrome

三、Menu bar(菜單欄):chrome沒有帶菜單欄,而native自帶菜單欄;npm

四、Restricted headers(受限headers):有一些headers在chrome app上是受限的,好比Origin and User-Agent;json

五、Don‘t follow redirects option(不去跟隨重定向):native版本纔有這個選項;api

六、Postman console:native版本自帶;瀏覽器

三、native app更新

步驟:File--->Settings--->Update--->Minor fixes服務器

2、   發送一個api請求

文檔:https://www.v2ex.com/p/7v9TEc53cookie

api地址:https://www.v2ex.com/api/topics/hot.json

3、   模擬HTTP Requests

一、請求Request

URL

Method:根據方法的不一樣,body編輯器會變化;

Headers

body:form-data:①、網頁表單用來傳輸數據的默認格式,能夠模擬填寫表單,而且提交表單;②、能夠上傳一個文件做爲key的value提交(如上傳文件),但該文件不會做爲歷史保存,只能在每次須要發送請求的時候,從新添加;

     x-www-urlencodedl:①、urlencode中的key-value會寫入URL,from-data模式的key-value不明顯寫入URL,而是直接提交;②、這個編碼格式不能上傳文件;

     raw:能夠包含任何東西,全部填寫的text都會隨着請求發送json/字符串;

     binary:也不能保存歷史,每次選擇文件,提交;

選擇參數方式後,postman自動的幫咱們設置Content-Type;

Pre-request Script:請求發送前,可進行一些腳本設置,如,設置或清除參數、變量;

Tests:定義發送Request以後,須要用腳本檢測的內容,也就是Test case的內容;

二、響應Response

Body:Pretty:①、格式化了JSON和XML,方便查看,點擊裏面的URL,postman會建立一個request;②、json、HTML、XML、Text等;

Raw:text;

preview:格式化了JSON和XML,方便查看;

 4、   權限Authorization

Basic Auth:填寫用戶名和密碼,點擊Update Requests;

Digest Auth:要比Basic Auth複雜的多,使用當前填寫的值生成authorization header,因此在生成header以前要確保設置的正確性,若是當前的header已經存在,postman會移除以前的header;

OAuth 1.0a:讓你簽署支持OAuth1.0基於身份驗證的請求,OAuth不用獲取access token,你須要去API提供者獲取的,OAuth1.0能夠在header或者查詢參數中設置value;

OAuth2.0:支持得到OAuth2.0 token並添加到request中;

5、   斷言Writing Test

設置全局變量;

設置環境變量;

拿到並處理請求的響應;

定義測試檢查點和斷言;

一、Clear a global variable:

①、清除一個全局變量;

②、postman.clearGlobalVariable(「variable.key」);

二、Clear an environment variable:

①、清除一個環境變量;

②、postman.clearGlobalEnvironmentVariable(「variable.key」);

三、Response body:Contains string:

①、response包含內容;

②、tests[「Body matches string」]=responseBody.has(「string_you_want_to_search」)

四、Response body:Convert XML body to a JSON Object:

①、將xml格式的response轉換成json格式;

②、var jsonObject = xml2Json(responseBody);

五、Response body:Is equal to a string:

①、response等於預期內容;

②、tests[*Body is corret*] = resposeBody === *response_body_string*;

六、Response body:JSON value check:

①、json解析key的值進行校驗;

②、tests[*Args key contains argument passed as url parament*] = ‘test’ in responseJSON.args;

七、Response headers:Content-Type header check:

①、檢查response的header信息是否有被測字段;

②、tests[*Content-Type is present*] = postman.getResponseHeader(「Content-Type」);

八、Response time is less than 200ms:

①、響應時間判斷;

②、tests[*Response time is less than 200ms*] = responseTime < 200;

九、Set an global variable:

①、設置全局變量;

②、postman.setGlobalVariable(「variable_key」,」variable_value」);

十、Set an environment variable:

①、設置環境變量;

②、postman.setEnvironmentVariable(「variable_key」,」variable_value」);

十一、Status code:Code is 200:

①、判斷狀態碼;

②、tests[「Status code is 200」] = responseCode.code !=400;

十二、Status code:Code name has string:

①、檢查code name是否包含內容;

②、tests[「Status code name has string」] = responseCode.name.has(「Created」);

1三、Status code:Successful POST request:

①、成功的post請求;

②、tests[「Successful POST request」] = 201 ||responseCode.code ===202;

1四、Use Tiny Validator for JSON data:

var schema = {

  "items": {

    "type": "boolean"

  }

};

var data1 = [true, false];

var data2 = [true, 123];

pm.test('Schema is valid', function() {

  pm.expect(tv4.validate(data1, schema)).to.be.true;

  pm.expect(tv4.validate(data2, schema)).to.be.true;

});

6、   測試集合Collections

1、數據驅動的接口自動化測試

2、命令行中運行

一、命令行中運行:能夠在無UI界面的服務器上運行;能夠在ci持續集成系統上運行;

二、運行準備:導出collection;安裝nodejs和npm(國內cnpm);安裝newman;

三、生成測試報告:CLI reporter;JSON reporter;HTML reporter;JUnit reporter;

 

7、   變量

 一、環境變量environment:好比能夠將測試domain設置成環境變量;

二、全局變量Global variable:實現接口請求的參數依賴於其餘接口的返回,好比能夠將錯誤信息設置成全局變量;

三、Local本地變量:通常能夠在sandbox中定義;

四、Data:測試數據中導入的變量,也就是所謂的參數化;

注意:當全局變量和環境變量衝突時,環境變量覆蓋全局變量;

8、   在test suite中運行test case

一、Environment :環境變量;

二、Iterations:重複運行次數;

三、Delay:間隔時間,用例與用例間的間隔時間;

四、Data:外部數據加載,即用例的參數化,能夠與Iterations結合起來用,實現參數化,也就是數據驅動;

9、   生成Request代碼

1、導出python腳本進行數據驅動的接口測試

一、導出python的requests腳本

二、使用nuittest進行接口自動化測試

2、導出java代碼進行數據驅動的接口測試

一、導出成java的OkHttp代碼;

二、使用Junit進行接口自動化測試;

三、使用fastJSON解析json字符串;

10、   Jekins+postman+newnam

一、Postman導出用例集合和導出環境變量;

二、newman運行:①、無環境變量:newman run D:\API.postman_collection.json;

             ②、有環境變量:newman run D:\API.postman_collection.json –environment D:\postnam_environment.json;

三、執行服務器上的Collection:newman –u https://www.getpostman.com/collections/cb208e7e64056f5294e5;

四、jenkins:①、構建;②、構建後發郵件;

11、   Interceptor錄製

一、先在瀏覽器安裝Interceptor,並打開;

二、postman同時打開Interceptor;

三、刷新網頁,進行錄製請求;

相關文章
相關標籤/搜索