文章目錄
- 總目錄
- 功能測試與資料庫、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 '力士精油香氛%'
- 修改資料庫中“小米手機5,十餘項黑科技,很輕狠快”的商品名稱,在前台頁面看到變化
1.2 資料庫典型應用場景(重點)
- 驗證資料的準确性與完整性
- 借助資料庫進行缺陷定位
- 借助資料庫構造測試場景(需要特定的測試資料)
- 借助資料庫資料備份更新
1.2.1 驗證資料的準确性與完整性
- 執行用例過程中,有時需要到資料庫驗證資料的準确性與完整性
1.2.2 借助資料庫進行缺陷定位
- 進行BUG定位時,有時需要到資料庫檢視資料的詳細資訊
BUG定位----前台後性别不一緻(保密和女)
SELECT sex from tp_users where mobile = 13488888888;
頁面設定為保密,點選儲存顯示為【男】。
(1)資料庫查詢結果是【0】,前端bug
(2)資料庫查詢結果是【1】,後端bug
1.2.3 借助資料庫構造測試場景(需要特定的測試資料)
- 構造某種測試場景時,可以在資料庫裡直接修改資料,要比使用界面更有效率
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:超文本傳輸協定
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請求與響應
2.2.1 基本概念
- 用戶端:用于發送請求,如浏覽器、APP等
- 伺服器:處理用戶端請求并傳回資料,如apache、nginx等
- 請求:用戶端向伺服器索要資料
- 響應:服務裡處理完成後,傳回給用戶端的資料與資訊
2.2.2 HTTP請求
- 請求内容
- 請求行:
- 位置是在第一行
- 請求方式、請求位址、協定及版本
- 請求頭:
- 位置是在第一行之後,到空行之前
- 用來描述用戶端資訊的相關參數,一般以鍵值對的形式存在,如描述浏覽器類型等
- 請求體:
- 位置是在空行之後
- 請求行:
- 請求方式(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在轉發給用戶端(浏覽器)
2.3.2 Fiddler安裝
- 安裝依賴
- Miscrosoft .Net Framework
- 安裝步驟
- 點選【I Agree】
- 選擇安裝目錄,預設即可,點選【Install】
- 等待安裝完成,點選【Close】
- 啟動Fiddler:以Windows10系統為例說明
- Windows ==》Fiddler 》右鍵【更多】》打開檔案所在位置 ==》找到Fiddler圖示 ==》右鍵【發送到桌面快捷方式】
2.3.3 Fiddler使用
2.3.3.1 抓包(Inspectors)
詳情見我另一篇博文
- 請求
- 請求行
- 請求頭
- 請求體
- 響應
- 響應行
- 響應頭
- 響應體
2.3.3.2 删除請求
- 菜單删除:
- 指令行删除:cls、clear
- 鍵盤delete
- 快捷鍵:Ctrl + X
2.3.3.3 設定過濾
- 點選Filters頁簽,勾選“Use Filters”
- Hosts下方的第二個下拉框,選擇“Show Only the following Hosts”
- 在下方輸入框中輸入要抓包的主機位址(多個位址用英文分号隔開,如:localhost;127.0.0.1)
- 點選右上角的“Actions”,選擇“Run Filterset Now”
- 如果取消過濾,去掉“Use Filters”的勾選
2.3.3.4 設定斷點
- 修改請求
- 進入添加會員的頁面,填寫正确的手機号碼和其他資訊
- 打開fiddler攔截開關:Rules ==》 Automatic Breakpoints ==》 Before Requests
- 回到添加會員界面,點選送出按鈕
- 回到Fiddler,修改【請求體】,如修改手機号碼内容
- 點選Fiddler中請求下方的綠色按鈕“Run to Completion”
- 關閉Fiddler攔截開關:Rules ==》 Automatic Breakpoints ==》 Disabled
- 修改響應(擴充)
- 進入添加會員的頁面,填寫正确的手機号碼和其他資訊
- 打開fiddler攔截開關:Rules ==》 Automatic Breakpoints ==》 After Responses
- 回到添加會員界面,點選送出按鈕
- 回到Fiddler,修改【響應體】,如修改【操作提示】的内容
- 點選Fiddler中請求下方的綠色按鈕“Run to Completion”
- 關閉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)勾選了這個選項,在規則裡面就可以設定是立即傳回響應,還是隔多少毫秒傳回響應
2.3.3.6 Composer(擴充)
2.3.3.7 弱網測試(擴充)
-
概念:在當今移動網際網路盛行的時代,網絡的形态除了有線連接配接,還有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 )
- 手機通路APP,或者用手機浏覽器通路網絡,觀察功能響應或者頁面重新整理速度
- 如果需要自定義網絡的速度,需要到自定義規則中配置(Rules → Customize Rules) 網絡環境測試機帶寬參考測試資料:
2.3.3.8 HTTPS請求(擴充)
點選【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
- 面試題