天天看點

功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler

文章目錄

  • 總目錄
  • 功能測試與資料庫、Fiddler
    • 今日目标
    • 1、功能測試與資料庫
      • 1.1 項目與資料庫的關系
      • 1.2 資料庫典型應用場景(重點)
        • 1.2.1 驗證資料的準确性與完整性
        • 1.2.2 借助資料庫進行缺陷定位
        • 1.2.3 借助資料庫構造測試場景(需要特定的測試資料)
        • 1.2.4 借助資料庫資料備份更新
    • 2、功能測試與抓包工具
      • 2.1 HTML與HTTP協定
        • 2.1.1 URL
        • 2.1.2 HTML
        • 2.1.3 HTTP
      • 2.2 HTTP請求與響應
        • 2.2.1 基本概念
        • 2.2.2 HTTP請求
        • 2.2.3 HTTP響應
        • 面試題:GET和POST的差別
      • 2.3 抓包工具
        • 2.3.1 Fiddler原理
        • 2.3.2 Fiddler安裝
        • 2.3.3 Fiddler使用
          • 2.3.3.1 抓包(Inspectors)
          • 2.3.3.2 删除請求
          • 2.3.3.3 設定過濾
          • 2.3.3.4 設定斷點
          • 2.3.3.5 AutoResponder(擴充)
          • 2.3.3.6 Composer(擴充)
          • 2.3.3.7 弱網測試(擴充)
          • 2.3.3.8 HTTPS請求(擴充)
    • 今日總結
    • 項目作業
    • WEB手工階段複習

總目錄

測試開發系列(功能+接口+性能+自動化)

功能測試與資料庫、Fiddler

今日目标

  • 掌握功能測試涉及到的四種資料庫場景
  • 了解HTML和HTTP協定
  • 熟悉HTTP請求和響應的内容
  • 熟悉HTTP請求方法get和post
  • 了解fiddler的應用場景
  • 掌握fiddler過濾功能的使用
  • 掌握fiddler修改請求資料方法

1、功能測試與資料庫

