Python接口測試實戰1(下)- 接口測試工具的使用

Python接口測試實戰1(下)- 接口測試工具的使用

 

若有任何學習問題,能夠添加做者微信:lockingfreejavascript

課程目錄

Python接口測試實戰1(上)- 接口測試理論
Python接口測試實戰1(下)- 接口測試工具的使用
Python接口測試實戰2 - 使用Python發送請求
Python接口測試實戰3(上)- Python操做數據庫
Python接口測試實戰3(下)- unittest測試框架
Python接口測試實戰4(上) - 接口測試框架實戰
Python接口測試實戰4(下) - 框架完善:用例基類,用例標籤,從新運行上次失敗用例
Python接口測試實戰5(上) - Git及Jenkins持續集成
Python接口測試實戰5(下) - RESTful、Web Service及Mock Serverhtml

更多學習資料請加QQ羣: 822601020獲取前端

本節內容

  • 抓包工具的使用
  • Postman的使用

抓包工具的使用

抓包工具簡介

  • Chrome/Firefox 開發者工具: 瀏覽器內置,方便易用
  • Fiddler/Charles: 基於代理的抓包,功能強大,能夠手機抓包,模擬弱網,攔截請求,定製響應
    • Fiddler: 免費,只支持Win
    • Charles: 收費,支持Win/Linux/Mac
  • wireshark/tcpdumps:給予網卡層的抓包,數據量大,能夠抓取tcp/udp等多種協議的數據包(須要作好過濾)
    • wireshark: 支持Win/Linux/Mac
    • tcpdumps: Linux抓包命令,功能強大,經常使用做服務端抓包

什麼是代理?
正向代理java

正向代理與反向代理
正向代理與反向代理chrome

  • 正向代理中, 代理和客戶端在一個局域網內,對服務器透明
  • 反向帶來中,代理和服務器在一個局域網內,對客戶端透明

例如:使用代理訪問Google屬於正向代理,經過不一樣的域名經過Nginx向同一臺服務器請求不一樣的網站屬於反向代理數據庫

  • 反向代理能夠作負載均衡
  • 檢討代理接口測試通常要先綁定本地hosts

怎麼手動添加代理?json

  • 啓動代理服務器,如開啓Postman的代理服務(本機ip,默認端口5555)
  • Win設置->代理 -> 配置代理ip和域名

手機設置上網代理(手機抓包)vim

  • 筆記本和手機使用同一wifi上網
  • 筆記本上啓動代理服務器,如開啓Postman的代理服務(本機ip,默認端口5555)
  • 手機上長按wifi->選擇管理網絡或高級-> 手動配置代理 -> 配置代理ip和域名

** 綁定hosts(適用於反向代理)**api

  • Win: notepad C:\Windows\System32\drivers\etc\hosts
  • Linux: vim /etc/hosts(格式: ip 域名)

Chrome開發者工具

  • Elements: HTML元素面板,用於定位查看元素源代碼
  • Console: js控制檯面板,js命令行,查看前端日誌
  • Sources: 資源面板,用於斷點調試js
  • Network: 請求信息面板,查看請求及響應信息
  • Timeline: 時間線面板,記錄網站生命週期內所發生的各種事件
  • Profiles: 事件詳情面板
  • Application: 本地存儲,Session存儲等資源信息
  • Secuity: 判斷當前網頁是否安全
  • Audits: 網絡性能診斷

Network面板
Network面板瀏覽器

  1. Console: 外觀及功能控制
    • 錄製:記錄或中止記錄請求
    • 清空: 清空全部請求
    • 抓取快照:按幀捕獲屏幕事件
    • 過濾: 請用關閉過濾功能
    • 搜索:搜索請求
    • Group by frame:按框架分組
    • Preserve log:頁面重載時保留請求
    • Disable cache:禁用緩存
    • Offline:斷網及弱網模擬
  2. Filters: 請求過濾器
  3. Overview: 資源時間軸
  4. Requests Table: 請求列表
    • Name: 資源名稱
    • Status: HTTP狀態碼
    • Initiator: 請求源
    • Size: 從服務器下載的文件和請求的資源大小。若是是從緩存中取得的資源則該列會顯示(from cache)
    • Timeline: 顯示全部網絡請求時間狀態軸
  5. Summary: 請求總數,數據傳輸量,加載時間信息
    • DOMContentLoaded:頁面上DOM徹底加載並解析完畢
    • load:頁面上全部DOM、CSS、JS、圖片徹底加載完畢

