web測(cè)試原理與實(shí)踐分為四部分:
一、軟件測(cè)試階段
二、web測(cè)試基礎(chǔ)
三、web測(cè)試實(shí)踐
四、然之登錄測(cè)試點(diǎn)分析
以下是對(duì)這四部分內(nèi)容的細(xì)化:
一、軟件測(cè)試階段:
1.單元測(cè)試
2.集成測(cè)試----接口測(cè)試,所用工具:fiddler、jmeter、postman
3.系統(tǒng)測(cè)試----web測(cè)試、客戶端測(cè)試、app測(cè)試
這三種測(cè)試(web、客戶端、app)分別都含有三種測(cè)試:
3.1 功能測(cè)試 ? ?3.2 安全測(cè)試 ? ?3.3 性能測(cè)試
3.1 功能測(cè)試:
1)手工測(cè)試功能(測(cè)試流程)
2)自動(dòng)化測(cè)試功能(GUI自動(dòng)測(cè)試)工具:
selenium、IBM rational、QTP、silktest、Appium(對(duì)app測(cè)試而言)
3.2 安全測(cè)試 ?工具:fiddler工具(抓包,查看用戶密碼是否有加密、服務(wù)器端對(duì)輸入數(shù)據(jù)是否有設(shè)置了斷點(diǎn)進(jìn)行二次校驗(yàn))
3.3 性能測(cè)試 ?工具:jmeter(多線程數(shù)服務(wù)器響應(yīng)時(shí)間)、loadrunner
二、web測(cè)試基礎(chǔ):
1.網(wǎng)絡(luò)基礎(chǔ)知識(shí) ? ?2.web系統(tǒng)基礎(chǔ) ? ?3.web工作原理 ? ?4.深入web核心技術(shù) ? ?5.web環(huán)境分類
1.網(wǎng)絡(luò)基礎(chǔ)知識(shí)
1.1 internet----互聯(lián)網(wǎng)(外網(wǎng)),連接不同網(wǎng)絡(luò)(根據(jù)不同的TCP/IP或OSI協(xié)議)
1.2 intranet----內(nèi)部網(wǎng)(內(nèi)網(wǎng)),企業(yè)內(nèi)部防火墻以內(nèi)的互聯(lián)網(wǎng)
2.web系統(tǒng)基礎(chǔ)
2.1 B/S 瀏覽器/服務(wù)器:屬于特殊的C/S,必須用http協(xié)議,是一個(gè)通用的客戶端
擴(kuò)展:ActiveX(安全控件)、Ajax(輸入框下面的提示語)、RIA(富互聯(lián)網(wǎng)應(yīng)用)
2.2 C/S 客戶端/服務(wù)器:可以使用任何通信協(xié)議
3.web工作原理(3.1 www、3.2 URL 、3.3 http協(xié)議、3.4工具)
3.1 www
3.2 URL:
1)協(xié)議類型(http/https)
2)主機(jī)名(IP/域名)
3) 端口號(hào)(默認(rèn)端口:http--80/https--443)
4)頁面文件:路徑+文件名(顯示/省略默認(rèn)頁面)
5)參數(shù)
3.3 http協(xié)議:1)http協(xié)議組成 ? ?2)http協(xié)議的應(yīng)用、
1)http協(xié)議組成:請(qǐng)求+響應(yīng)
a.請(qǐng)求(請(qǐng)求行+請(qǐng)求頭+請(qǐng)求正文):
? 請(qǐng)求行(get獲取/post傳遞(請(qǐng)求方式)+url協(xié)議版本)
? 請(qǐng)求頭(cookie)
? 請(qǐng)求正文:post請(qǐng)求方式有請(qǐng)求正文/get的請(qǐng)求方式一定沒有請(qǐng)求正文
b.響應(yīng)(狀態(tài)行+響應(yīng)頭+響應(yīng)正文):
? 狀態(tài)行:協(xié)議版本+狀態(tài)碼
? ?狀態(tài)碼:
? 1xx 指示消息,請(qǐng)求繼續(xù)處理
? 2xx 請(qǐng)求被成功接受
? 3xx 重定向,要完成請(qǐng)求必須進(jìn)行下一步操作(跳轉(zhuǎn)頁面)
? 4xx 客戶端錯(cuò)誤(語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)):401 unauthorized ?/ ?404 not found
? 5xx 服務(wù)器錯(cuò)誤,無法實(shí)現(xiàn)合法的請(qǐng)求
? 狀態(tài)消息:1xx,2xx,3xx,4xx,5xx
? 響應(yīng)頭(session)
? 響應(yīng)正文
2)http協(xié)議的應(yīng)用:web安全、接口、web性能測(cè)試
web安全:.
? webform--查看密碼是否加密
? 設(shè)置斷點(diǎn)--修改webform里的數(shù)據(jù),檢測(cè)服務(wù)器端代碼有沒有做2次校驗(yàn)
3.4 工具:然之網(wǎng)頁+fiddler
fiddler:設(shè)置過濾(勾選use Filter)
? 輸入框輸入網(wǎng)址
? 查看包(選擇其中一條記錄,雙擊,選擇inspectors--raw...)
4.深入web核心技術(shù)::4.1 網(wǎng)頁分類 ? ?4.2 網(wǎng)站技術(shù)
4.1 網(wǎng)頁分類:1)靜態(tài)網(wǎng)頁 ? ?2)動(dòng)態(tài)網(wǎng)頁
1)靜態(tài)網(wǎng)頁:用html語言編寫,內(nèi)容固定,上傳到web服務(wù)器,在瀏覽器前臺(tái)顯示。
2)動(dòng)態(tài)網(wǎng)頁:
a.在瀏覽器前臺(tái)顯示,后臺(tái)管理(增-insert into、刪-delete、查-select、改-update)
b.關(guān)鍵內(nèi)容在服務(wù)器端生成,能夠訪問服務(wù)器端的數(shù)據(jù)庫,具有交互性,不利于搜索引擎信息收集
c.腳本引擎:php、jsp、aspx
ps:腳本引擎是計(jì)算機(jī)編程語言的解釋器,是腳本運(yùn)行所需的框架,提供可供腳本調(diào)用的二進(jìn)制代碼,解釋執(zhí)行用戶的程序文本。
d.網(wǎng)站技術(shù):服務(wù)器端、客戶端
? 服務(wù)器端:web服務(wù)器、應(yīng)用服務(wù)器、DB服務(wù)器
? web服務(wù)器--接收http請(qǐng)求,處理http請(qǐng)求,發(fā)送http響應(yīng)給瀏覽器(可以直接發(fā)送html頁面)
應(yīng)用服務(wù)器--處理代碼和建立數(shù)據(jù)庫鏈接:
腳本引擎(php、jsp、aspx)
-- php(php語言--apache、php應(yīng)用服務(wù)器環(huán)境)
-- jsp(java語言--tomcat)
--aspx(c#語言--IIS網(wǎng)頁服務(wù)組件,服務(wù)于網(wǎng)絡(luò)發(fā)布信息)
DB服務(wù)器:執(zhí)行SQL語句,存儲(chǔ)數(shù)據(jù)
PS:測(cè)試環(huán)境常見架構(gòu):
-- PHP開發(fā)語言--apache--mysql--linux
--java開發(fā)語言--tomcat:oracle-linux+mysql
--C#(C sharp,類似java)開發(fā)語言--IIS--sqlserver--windows server ? ? ? ? ??
? 客戶端:
瀏覽器---發(fā)送http請(qǐng)求并接收服務(wù)器發(fā)來的http響應(yīng)
瀏覽器渲染過程(使用fiddler抓包查看):自動(dòng)發(fā)起網(wǎng)頁包含鏈接的請(qǐng)求、自動(dòng)緩存靜態(tài)資源(清除瀏覽器)
靜態(tài)資源:HTML、CSS、JS(JavaScript-直譯式腳本語言,其解釋器為javascript引擎)、圖片、文檔、音頻、視頻、文檔
5. web環(huán)境分類:5.1 開發(fā)環(huán)境 ? ?5.2 測(cè)試環(huán)境 ? ?5.3生產(chǎn)環(huán)境
5.1 開發(fā)環(huán)境:開發(fā)人員用,客戶端和服務(wù)器是同一臺(tái)機(jī)器。
客戶端:操作系統(tǒng)(winxp/win7/8/10,蘋果操作系統(tǒng))、瀏覽器(IE、火狐、谷歌、蘋果)
服務(wù)器:操作系統(tǒng)(winxp/win7/8/10,蘋果操作系統(tǒng)) 、自己電腦
5.2 測(cè)試環(huán)境:測(cè)試人員用,客戶端和服務(wù)器不是同一臺(tái)電腦,客戶端多臺(tái)
客戶端:操作系統(tǒng)(winxp/win7/8/10,蘋果操作系統(tǒng))、瀏覽器(IE、火狐、谷歌、蘋果)
服務(wù)器:操作系統(tǒng)(linux、windows server)
安裝網(wǎng)頁工具:web服務(wù)器、應(yīng)用服務(wù)器、DB服務(wù)器
發(fā)布網(wǎng)頁(對(duì)內(nèi)):
? 把網(wǎng)頁放到指定文件夾--從代碼庫取代碼到本機(jī)
? 把代碼通過xftp工具上傳到服務(wù)器上/tmp
? 修改權(quán)限,解壓縮
? 復(fù)制解壓后的文件夾到發(fā)布網(wǎng)頁指定的文件夾
? 啟動(dòng)web服務(wù)器、DB服務(wù)器
? 打開網(wǎng)址、安裝網(wǎng)頁
5.3 生產(chǎn)環(huán)境:指正式提供對(duì)外服務(wù)的線上環(huán)境
客戶端:廣大的用戶
服務(wù)器:操作系統(tǒng)(Linux、Windows server)
安裝網(wǎng)頁工具(web服務(wù)器、應(yīng)用服務(wù)器、DB服務(wù)器)
發(fā)布網(wǎng)頁(對(duì)外)-把網(wǎng)頁放到指定文件夾
?服務(wù)器有多臺(tái),集群環(huán)境(負(fù)載均衡、故障轉(zhuǎn)移)
三、web測(cè)試實(shí)踐
1.web測(cè)試的要求 ? ?2.web測(cè)試的對(duì)象(測(cè)試點(diǎn))
1.web測(cè)試的要求:1.1 需求 ? ?1.2 用戶
1.1需求:
1)功能:功能測(cè)試、易用性測(cè)試、兼容性測(cè)試
2)安全
3)性能
?2.web測(cè)試的對(duì)象(測(cè)試點(diǎn))
系統(tǒng)測(cè)試階段:2.1 功能 ? 2.2 性能 ? ?2.3安全
2.1功能:1)功能測(cè)試 ? ?2)易用性測(cè)試 ? ?3)兼容性測(cè)試
1)功能測(cè)試
?web的業(yè)務(wù)邏輯:OA系統(tǒng)、理財(cái)系統(tǒng)、財(cái)務(wù)系統(tǒng)、電子商務(wù)系統(tǒng)、銀行系統(tǒng)
?web的數(shù)據(jù)行為:增加(數(shù)據(jù)流的順序--不同模塊/不同賬戶)、刪除、查找、修改
?web的頁面元素(控件):
--頁面部分/UI測(cè)試:清單;不同的分辨率和不同的瀏覽器版本是否顯示;不同大小的窗口顯示是否正確、美觀;特殊效果是否顯示-如特殊字體效果、動(dòng)畫效果;頁面都有相應(yīng)的title
--頁面元素部分(通用測(cè)試點(diǎn)):
----鏈接
----表單(如圖):