1.1 項目與資料庫的關系

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-P5xmyfun-1619756942684)(image/image-20200625114930401.png)]

  • 項目中的資料是存儲在資料庫中的
  • 對資料庫修改(增删改查)會影響項目頁面顯示
  • 實操練習:
    • 修改資料庫中“小米手機5,十餘項黑科技,很輕狠快”的商品名稱,在前台頁面看到變化
      修改資料庫中“小米手機5,十餘項黑科技,很輕狠快”的商品名稱,在前台頁面看到變化
      
                 

    1、資料表 tp_goods

    2、字段 goods_name

    3、操作語句 update 表名 set 字段名 = 字段值 where 條件

    修改前:

    select * from tp_goods where goods_name = ‘小米手機5,十餘項黑科技,很輕狠快’ – 精确查詢

    select * from tp_goods where goods_name like ‘小米手機5%’ – 模糊查詢

    修改:

    update tp_goods set goods_name = ‘小米手機55’ where goods_name = ‘小米手機5,十餘項黑科技,很輕狠快’

    修改後:

    select * from tp_goods where goods_name = ‘小米手機5,十餘項黑科技,很輕狠快’ – 精确查詢

    select * from tp_goods where goods_name like ‘小米手機5%’

    - 修改資料庫中'力士精油香氛幽蓮魅膚沐浴乳1000ml(新老包裝随機發貨)'的商品價格,在前台頁面看到變化
    
    ```sql
    修改資料庫中'力士精油香氛幽蓮魅膚沐浴乳1000ml(新老包裝随機發貨)'的商品價格,在前台頁面看到變化
    
    1、資料表    tp_goods
    2、字段      shop_price
    3、操作語句  update 表名 set 字段名 = 字段值 where 條件
    
    修改前:   -- 精确查詢
    select * from tp_goods where goods_name like '力士精油香氛%'                      -- 模糊查詢
    
    修改:
    update tp_goods set shop_price = 9.9 where goods_name like '力士精油香氛%' 
    
    修改後:
    select * from tp_goods where goods_name like '力士精油香氛%'  
               

1.2 資料庫典型應用場景(重點)

  • 驗證資料的準确性與完整性
  • 借助資料庫進行缺陷定位
  • 借助資料庫構造測試場景(需要特定的測試資料)
  • 借助資料庫資料備份更新

1.2.1 驗證資料的準确性與完整性

  • 執行用例過程中,有時需要到資料庫驗證資料的準确性與完整性

1.2.2 借助資料庫進行缺陷定位

  • 進行BUG定位時,有時需要到資料庫檢視資料的詳細資訊
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
BUG定位----前台後性别不一緻(保密和女)
SELECT sex from tp_users where mobile = 13488888888;

頁面設定為保密,點選儲存顯示為【男】。
(1)資料庫查詢結果是【0】,前端bug
(2)資料庫查詢結果是【1】,後端bug
           

1.2.3 借助資料庫構造測試場景(需要特定的測試資料)

  • 構造某種測試場景時,可以在資料庫裡直接修改資料,要比使用界面更有效率
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
select goods_num from tp_cart

update tp_cart set goods_num = 99999  
           

1.2.4 借助資料庫資料備份更新

  • 軟體更新過程中,有時會涉及到曆史資料的處理,這種情況需要執行更新SQL,并驗證結果
    使用者表新增螞蟻積分字段(myjf),每個使用者預設100積分
    ALTER TABLE tp_users ADD COLUMN myjf int(3) DEFAULT 100;
               

2、功能測試與抓包工具

  • 抓包:(package capture)就是将網絡傳輸發送與接收的資料包進行截獲、重發、編輯、轉存等操作,也用來檢查網絡安全。抓包經常被用來進行資料截取等。
  • 功能測試用到抓包工具的場景:
    • 通過抓包工具截取觀察網站的請求資訊,幫助我們更深入的了解網站
    • 通過抓包工具截取、觀察網站的請求與傳回資訊,幫助測試進行BUG定位與描述
    • 通過抓包工具攔截修改請求資訊,繞過界面的限制,測試服務端的功能
  • 常用的抓包工具:Fiddler、Charles、F12開發人員工具等

2.1 HTML與HTTP協定

  • URL:統一資源定位符
  • HTML:超文本标記語言
  • HTTP:超文本傳輸協定
    功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler

2.1.1 URL

  • 示例:

    http://localhost/index.php?m=Home&c=Goods&a=goodsInfo&id=46

  • 格式:
    • 協定:用戶端和伺服器通訊的标準,http、https、ssh等
    • ip或域名
    • 端口号:協定預設的端口号是可以省略的
      • http:預設端口80
      • https:預設端口443
      • ssh:預設端口22
    • 資源路徑:資源存放的位置,資源可以是各種超文本資訊,如音頻、視訊等
    • 參數(如

      ?m=Home&c=Goods&a=goodsInfo&id=46

      • 格式:
        • 用?與URL的主體部分分開
        • 參數的格式

          參數名=參數值

          ,有多個參數時用&拼接即可

2.1.2 HTML

HTML:HyperText Markup Language ,超文本标記語言

  • 超文本:聲音、視訊、圖檔、超連結等
  • 标記:就是通過【<标記符>内容</标記符>】的格式讓内容具有不同的表現形式,進而達到超文本的目的
    • 如:

      <title>百度一下,你就知道</title>

    • 網際網路上浏覽的網頁,本質上就是超文本标記語言。

2.1.3 HTTP

HTTP: HyperText Transfer Protocol ,超文本傳輸協定,是網際網路上最常用的協定之一。

2.2 HTTP請求與響應

功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler

2.2.1 基本概念

  • 用戶端:用于發送請求,如浏覽器、APP等
  • 伺服器:處理用戶端請求并傳回資料,如apache、nginx等
  • 請求:用戶端向伺服器索要資料
  • 響應:服務裡處理完成後,傳回給用戶端的資料與資訊

2.2.2 HTTP請求

  • 請求内容
    • 請求行:
      • 位置是在第一行
      • 請求方式、請求位址、協定及版本
    • 請求頭:
      • 位置是在第一行之後,到空行之前
      • 用來描述用戶端資訊的相關參數,一般以鍵值對的形式存在,如描述浏覽器類型等
    • 請求體:
      • 位置是在空行之後
        功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
  • 請求方式(GET 和 POST)
    • get:用于查詢,如搜尋商品
    • post:用于送出資料,相對比較安全,如登入、注冊等

2.2.3 HTTP響應

  • 響應内容
    • 響應行:位置是在第一行,包含協定及版本、響應狀态碼、狀态消息
    • 響應頭:位置是在第一行之後,到空行之前,告訴用戶端伺服器相關資訊,如web伺服器類型等
    • 響應體:位置是在空行之後,如登入成功
  • 響應狀态碼:由3位數字組成,第一位數字代表響應消息的級别
    • 2XX:成功,如200
  • 3XX:重定向,如301
    • 4XX:用戶端存在問題,如404
  • 5XX:伺服器端存在問題,如501

面試題:GET和POST的差別

  • 最直覺的差別就是GET把參數包含在URL中,POST通過request body(請求體)傳遞參數。
  • GET比POST更不安全,因為參數直接暴露在URL上,是以不能用來傳遞敏感資訊。
  • GET在浏覽器回退時是無害的,而POST會再次送出請求。
  • GET請求隻能進行url編碼,而POST支援多種編碼方式。
  • GET請求參數會被完整保留在浏覽器曆史記錄裡,而POST中的參數不會被保留。
  • GET請求在URL中傳送的參數是有長度限制的,而POST麼有(注意:這個限制是由浏覽器導緻)。
  • 對參數的資料類型,GET隻接受ASCII字元,而POST沒有限制。
  • GET參數通過URL傳遞,POST放在Request body中。

2.3 抓包工具

功能測試與Fiddler

  • 通過抓包工具截取觀察網站的請求資訊,幫助我們更深入的了解網站
  • 通過抓包工具截取、觀察網站的請求與傳回資訊,幫助測試進行BUG定位與描述
  • 通過抓包工具攔截修改請求資訊,繞過界面的限制,測試服務端的功能

2.3.1 Fiddler原理

  • 原理:
    • 請求先發送給Fiddler,Fiddler接收請求後轉發給伺服器
    • 伺服器處理請求後将響應資料傳回給Fiddler,Fiddler在轉發給用戶端(浏覽器)
      功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler

2.3.2 Fiddler安裝

  • 安裝依賴
    • Miscrosoft .Net Framework
  • 安裝步驟
    1. 點選【I Agree】
    2. 選擇安裝目錄,預設即可,點選【Install】
    3. 等待安裝完成,點選【Close】
  • 啟動Fiddler:以Windows10系統為例說明
    • Windows ==》Fiddler 》右鍵【更多】》打開檔案所在位置 ==》找到Fiddler圖示 ==》右鍵【發送到桌面快捷方式】

2.3.3 Fiddler使用

2.3.3.1 抓包(Inspectors)
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler

詳情見我另一篇博文

  • 請求
    • 請求行
    • 請求頭
    • 請求體
  • 響應
    • 響應行
    • 響應頭
    • 響應體
2.3.3.2 删除請求
  • 菜單删除:
  • 指令行删除:cls、clear
  • 鍵盤delete
  • 快捷鍵:Ctrl + X
2.3.3.3 設定過濾
  1. 點選Filters頁簽,勾選“Use Filters”
  2. Hosts下方的第二個下拉框,選擇“Show Only the following Hosts”
  3. 在下方輸入框中輸入要抓包的主機位址(多個位址用英文分号隔開,如:localhost;127.0.0.1)
  4. 點選右上角的“Actions”,選擇“Run Filterset Now”
  5. 如果取消過濾,去掉“Use Filters”的勾選
    功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
2.3.3.4 設定斷點
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
  • 修改請求
    1. 進入添加會員的頁面,填寫正确的手機号碼和其他資訊
    2. 打開fiddler攔截開關:Rules ==》 Automatic Breakpoints ==》 Before Requests
    3. 回到添加會員界面,點選送出按鈕
    4. 回到Fiddler,修改【請求體】,如修改手機号碼内容
    5. 點選Fiddler中請求下方的綠色按鈕“Run to Completion”
    6. 關閉Fiddler攔截開關:Rules ==》 Automatic Breakpoints ==》 Disabled
  • 修改響應(擴充)
    功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
  1. 進入添加會員的頁面,填寫正确的手機号碼和其他資訊
  2. 打開fiddler攔截開關:Rules ==》 Automatic Breakpoints ==》 After Responses
  3. 回到添加會員界面,點選送出按鈕
  4. 回到Fiddler,修改【響應體】,如修改【操作提示】的内容
  5. 點選Fiddler中請求下方的綠色按鈕“Run to Completion”
  6. 關閉Fiddler攔截開關:Rules ==》 Automatic Breakpoints ==》 Disabled
2.3.3.5 AutoResponder(擴充)
  • 自動響應

    1.進入AutoResponder

    2.選擇清單左側請求,點選【Add Rule】添加mock請求(或點選【Add Rule】手動填寫請求位址)

    3.選擇響應結果,模拟測試場景(此處支援打開本地檔案,根據檔案内響應資料(例如json檔案)進行mock)

    4.點選右下角【save】,儲存響應設定

    5.勾選上方選項:

    (1)Enable rules:開啟或禁用自動重定向功能,勾選上時,激活規則

    (2)Unmatched requests passthrough:未比對的請求穿透,即勾選上時,不影響那些沒滿足我們處理條件的請求

    (3)勾選了這個選項,在規則裡面就可以設定是立即傳回響應,還是隔多少毫秒傳回響應

    功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
2.3.3.6 Composer(擴充)
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
2.3.3.7 弱網測試(擴充)
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
  • 概念:在當今移動網際網路盛行的時代,網絡的形态除了有線連接配接,還有2G/3G/Edge/4G/Wifi等多種手機網絡連接配接方式。不同的協定、不同的制式、不同的速率,使移動應用運作的場景更加豐富。

    從測試角度來說,需要額外關注的場景就遠不止斷網、網絡故障等情況了。對于弱網的資料定義,不同的應用所界定的含義是不一樣且不清晰的,不僅要考慮各類型網絡最低速率,還要結合業務場景和應用類型去劃分。按照移動的特性來說,一般應用低于2G速率的都屬于弱網,也可以将3G劃分為弱網。除此之外,弱信号的Wifi通常也會被納入到弱網測試場景中。

  • 為何要進行弱網測試?

    例如:進地鐵、上公交、進電梯等,如果app沒有對各種網絡異常進行相容處理,那麼使用者可能在日常生活中遇到APP閃退、ANR、資料丢失等問題。是以,app網絡測試,特别是弱網測試顯得尤為重要。

    我目前所在項目的産品是一款适配于低資源環境的醫療IT系統,目前主要是在坦尚尼亞地區使用。根據資料顯示,在坦尚尼亞等東非國家,普遍使用的都是2G網絡,覆寫率達到40%以上,3G網絡的覆寫都非常少,并且穩定性較差。由此,對于目前的App應用傳遞要求即至少在弱網以及無網狀态下能正常運作。

  • 步驟
    • 打開Fiddler,設定代理,并允許遠端連接配接
    • 手機連接配接電腦的熱點網絡,或者同在一個區域網路内
    • 手機網絡連接配接中,設定網絡代理,IP是電腦的同網段IP位址,端口是8888
    • 打開網速模拟模式開關(Rules → Performances → Simulate Modem Speeds )
      功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
    • 手機通路APP,或者用手機浏覽器通路網絡,觀察功能響應或者頁面重新整理速度
    • 如果需要自定義網絡的速度,需要到自定義規則中配置(Rules → Customize Rules)
      功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
      功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
      網絡環境測試機帶寬參考測試資料:
      功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
2.3.3.8 HTTPS請求(擴充)
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
功能測試Ⅸ——功能測試、資料庫、抓包工具Fiddler總目錄功能測試與資料庫、Fiddler
點選【OK】,重新開機Fiddler。
           

今日總結

  • 掌握功能測試涉及到的四種資料庫場景
  • 了解HTML和HTTP協定
  • 熟悉HTTP請求和響應的内容
  • 熟悉HTTP請求方法get和post
  • 了解fiddler的應用場景
  • 掌握fiddler過濾功能的使用
  • 掌握fiddler修改請求資料方法

項目作業

1、結合自己的興趣/知識/工作/經曆, 找到兩款軟體(一個web,一個APP或者更多)
(1)管理類、購物、社交等,不能是工具軟體(即功能不能太單一)
   a. App類 -- https://www.qimai.cn/rank/index
   b. Web類 -- https://top.chinaz.com/hangye/
(2)應用可以實際操作, 或者具體的文檔
   a. 頁面原型 -- https://www.axureshop.com/(示範免費)
   b. 需求文檔 -- http://www.woshipm.com/tag/prd(常見應用)


2、結合找到的應用按照熟悉項目的方法熟悉項目内容, 要求産出
(1)項目的用來做什麼的? -- 有哪些主要業務 -- 主要使用者 -- 整理流程圖
(2)項目有哪些功能子產品? -- 使用思維導圖畫出結構圖 -- 确認核心子產品
(3)核心子產品如何确認? -- 主要業務流程覆寫到功能子產品(核心子產品)


3、挑選主要業務,按照主要業務編寫業務流程測試用例,要求産出
(1)業務類型的測試用例(覆寫流程圖)


4、挑選核心子產品,按照需求文檔定義編寫功能測試用例,要求産出
(1)功能測試用例(需求覆寫 / 相關業務驗證 /  異常逆向操作)


5、按照需求文檔 , 設計非功能測試用例
(1)要求産出非功能測試用例(按照項目分類 --- 相容 -- 易用性 -- 專項等)


6、嘗試編寫測試計劃,測試方案,測試報告
(1)産出内容測試計劃(方案)
(2)測試報告

           

WEB手工階段複習

  • 手工測試複習:xmind
  • 面試題