postman之請求&斷言

http://www.jianshu.com/p/dd0db1b13cfc    ---參考網址php

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

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

1、postman請求python

一、get請求npm

一、URL:https://api.douban.com/v2/book/search?json

二、點擊url右側的params,並輸入參數api

 

三、點擊send按鈕發送請求,在下面能夠看到返回的response,響應的狀態碼,與響應時間數組

 

 

獲取資源,一切api都是資源,通常都是獲取資源,建立資源(用v2ex沒有鑑權,之後有機會說)--返回的是json的字符串服務器

怎麼查看返回類型是json呢,在header裏面查看Content-Type →application/json;charset=UTF-8cookie

歷史和集合

二、post請求

選取請求的方法爲POST,並輸入接口地址,由於post請求大可能是json形式,因此能夠打開Body選項,並選擇JSON(application/json)形式,輸入請求的json,一樣其他的操做跟GET接口同樣。

Header裏面設置爲:application/json

Body:raw[{},{},{}]數組集合之類的

 

三、添加cookie

  • 添加cookie
  • 在響應中查看cookie

在view-show postman consol-打印出cookie

在test加入代碼

 

四、添加header

接口信息:

http://www.hidnx.com/wps/session/login/unsecure
POST /wps/session/login/unsecure HTTP/1.1
Host: www.hidnx.com
Device: WEB
Merchant: boyifang
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: dd1975ee-9292-c9d6-1cd6-2a362e529fb1