----列表:排序、分頁、搜索
----日歷控件(如圖):

----特殊字符
----轉(zhuǎn)義字符
----刷新
----瀏覽器前進(jìn)后退
----上傳下載(如圖):

----導(dǎo)入導(dǎo)出(如圖):

----快捷鍵:Tab、enter
----js錯(cuò)誤
?測(cè)試點(diǎn)的拆分:
2)易用性測(cè)試
3)兼容測(cè)試(如圖):

2.2 性能:1)原理 ? ?2)工具
1)原理:http協(xié)議
2)工具:
?badboy(如圖):

?jmeter(如圖):

2.3 安全:1)原理 ? ?2)工具 ? ?3)策略
1)原理:
?http協(xié)議
?cookie和session:作用域、有效期
2)工具:fiddler
3)策略:
?認(rèn)證:目的是為了認(rèn)出用戶是誰(如圖)

?授權(quán)/權(quán)限(如圖):

?文件上傳(如圖):

?二次校驗(yàn)(如圖):

四、然之登錄測(cè)試點(diǎn)分析:
1.功能 ? ?2.安全測(cè)試 ? ?3.性能測(cè)試
1.功能:1.1 功能測(cè)試 ? ?1.2 可用性測(cè)試 ? ?1.3 兼容測(cè)試
1.1 功能測(cè)試:1)登錄功能、2)頁面其他元素
1)登錄功能:
? 用戶名:
有效--用戶名正確/前空格+正確用戶名/正確用戶+后空格
無效--為空/不存在的用戶名/大小寫區(qū)分用戶名/正確用戶名,中間含空格/全角英文用戶名
邊界值--使用最長(zhǎng)用戶名登錄/注冊(cè)模塊用最長(zhǎng)的用戶名注冊(cè)成功
? 密碼:
有效--密碼正確
無效--為空/(前空格/后空格/中間空格)+正確密碼/密碼大小寫區(qū)分/密碼錯(cuò)誤/全角正確密碼
邊界值--使用最長(zhǎng)密碼登錄/注冊(cè)模塊用最長(zhǎng)的密碼注冊(cè)成功
? 正交法:用戶名、密碼兩種取值的組合測(cè)試
? 單模塊場(chǎng)景法:?jiǎn)斡脩舻卿浲顺鲈俚卿?多用戶連續(xù)登錄/多瀏覽器同時(shí)登錄
? 多模塊場(chǎng)景法:注冊(cè)用戶再登錄/禁用用戶再登錄/鎖定用戶再登錄/刪除用戶再登錄
2)頁面其他元素:
? 語言切換下拉框
? 登錄按鈕
? 保存登錄復(fù)選框
? 版本鏈接
1.2 可用性測(cè)試:
? 頁面元素風(fēng)格
? Tab鍵響應(yīng)
? Tab順序
? 回車鍵響應(yīng)
1.3 兼容測(cè)試:
? 操作系統(tǒng)兼容
? ?瀏覽器兼容
? 正交法組合:windows:ie/firefox/chrome/safari;蘋果操作系統(tǒng):safari/ie/firefox/chrome;andriod:瀏覽器; ios:瀏覽器。
2. 安全測(cè)試:2.1 認(rèn)證、2.2 授權(quán)、2.3 腳本攻擊、2.4 SQL注入
2.1 認(rèn)證:
1)密碼密文顯示
2)密碼文本框不支持復(fù)制
3)敏感信息加密傳輸
4)同一賬號(hào)多次登錄失敗,檢查賬號(hào)是否鎖定
5)錯(cuò)誤登錄ip限制
6)同一賬號(hào)在同一類型設(shè)備上重復(fù)登錄
7)同一賬號(hào)在不同類型設(shè)備上重復(fù)登錄
8)session測(cè)試:
? 復(fù)制登錄后的頁面URL,在退出后直接打開
? 登錄成功后,經(jīng)過一段時(shí)間,檢查是否需要重新登錄
? session的過期時(shí)間設(shè)置是否合理
9)cookie測(cè)試:
? 有效時(shí)間內(nèi)免登錄
? 無效時(shí)間內(nèi)需輸入用戶名、密碼登錄
? 用于保存一些關(guān)鍵數(shù)據(jù)的cookie是否被加密
? 登錄時(shí)應(yīng)該使用圖片驗(yàn)證碼(防止黑客破解密碼,是一種區(qū)分用戶是計(jì)算機(jī)和人的公共自動(dòng)程序)
2.2 授權(quán):不同權(quán)限的用戶登錄是否只能訪問被授權(quán)的模塊和功能
2.3 腳本攻擊(如用戶甲在一些論壇或留言本發(fā)布含html或javascript的帖子,用戶乙在瀏覽該帖時(shí),惡意腳本就會(huì)執(zhí)行,盜取取用戶乙的session信息)
2.4 SQL注入(輸入內(nèi)容,有單引號(hào)‘ 致用戶名為空,可越過密碼登錄)
3. 性能測(cè)試 ? ? ? ? ? ? ? ? ??