溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Web測試中定位bug方法

發(fā)布時間:2020-07-03 09:39:03 來源:網(wǎng)絡(luò) 閱讀:18528 作者:Li_思華年 欄目:軟件技術(shù)

在web測試過程中,經(jīng)常會遇到頁面中內(nèi)容或數(shù)據(jù)顯示錯誤,甚至不顯示,第一反應(yīng)就是BUG,進一步了解這個BUG的問題出在那里,是測試人員需要掌握的,可以簡單的使用瀏覽器自帶開發(fā)者工具、數(shù)據(jù)庫工具配合去排查。

bug定位常用工具

Firefox——firebug、web developer、live http headers、http fox

IE插件——httpwatch

第三方工具——fiddler

慢速網(wǎng)模擬工具——firefox throttle

前臺錯誤

    前臺的bug通常是功能、界面和兼容性等有關(guān),涉及到j(luò)stl,jsp,js,css,html方面比較多。bug主要有兩塊,第一就是JS寫的有問題,這個你可以按F12 打開控制臺,在console中查看報錯信息,一般瀏覽器都會顯示報錯的jS ,對于出錯的js可以在Sources下查看對應(yīng)報錯的資源文件,基本上都會找到錯誤原因的變量未定義,參數(shù)未定義等,JS錯誤都很好解決的。

 

第二個就是頁面中的bug了,現(xiàn)在做web項目基本上沒有做靜態(tài)頁面的都是動態(tài)了,所以你頁面中要么使用了小腳本要么使用了EL表達式來存值。頁面報錯的話 在控制臺是可以看到你錯誤行號和附近代碼的,你自己去找就行了。

 

圖片不顯示,谷歌瀏覽器右鍵點擊圖片,點擊【檢查】,(火狐瀏覽器右鍵點擊【使用firebug查看元素】)在打開的控制臺上找出圖片的屬性,輸入到瀏覽器的地址內(nèi),如果能打開圖片,那么不顯示圖片的問題就是后臺的問題;如果瀏覽器內(nèi)不能打開圖片,那么就是前端的問題。

 

開發(fā)者工具的使用(chrom瀏覽器)

(1)打開開發(fā)者工具,在瀏覽器菜單欄選擇工具-開發(fā)者工具,快捷鍵是F12

(2)打開之后切換到Network頁簽,操作就可以看到請求響應(yīng)

(3)再選擇響應(yīng)的鏈接,切換到Preview頁簽,可以看到響應(yīng)的結(jié)果數(shù)據(jù);切換到Headers頁簽可以看到請求的地址,請求的方式,結(jié)果等信息

(4)Response結(jié)果中可以看到返回的數(shù)據(jù)字段、值

Web測試中定位bug方法


Web測試中定位bug方法


Web測試中定位bug方法


可以根據(jù)響應(yīng)的值判斷一些bug所在

(1)響應(yīng)中沒有數(shù)據(jù),則是后端數(shù)據(jù)沒有返回,前端展示為空,則為后端問題。例如:列表中新增一個數(shù)據(jù),沒有顯示,通過請求中可以看到數(shù)據(jù)total為0,則是后端數(shù)據(jù)沒有返回。

(2)響應(yīng)中有數(shù)據(jù),但是前端顯示錯誤了,可以根據(jù)字段值判斷是否前端顯示中取錯了字段顯示,可以判斷是前端問題。例如:B端顯示內(nèi)容錯誤了,把登錄用戶名顯示了登錄帳號,則可以在響應(yīng)中看數(shù)據(jù)是否返回正確,返回正確而顯示錯誤,則有可能是前端綁定字段錯誤。

(3)響應(yīng)中有數(shù)據(jù),但是跟自己操作的結(jié)果不一致,可以根據(jù)數(shù)據(jù)庫查詢,如果數(shù)據(jù)庫中也沒有記錄,可能是代碼有問題,沒有記錄你的操作。例如:注冊了一個帳號,但是登錄時提示帳號或密碼錯誤,這就可以在數(shù)據(jù)庫表中查看是否有注冊的數(shù)據(jù)。