{
  "username": "yyyyy100",
  "password": "123456",
  "uuId": "111111",
  "ipAddress": "127.0.0.1",
  "captcha": ""

 

 

 

 

2、postman鑑權

https://postman-echo.com/basic-auth

一、Basic Buth

輸入用戶名和密碼

二、基於token的鑑權

訪問的令牌或是權限

獲取token——放在headers

之後發送每一個請求的時候都帶上token,表示已經登陸了

3、變量的設置

環境變量有效範圍僅僅在於你所選取的環境,全局變量對全部的環境都試用。

Environment:環境變量

Global:全局變量-錯誤信息提示設置爲全局變量

Local:本地變量-通常在sandbox中定義

Data:測試數據中導入的變量-即參數化

一、環境變量

api可能須要在不一樣的環境中運行,因此api請求的服務器地址不能寫死,但願是能夠配置的,建立環境變量有多種方式。

演示:https://www.v2ex.com/api/nodes/show.json?name=python

   node_name:php/python/qna

設置環境變量——而後選擇test

 

二、全局變量

在environment裏面不用選擇,也起做用的

環境變量課覆蓋全局變量

一、手工預先建立環境變量

URL:https://www.baidu.com/

右上角設置按鈕-manage environment-添加如下環境變量-右上角選擇NewENV-把URL修改成:https://www.{{baiduURL}}.com/-send

二、代碼自動建立環境變量

方法:postman.setEnvironmentVariable("key", "value");

在某個請求發起以後建立:
在Tests標籤裏面添加以下:

變量引用

變量的引用:在須要的地方加上{{變量名}}即可

N個api:

api.xxxx.info/tasks

api.xxxx.info/tasks/task_id

引用變量:{{itest_domain}}/tasks

4、postman斷言(檢查點)

  • 斷言狀態碼:200
  • 返回十條內容:(由於是別人的網站,這個數據是動態的,具體的內容咱們不能斷言,若是是本身的環境,數據能夠本身造,而後能夠斷言內容)

 

全局變量:有些測試時須要登陸的,裏面的cookie和token相似的都須要保存,因此放在全局變量

環境變量:ip地址的改變

tests[ 「檢查點的名稱」 ] =responseBody(表達式) === 「包含的字符串」

tests[ 「響應時間小於200ms」 ] =responseTime(表達式) === responseTime < 200;

一、點擊tests按鈕,能夠看到右側有個snippets欄,裏面就是postman內置的測試腳本,輔助對接口進行測試

 

 

二、選擇其中的一個腳本,修改其中的參數,再次點擊send,這時response的tests出現了一個1/1,說明執行一個測試而且經過測試,綠色pass說明驗證經過

4、collection的做用

容器

  • 組織業務邏輯(不少模塊)
  • 導入導出
  • 其餘功能:監控和mock server

找到頂層功能區,找到runner按鍵,並點擊

 

 

選中剛纔新建的api集合,點擊start,能夠在右側看到運行的結果

 

二、數據驅動測試

https://www.v2ex.com/api/nodes/show.json?name={{node_name}}

若是查詢的數據都不同的話-要構造不一樣的測試數據

準備測試數據:test.json——點擊集合的run

運行結果以下:

斷言
tests["Status code is 200"] = responseCode.code === 200;

var jsonData = JSON.parse(responseBody);
var node_name = postman.getEnvironmentVariable("node_name");
console.log(node_name)

tests["返回值的的name必須和參數值的name相等"] = jsonData.name ===data.node_name;  從文件中獲取數據,進行斷言

4、命令行運行接口(cmder)

  • 導出collection
  • 安裝nodejs和npm(cnpm)
  • 安裝Newman-驗證是否安裝成功:Newman -h
  • 生成測試報告
  • 在命令行運行集合:

 

1 cd E:\postman_doc\conmmandline  //要保存的報告的目錄和測試集合/測試數據所在的目錄下面
2 newman run test_jkn.postman_collection.json -r html//-d 表示測試數據 -r 表示測試報告的形式,以下的四種格式

  

cd 到目錄下 E:\postman_doc\conmmandline

一、首先下載剛纔建立的集合,點擊download,並保存到指定路徑

 

二、安裝postman命令行運行工具newman

(http://jingyan.baidu.com/article/2d5afd69e243cc85a2e28efa.html)    Windows環境下的NodeJS+NPM+Bower安裝配

  • 首先首先,下載安裝node.js,並配置好環境
  • 而後安裝Newman插件  npm install -g newman      -g表示全局
  1. 校驗是否安裝成功,運行:newman --version
  • 執行腳本
  newman run <collection-file-source> [options]

內置腳本說明

1. 清除一個全局變量 Clear a global variable 對應腳本: postman.clearGlobalVariable("variable_key"); 參數:須要清除的變量的key 2.清除一個環境變量 Clear an environment variable 對應腳本: postman.clearEnvironmentVariable("variable_key"); 參數:須要清除的環境變量的key 3.response包含內容 Response body:Contains string 對應腳本: tests["Body matches string"] =responseBody.has("string_you_want_to_search"); 參數:預期內容 4.將xml格式的response轉換成son格式 Response body:Convert XML body to a JSON Object 對應腳本: var jsonObject = xml2Json(responseBody); 參數:(默認不須要設置參數,爲接口的response)須要轉換的xml 5.response等於預期內容 Response body:Is equal to a string 對應腳本: tests["Body is correct"] = responseBody === "response_body_string"; 參數:預期response 6.json解析key的值進行校驗 Response body:JSON value check 對應腳本: tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args 參數:test替換被測的值,args替換被測的key 7.檢查response的header信息是否有被測字段 Response headers:Content-Type header check 對應腳本: tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); 參數:預期header 8.響應時間判斷 Response time is less than 200ms 對應腳本: tests["Response time is less than 200ms"] = responseTime < 200; 參數:響應時間 9.設置全局變量 Set an global variable 對應腳本: postman.setGlobalVariable("variable_key", "variable_value"); 參數:全局變量的鍵值 10.設置環境變量 Set an environment variable 對應腳本: postman.setEnvironmentVariable("variable_key", "variable_value"); 參數:環境變量的鍵值 11.判斷狀態碼 Status code:Code is 200 對應腳本: tests["Status code is 200"] = responseCode.code != 400; 參數:狀態碼 12.檢查code name 是否包含內容 Status code:Code name has string 對應腳本: tests["Status code name has string"] = responseCode.name.has("Created"); 參數:預期code name包含字符串 13.成功的post請求 Status code:Successful POST request 對應腳本: tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202; 14.微小驗證器 Use Tiny Validator for JSON data 對應腳本: var schema = { "items": { "type": "boolean" } }; var data1 = [true, false]; var data2 = [true, 123]; console.log(tv4.error); tests["Valid Data1"] = tv4.validate(data1, schema); tests["Valid Data2"] = tv4.validate(data2, schema); 參數:能夠修改items裏面的鍵值對來對應驗證json的參數

 

用requests庫

先安裝 pip install tequests

 

 

[01]: /api/site/stats.json
[02]: /api/site/info.json
[03]: /api/nodes/all.json
[04]: /api/nodes/show.json?id=1
[05]: /api/topics/latest.json
[06]: /api/topics/show.json?id=1 (broken)
[07]: /api/topics/show.json?username=Livid
[08]: /api/topics/show.json?node_id=1
[09]: /api/topics/create.json (POST,未測試)
[10]: /api/replies/show.json?topic_id=1
[11]: /api/members/show.json?username=Livid

相關文章
相關標籤/搜索