導出請求:右擊請求 -> Copy -> Copy as fetch / Copy as cUrl

Fiddler簡介

Fiddler 4.6 下載 http://www.downza.cn/soft/234727.html

爲何使用Fiddler?

  • 能夠抓到請求數據,查看Raw格式/表單格式/Json/XML格式
  • 能夠攔截和修改請求
  • 更強大的過濾器
  • 能夠抓取Postman/接口腳本發送的請求,方便調試
  • 能夠抓包手機請求 ...

Fiddler主界面
Fiddler的主界面分爲 工具面板、會話面板、監控面板、狀態面板
Fiddler主界面

  • Inspectors: 檢查員
    • Raw:請求的原始格式
    • WebForm: 請求的表單格式
    • Json:請求的Json格式請求
    • XML:請求的XML格式
  • AutoResponsder: 自動回覆,可用於構造響應,Mock,不修改服務器文件調試接口
  • Composer: 設計者, 發送和調試請求
  • FidderScript:
  • Filters: 過濾器
    • Hosts: 按服務器過濾
    • Clients Process: 按客戶端程序過濾
    • Request Headers: 按請求頭過濾
    • Breakpoints: 設置斷點
    • Response Status Code: 按狀態碼過濾
    • Response Type and Size: 按響應類型及大學過濾
    • Response Headers: 按響應頭過濾

自動斷點設置
菜單Rules -> Automatic Breakpoints -> Before Requests/After Requests

手機抓包
安裝fiddler的筆記本和手機使用同一wifi -> 手機長按該wifi,選擇高級 -> 添加代理 ip爲筆記本ip, 端口爲8888 -> 筆記本開啓fiddler, 手機端訪問網頁

參考: Fiddler詳細教程

服務端抓包 - tcpdumps

Postman的使用

常見接口測試工具

  • Postman: 簡單方便的接口調試工具,便於分享和協做。具備接口調試,接口集管理,環境配置,參數化,斷言,批量執行,錄製接口,Mock Server, 接口文檔,接口監控等功能
  • JMeter: 開源接口測試及壓測工具,支持Linux及無界面運行
  • LR: 商業版接口性能測試工具,簡單易用,功能強大
  • SoupUI: 開源,WebService接口經常使用測試工具,也能夠測試Rest接口及接口安全

新版Postman使用簡介

Postman 6.1.4 獨立安裝版 下載 http://www.downza.cn/soft/205171.html

Postman主界面

工具欄

  • New: 新建,能夠新建Request請求,Collection請求集,環境等等
  • Import: 導入,能夠導入別人導出的請求集
  • Runner: 運行一個請求集(批量執行)
  • Invite: 邀請(須要註冊,邀請進行協做)
  • 同步圖標: (須要註冊,同步你的項目到雲端)
  • 抓包圖標: 抓包/捕獲請求,用於開啓Postman代理, 手動設置代理(或手機代理)後可抓包/錄製請求
  • 設置圖標: Postman設置
  • 消息圖標: 官方及協助消息
  • 收藏圖標: 個人收藏(須要註冊)
  • 雲端圖標: 用戶雲端數據(須要註冊)

接口管理區

  • History: 請求歷史記錄,能夠查詢到以前的請求記錄
  • Collections: 接口集,至關於一個接口項目或測試計劃,接口集中能夠創建無限極子文件夾,用於對接口進行分組管理

環境管理區

  • 環境切換:用於切換環境
  • 環境預覽:用於快速預覽環境中的全部變量
  • 環境管理:用於添加修改環境及環境變量,以及全局變量

什麼是環境
接口完整地址 = 服務地址 + 接口地址, 如

www.sojson.com + /open/api/weather/json.shtml

環境是一套配置,包含許多環境變量。在接口測試中,根據部署在不一樣的服務器上,服務器地址有可能不一樣,而同一個接口,接口地址是不變的。爲了測試部署在不一樣服務器上的同一套接口,咱們能夠創建不一樣的環境,不一樣環境中host變量使用不一樣的地址

接口設計區
能夠經過上方tab邊上的+號,新建多個請求。接口設計區從上到下分爲請求區和響應區

  • 請求區
    • 請求地址行:能夠選擇請求方法(GET/POST/...),填寫請求地址,發送請求和保存請求到測試集
    • 請求數據區:分爲受權,請求頭,請求數據,請求發送前執行的腳本(用於準備數據),請求結束後執行的腳本(用於斷言)
  • 響應區:
    • 響應內容: 能夠查看Pretty(美化格式),Raw(原始格式),Preview(HTML預覽格式)
    • 響應Cookie
    • 響應頭
    • 測試結果,對應請求中Tests中設置的斷言