后臺錯誤

根據(jù)后臺日志文件查找錯誤
   
后臺涉及到servlet,jms,ejb,還有很多框架,struts,hibernate,spring,ibatis等。bug 比較難改,但是好找。主要就是看控制臺報錯,然后定位錯誤行號。如果配置文件沒有問題,那么一般的報錯就是空指針,或者是數(shù)組下標(biāo)越界。看附近變量,看方法的參數(shù)基本上都可以定位錯誤了

 

重啟的一般情況:
(1)熱部署 (新增部分功能,或者修改部分bug) (2)發(fā)布新版本 (整個系統(tǒng))(3)內(nèi)存溢出,此時重啟服務(wù)器即可

由于項目中有線程程序,./shutdown腳本關(guān)閉tomcat程序,不能把啟動的線程全部關(guān)閉,造成服務(wù)器啟動線程未關(guān)閉的錯誤,所以
Linux系統(tǒng)中重啟Tomcat的一般步驟:(一般是先關(guān)閉進程,然后進行重啟 ,如果 /要刪除某個文件:rm 文件名,或者不為空的文件夾:rm -rf 文件夾名)
cd usr/local/        //測試服務(wù)器名稱/bin
ps -exf            //看測試服務(wù)器下運行的項目的主進程(最前面的數(shù)字為PID進程號)
kill -9 PID         //強制關(guān)閉某一項目的主進程
./startup.sh         // ./**.sh 即執(zhí)行重啟shell腳本文件 ,此時在測試服務(wù)器的bin下面,直接執(zhí)行即可,其余的加上 chmod a+x shell腳本文件,也可用./執(zhí)行
(小知識:
ps aux和ps -ef命令區(qū)別
ps aux 是用BSD的格式來顯示 java這個進程
顯示的項目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMAND
ps -ef 是用標(biāo)準(zhǔn)的格式顯示java這個進程
顯示的項目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD)


如何查看日志
一臺服務(wù)器可以部署多個應(yīng)用
cd usr/local/測試服務(wù)器名稱/logs   //查看先進入到服務(wù)器的logs目錄下
tail -f catalina.out          //監(jiān)視catalina.out 文件的尾部內(nèi)容(默認(rèn)10行)
日志中常見的問題
獲取日志文件中常遇到的問題:
(1)編碼問題:tomcat是新的,需要改編碼修改tomcat的server.xml文件<Connector port="8080"URIEncoding="UTF-8"/>
特別是windows下的項目重新部署到linux系統(tǒng)下,
(2)空指針:程序問題,一般沒有考慮到為空情況,或者主外鍵約束的數(shù)據(jù)為空,或者刪除關(guān)聯(lián)數(shù)據(jù),導(dǎo)致為空
(3)長度過長,超過最大長度,測試環(huán)境修改數(shù)據(jù)庫字段長度后生產(chǎn)環(huán)境未修改,導(dǎo)致報錯??!
(4)非法數(shù)據(jù)
(5)內(nèi)存溢出:重啟

 

一般的問題原因總結(jié)
程序:為空判斷,增刪改查,不同公眾號調(diào)用的接口也不一樣
數(shù)據(jù)初始化:數(shù)據(jù)庫表結(jié)構(gòu)和數(shù)據(jù)初始化,權(quán)限配置,

 

故障無法重現(xiàn)時:
(1)看日志,根據(jù)日志定位原因,則在測試環(huán)境中按照日志提示構(gòu)造條件相同的測試案例測試,嘗試在測試環(huán)境中將問題重現(xiàn)。問開發(fā)
(2)測試環(huán)境和配置與實際的工程環(huán)境和配置有哪些差異等等。同時主動與開發(fā)負(fù)責(zé)人、工程實施人員以及有經(jīng)驗的項目經(jīng)理討論,分析可能導(dǎo)致的原因。