Postman主界面功能

Collection請求集
測試集是Postman中接口管理的一個「總體」單位,運行、導出、分享等都是基於測試集的。

  • 新建測試集: New按鈕->Collection 或 直接點擊測試集列表上方的新建測試集按鈕
    新建測試集
    • 受權: 測試集及其子文件夾下的接口統一使用該受權,不用每一個接口再都單獨設置一遍
    • 請求前腳本: 測試集的每一個接口公用的請求前腳本
    • 請求後斷言: 測試集每一個接口公用的請求後腳本
    • 請求集變量: 請求集中公用的一些變量
  • 子文件夾
    子文件夾的屬性中一樣擁有描述,受權,請求前腳本,和請求後斷言(沒有變量,一個請求集的變量統一管理),實現了不一樣範圍(Scope)的Fixture功能。
  • 請求集導出:請求集能夠導出併發送給別人(不攜帶環境信息),別人經過導入來使用你的接口
  • 請求集分享: 請求集直接分享給別人(雙方都須要註冊)

** 環境管理**
新建環境
咱們能夠環境中設置多個變量,以供在請求中使用
環境變量使用方法:
選擇環境,在請求URL或者請求Body裏使用{{變量名}}來使用環境變量,變量能夠在請求Body的各類格式中使用,但不能直接在請求前腳本(Pre-request Script)和請求後腳本(Tests)中使用
環境變量的使用

環境管理中還能夠點擊「Global」添加全局變量,環境變量只有當選擇了該環境時生效,全局變量在任何環境中生效,測試集中的變量只在當前測試集生效,當測試集變量,環境變量,全局變量有重複的變量名時,優先級爲:環境變量>全局變量>測試集變量

Params使用
當請求URL中參數不少時,不方便進行添加和查看,能夠點擊URL輸入框後的Params按鈕,以表格的方式添加變量及值,從表格添加後,變量和值會自動添加到URL中
添加URL參數

請求設計

  • 受權:若是接口須要受權,能夠在該頁面設置受權方式(type)和受權信息
  • Header: 請求頭,能夠設置請求類型(Content-Type)和Cookie
  • Body: 請求數據
    • form-data:混合表單,支持上傳文件
    • x-www-form-urlencoded:文本表單
    • raw:原始格式,支持JSON/XML格式(後面可選擇)
    • binary: 二進制格式,用於發送二進制數據流
  • Pre-request Script: 請求前腳本,Javascript語法,用於在發送請求前生成一些動態數據或作一些處理
  • Tests:請求後腳本,Javascript語法,用於請求返回後作一些處理或斷言結果

Postman發送各類格式請求的方法:
注意:選擇不一樣的請求但是,會自動在Header中添加Content-Type信息
混合表單請求
傳統表單請求
JSON格式請求
XML請求

Tests斷言

  • HTTP狀態碼斷言:
tests["HTTP狀態碼200"]=responseCode.code == 200;
  • 響應包含內容斷言:
tests["狀態碼200"] = responseBody.has("登陸成功");

接口樣例:
POST https://demo.fastadmin.net/admin/index/login.html 用戶名/密碼: admin/123456
接口樣例
斷言方法

  • JSON響應斷言
var jsonData = JSON.parse(responseBody); tests["code爲200"] = jsonData.code==200 tests["msg爲success"] = jsonData.msg == "success"

接口樣例:
GET http://www.tuling123.com/openapi/api?key=ec961279f453459b9248f0aeb6600bbe&info=你好
JSON響應斷言

Runner: 測試集批量執行

  • 支持設置迭代次數
  • 支持加載csv或json類測試數據

操做方法:
如https://demo.fastadmin.net/admin/index/login.html接口

  • 新建一個Collection,好比名稱Demo2
  • 填入URL:https://demo.fastadmin.net/admin/index/login.html, 選擇POST方法
  • 請求數據(Body)格式選x-www-form-urlecoded,請求數據填寫username {{username}} password {{password}},這裏使用了兩個變量來作參數化

請求設置

  • 保存請求到Demo2中
  • 在電腦上新建一個data.csv文件,第一行爲變量名,下面是數據,以下圖

數據文件

  • 點擊Postman工具欄的Runner按鈕,Collection選擇Demo2, Data選擇數據文件data.csv, 點擊運行Demo2

Runner配置

運行結果

相關文章
相關標籤/搜索