配置環(huán)境不一致導(dǎo)致
測試環(huán)境ok,生產(chǎn)環(huán)境新增時保存失敗,查看后臺日志報長度溢出,數(shù)據(jù)庫內(nèi)容字段要求和生產(chǎn)環(huán)境不一致

 

輔助工具:linux和SQL
linux
查看日志
SQL用來篩選數(shù)據(jù)或直接進行數(shù)據(jù)修改狀態(tài),多用于集成測試過程中前后流程相連接

 

jsp分不清前后臺的,因為這里涉及到一個運行時刻的問題,它們的運行時刻是不同。用戶發(fā)出請求后,服務(wù)器解析用戶請求,轉(zhuǎn)至對應(yīng)的jsp,這個時候可以說是整個jsp都是后臺程序。而Jsp做出響應(yīng)后,把響應(yīng)的內(nèi)容返回給瀏覽器,這個時候瀏覽器就只看見html,css,javascript,這個時候所有的程序又都是前臺程序。

火狐瀏覽器的web控制臺

打開方式如下:菜單上點擊【工具】

Web測試中定位bug方法

Web控制臺頁面顯示

Web測試中定位bug方法


谷歌瀏覽器開發(fā)者工具

按F12打開,頁面顯示如下:

Web測試中定位bug方法

Element標(biāo)簽:該標(biāo)簽使用來查看頁面的HTML標(biāo)簽元素的,能夠也就是查看源碼,我們可以看到布局,可以看到用到的樣式,還有用到的鏈接等等。

console標(biāo)簽:這個就是一個web控制臺,可以查看網(wǎng)頁運行后提示的消息,錯誤或者警告以及輸出內(nèi)容等

sources標(biāo)簽:這個是顯示資源文件的,可以查看運行的腳本,調(diào)試一般都是在Sources調(diào)試的

Web測試中定位bug方法

1.該選擇框使用來選擇資源的,當(dāng)網(wǎng)頁被加載的時候向服務(wù)器端請求出來的文件包括.html .ccs .js這樣的文件。
2.這個地方使用來調(diào)試js代碼的地方,這個非常重要,看到行號上面有藍色的標(biāo)簽,這個標(biāo)簽就是斷電,當(dāng)我們需要調(diào)試程序的時候打一個斷電,然后通過3這個工具欄進行調(diào)試,那么調(diào)試過程就不詳細(xì)解釋,也就是打一個斷電然后刷新頁面程序會調(diào)到你打斷點的地方,然后通過4來查看程序中變量的值什么的。
3.中的標(biāo)簽,第一個是停止?fàn)顟B(tài)的按鈕就是表示程序是否停止(在debug時),后面的是程序繼續(xù)跳過方法,跳過下一個語句,調(diào)到上一個語句。

Network標(biāo)簽:這個就是抓包常用的工具,可以看到網(wǎng)頁加載的腳本和資源的時間,還可以看到某些不能加載成功的資源

Web測試中定位bug方法

那么這個頁面就是用于抓包的頁面,我們需要分析頁面的請求,比如模擬登陸什么的都需要去分析程序是怎么在后臺執(zhí)行的,接下來就,我們可以看到Headers(請求消息頭) Preview(預(yù)覽) Response(響應(yīng)) Timing(請求時間)Cookie這些東西

最上面還有一個工具欄,有一個紅色的圓點靜止符號的按鈕,那么這兩個按鈕,當(dāng)為紅色按鈕的時候表示當(dāng)前的請求不被清空(但是這里的請求是不跳轉(zhuǎn)頁面的請求,當(dāng)跳轉(zhuǎn)到新的頁面,那么也會請求也會被清空),后面這個按鈕就是清空請求的。

下面還有一行工具欄,這個工具欄主要是用來選擇和過濾請求消息的。

再下面可以看到時間線,這個就是記錄一個請求開始到結(jié)束的時間。

注意:當(dāng)你需要請求到另一個頁面的時候都不清空你的請求的時候需要勾選上Preserve log,同時讓紅色按鈕顯示紅色

TimeLiness標(biāo)簽:這個就是請求時間


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI