瀏覽器兼容性測試方法及裝置制造方法
【專利摘要】本發(fā)明涉及一種瀏覽器兼容性測試方法及裝置。該瀏覽器兼容性測試方法包括步驟對網(wǎng)頁應(yīng)用的頁面代碼進行預(yù)處理,獲取頁面代碼的類型;根據(jù)頁面代碼的類型獲取相應(yīng)的兼容性規(guī)則庫;對頁面代碼進行語法解析,獲取頁面代碼的語法樹;以及根據(jù)兼容性規(guī)則庫以及語法樹,對頁面代碼進行靜態(tài)測試,從而實現(xiàn)對網(wǎng)頁應(yīng)用的瀏覽器兼容性測試。本發(fā)明還涉及一種瀏覽器兼容性測試裝置。本發(fā)明的瀏覽器兼容性測試方法及裝置通過對網(wǎng)頁應(yīng)用的頁面代碼進行靜態(tài)測試,實現(xiàn)瀏覽器的兼容性測試;整個測試過程操作簡單,維護成本低。
【專利說明】瀏覽器兼容性測試方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)測試領(lǐng)域,特別是涉及一種操作簡單、維護成本低的瀏覽器兼容性測試方法及裝置。
【背景技術(shù)】
[0002]隨著社會的發(fā)展,越來越多的用戶通過各種自己喜愛的瀏覽器進行網(wǎng)頁瀏覽。由于瀏覽器的種類繁多,同時很多用戶一直使用非標準的舊版本的瀏覽器,造成網(wǎng)頁開發(fā)工程師必須具備跨瀏覽器開發(fā)的能力,其開發(fā)的網(wǎng)頁應(yīng)用必須能兼容多種主流的瀏覽器,以確保網(wǎng)頁應(yīng)用在不同的瀏覽器環(huán)境中具有相同的外觀和功能。
[0003]因此開發(fā)出來的網(wǎng)頁應(yīng)用需要在不同的瀏覽器中重復(fù)進行測試,盡管某些自動化測試工具可以一定程度上實現(xiàn)測試的自動化,但仍需測試者在不同的瀏覽器環(huán)境中運行自動化測試工具。此外,測試者需要確定在不同瀏覽器上的測試結(jié)果之間的差異,這樣要求測試者具備較高的專業(yè)技能,以及需要付出大量的時間和精力。
[0004]故,有必要提供一種操作簡單、維護成本低的瀏覽器兼容性測試方法及裝置,以解決現(xiàn)有技術(shù)所存在的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種基于網(wǎng)頁應(yīng)用的頁面代碼靜態(tài)分析的瀏覽器兼容性測試方法及裝置;整個測試過程操作簡單,維護成本低,以解決現(xiàn)有的瀏覽器兼容性測試方法及裝置操作復(fù)雜以及維護成本高的技術(shù)問題。
[0006]為解決上述問題,本發(fā)明提供的技術(shù)方案如下:
[0007]本發(fā)明涉及一種瀏覽器兼容性測試方法,其包括步驟:
[0008]對網(wǎng)頁應(yīng)用的頁面代碼進行預(yù)處理,獲取所述頁面代碼的類型;
[0009]根據(jù)所述頁面代碼的類型獲取相應(yīng)的兼容性規(guī)則庫;
[0010]對所述頁面代碼進行語法解析,獲取所述頁面代碼的語法樹;以及
[0011]根據(jù)所述兼容性規(guī)則庫以及所述語法樹,對所述頁面代碼進行靜態(tài)測試,從而實現(xiàn)對所述網(wǎng)頁應(yīng)用的瀏覽器兼容性測試。
[0012]本發(fā)明還涉及一種瀏覽器兼容性測試裝置,其包括:
[0013]類型獲取模塊,用于對網(wǎng)頁應(yīng)用的頁面代碼進行預(yù)分析,獲取所述頁面代碼的類型;
[0014]規(guī)則庫獲取模塊,用于根據(jù)所述頁面代碼的類型獲取相應(yīng)的兼容性規(guī)則庫;
[0015]語法樹獲取模塊,用于對所述頁面代碼進行語法解析,獲取所述頁面代碼的語法樹;以及
[0016]測試模塊,用于根據(jù)兼容性規(guī)則庫以及所述語法樹,對所述頁面代碼進行靜態(tài)測試,從而實現(xiàn)對所述網(wǎng)頁應(yīng)用的瀏覽器兼容性測試。
[0017]相較于現(xiàn)有技術(shù),本發(fā)明的瀏覽器兼容性測試方法及裝置通過對網(wǎng)頁應(yīng)用的頁面代碼進行靜態(tài)測試,實現(xiàn)瀏覽器的兼容性測試;整個測試過程操作簡單,維護成本低。解決了現(xiàn)有的瀏覽器兼容性測試方法及裝置操作復(fù)雜以及維護成本高的技術(shù)問題。
【專利附圖】
【附圖說明】
[0018]圖1為本發(fā)明的瀏覽器兼容性測試方法的優(yōu)選實施例的流程圖;
[0019]圖2為本發(fā)明的瀏覽器兼容性測試方法的優(yōu)選實施例的步驟101的詳細流程圖;
[0020]圖3為本發(fā)明的瀏覽器兼容性測試裝置的優(yōu)選實施例的結(jié)構(gòu)示意圖;
[0021]其中,附圖標記說明如下:
[0022]31、類型獲取模塊;
[0023]32、規(guī)則庫獲取模塊;
[0024]33、語法樹獲取模塊;
[0025]34、測試模塊;
[0026]35、輸出模塊。
【具體實施方式】
[0027]以下各實施例的說明是參考附加的圖式,用以例示本發(fā)明可用以實施的特定實施例。
[0028]請參照圖1,圖1為本發(fā)明的瀏覽器兼容性測試方法的優(yōu)選實施例的流程圖。該瀏覽器兼容性測試方法包括:
[0029]步驟101,對網(wǎng)頁應(yīng)用的頁面代碼進行預(yù)處理,獲取頁面代碼的類型;
[0030]步驟102,根據(jù)頁面代碼的類型獲取相應(yīng)的兼容性規(guī)則庫;
[0031]步驟103,對頁面代碼進行語法解析,獲取頁面代碼的語法樹;
[0032]步驟104,根據(jù)兼容性規(guī)則庫以及語法樹,對頁面代碼進行靜態(tài)測試,從而實現(xiàn)對網(wǎng)頁應(yīng)用的瀏覽器兼容性測試;
[0033]步驟105,將靜態(tài)測試的結(jié)果輸出;
[0034]本優(yōu)選實施例的瀏覽器兼容性測試方法結(jié)束于步驟105。
[0035]下面詳細說明本優(yōu)選實施例的瀏覽器兼容性測試方法的各步驟的具體流程。
[0036]在步驟101中,對網(wǎng)頁應(yīng)用的頁面代碼進行預(yù)處理,獲取頁面代碼的類型。具體的流程如圖2所示,圖2為本發(fā)明的瀏覽器兼容性測試方法的優(yōu)選實施例的步驟101的詳細流程圖。
[0037]首先,對頁面應(yīng)用的頁面代碼進行詞法分析,獲取頁面代碼的記號(Token)序列。這里的記號為一個字符串,是構(gòu)成源代碼的最小單元,可使用詞法分析器進行詞法分析。詞法分析器從左到右一個字符一個字符地讀取頁面應(yīng)用的頁面代碼,即對構(gòu)成頁面代碼的字符流進行掃描,然后根據(jù)構(gòu)成規(guī)則識別記號(token),最終得到頁面代碼的記號序列。
[0038]隨后根據(jù)頁面應(yīng)用的頁面代碼的記號序列,獲取頁面代碼的類型,具體為:獲取記號序列中的第一個記號,如第一個記號為“〈”,則判斷頁面代碼的類型為HTML (超文本標記語言,Hypertext Markup Language)類型(HTML的頁面代碼一般以“〈”字符開始);如第一個記號為“ 或“[”,則判斷頁面代碼的類型為JSON (JavaScript Object Notation)類型(JS0N的頁面代碼一般以或“[”字符開始);如第一個記號為,,或“:,,,則判斷頁面代碼的類型為CSS (Cascading Style Sheets,層疊樣式表單)類型(CSS的頁面代碼一般以”或“:”字符開始);否則判斷頁面代碼的類型為JavaScript類型。在本步驟中通過頁面代碼的預(yù)定義的語法特征判定該代碼的類型,上述僅為舉例,使用其他通過頁面代碼的語法特性判定代碼的類型的方法均屬于本發(fā)明的保護范圍。
[0039]隨后來到步驟102。
[0040]在步驟102中,根據(jù)頁面代碼的類型獲取相應(yīng)的兼容性規(guī)則庫,由于這里的兼容性規(guī)則庫是根據(jù)對頁面代碼進行兼容性判斷的多個正則表達式和/或多個正則表達式之間的邏輯判斷關(guān)系,使用文本格式的json( (JavaScript Object Notation)文件進行創(chuàng)建,不同的頁面代碼類型均具有相應(yīng)的兼容性規(guī)則庫。在本步驟中選定相應(yīng)的兼容性規(guī)則庫。
[0041]隨后來到步驟103。
[0042]在步驟103中,對頁面代碼進行語法解析,獲取頁面代碼的語法樹。這里的語法分析是在詞法分析的基礎(chǔ)上將記號序列組合成各類語法短語,如“程序”、“語句”以及“表達式”等??墒褂米陨舷蛳滤惴麅?yōu)先的算法實現(xiàn)的語法分析器進行語法分析。不同類型的頁面代碼使用相應(yīng)的語法分析器對其進行語法分析,從而可獲取各種頁面代碼的語法樹。語法樹的具體獲取算法為本領(lǐng)域的現(xiàn)有算法,在這里不做詳細介紹。
[0043]隨后來到步驟104。
[0044]在步驟104中,根據(jù)兼容性規(guī)則庫以及語法樹對相應(yīng)的頁面代碼進行靜態(tài)測試。其中相應(yīng)的兼容性規(guī)則庫在步驟102中獲取,頁面代碼的語法樹在步驟103中獲取。
[0045]具體的兼容性規(guī)則庫中的判斷規(guī)則可以為:
[0046]如有多個正則表達式進行兼容性判斷,正則表達式之間可使用“或”邏輯、“與”邏輯或“非與”邏輯等。其中“或”邏輯是指多個正則表達式中有至少一個不匹配,則認為兼容性有問題,即具有兼容性的頁面代碼需要匹配所有的正則表達式?!芭c”邏輯是指多個正則表達式全部不匹配,才認為兼容性有問題,即部分正則表達式匹配的頁面代碼也是具有兼容性的。“非與”邏輯是指多個正則表達式部分不匹配,則認為兼容性有問題,即全部正則表達式均匹配的頁面代碼或全部表達式均不匹配的頁面代碼是具有兼容性的。其中“非與”邏輯一般用在某段代碼A可能在特定瀏覽器中不兼容,但是如網(wǎng)頁代碼中同時具有代碼B可以克服該不兼容的問題,因此代碼A和代碼B同時出現(xiàn),或代碼A和代碼B同時不出現(xiàn)的網(wǎng)頁代碼均是具有兼容性的。
[0047]如使用單獨的正則表達式進行兼容性判斷,則在正則表達式中可使用包含判斷、比較判斷以及替換操作等。其中包含判斷用于根據(jù)語法樹判斷相關(guān)代碼的父子關(guān)系;比較判斷用于判斷相關(guān)代碼中的某個屬性值的大??;而替換操作用于使用上一個正則表達式的判斷結(jié)果替換正則表達式中的某個變量,以便進行進一步的兼容性判斷。
[0048]當然具體的判斷規(guī)則包括但不限于上面舉例的這些,也可采用其他的判斷規(guī)則,并可對規(guī)則進行添加、刪除以及修改,因此判斷規(guī)則的具體設(shè)定并不影響本發(fā)明的保護范圍。在本步驟中可根據(jù)頁面代碼的語法樹對頁面代碼中的具體代碼進行分類,再使用兼容性規(guī)則庫中相應(yīng)的規(guī)則對頁面代碼進行靜態(tài)的兼容性測試,這樣可大大縮短頁面代碼靜態(tài)兼容性測試的測試時間。
[0049]隨后來到步驟105。
[0050]在步驟105中,測試系統(tǒng)將靜態(tài)測試的結(jié)果輸出,結(jié)果包括但不限于問題代碼的位置、原因以及對應(yīng)的兼容性規(guī)則庫中的相關(guān)判斷規(guī)則。這樣技術(shù)人員可以根據(jù)該輸出結(jié)果對頁面應(yīng)用的非兼容部分進行修改,使之符合兼容性規(guī)則庫中的相關(guān)判斷規(guī)則,從而使該頁面應(yīng)用可兼容于各種瀏覽器。
[0051]本發(fā)明還涉及一種瀏覽器兼容性測試裝置,請參照圖3,圖3為本發(fā)明的瀏覽器兼容性測試裝置的優(yōu)選實施例的結(jié)構(gòu)示意圖。該瀏覽器兼容性測試裝置包括類型獲取模塊31、規(guī)則庫獲取模塊32、語法樹獲取模塊33、測試模塊34以及輸出模塊35。類型獲取模塊31用于對網(wǎng)頁應(yīng)用的頁面代碼進行預(yù)處理,獲取所述頁面代碼的類型;規(guī)則庫獲取模塊32用于根據(jù)頁面代碼的類型獲取相應(yīng)的兼容性規(guī)則庫;語法樹獲取模塊33用于對頁面代碼進行語法解析,獲取頁面代碼的語法樹;測試模塊34用于根據(jù)兼容性規(guī)則庫以及語法樹,對頁面代碼進行靜態(tài)測試,從而實現(xiàn)對網(wǎng)頁應(yīng)用的瀏覽器兼容性測試;輸出模塊35用于將靜態(tài)測試的結(jié)果輸出。
[0052]本優(yōu)選實施例的瀏覽器兼容性測試裝置使用時,首先類型獲取模塊31的詞法分析單元對頁面應(yīng)用的頁面代碼進行詞法分析,獲取頁面代碼的記號序列;類型獲取模塊31的類型獲取單元根據(jù)網(wǎng)頁應(yīng)用的頁面代碼的記號序列,獲取頁面代碼的類型。具體為:獲取所述記號序列的第一個記號;如第一個記號為“〈”,則判斷頁面代碼的類型為HTML類型;如第一個記號為“ 或“[”,則判斷頁面代碼的類型為JSON類型;如第一個記號為“O”、
”或“:”,則判斷頁面代碼的類型為CSS類型;否則判斷頁面代碼的類型為JavaScript 類型。 [0053]隨后規(guī)則庫獲取模塊32根據(jù)頁面代碼的類型獲取相應(yīng)的兼容性規(guī)則庫;語法樹獲取模塊33對頁面代碼進行語法解析,獲取頁面代碼的語法樹;然后測試模塊34根據(jù)兼容性規(guī)則庫以及語法樹對相應(yīng)的頁面代碼進行靜態(tài)測試,其中兼容性規(guī)則庫根據(jù)對頁面代碼進行兼容性判斷的多個正則表達式和/或多個正則表達式之間的邏輯判斷關(guān)系進行創(chuàng)建;最后輸出模塊35將靜態(tài)測試的結(jié)果輸出。
[0054]本優(yōu)選實施例的瀏覽器兼容性測試裝置的具體工作原理與上述的瀏覽器兼容性測試方法的優(yōu)選實施例中的描述相同或相似,具體可參見上述瀏覽器兼容性測試方法的優(yōu)選實施例中的相關(guān)描述。
[0055]下面使用一段網(wǎng)頁應(yīng)用的代碼對本發(fā)明的瀏覽器兼容性測試方法及裝置的具體使用流程進行說明。
[0056]具體的網(wǎng)頁代碼如下:
[0057]
【權(quán)利要求】
1.一種瀏覽器兼容性測試方法,其特征在于,包括步驟: 對網(wǎng)頁應(yīng)用的頁面代碼進行預(yù)處理,獲取所述頁面代碼的類型; 根據(jù)所述頁面代碼的類型獲取相應(yīng)的兼容性規(guī)則庫; 對所述頁面代碼進行語法解析,獲取所述頁面代碼的語法樹;以及根據(jù)所述兼容性規(guī)則庫以及所述語法樹,對所述頁面代碼進行靜態(tài)測試,從而實現(xiàn)對所述網(wǎng)頁應(yīng)用的瀏覽器兼容性測試。
2.根據(jù)權(quán)利要求1所述的瀏覽器兼容性測試方法,其特征在于,所述瀏覽器兼容性測試方法還包括步驟: 根據(jù)對所述頁面代碼進行兼容性判斷的多個正則表達式和/或所述多個正則表達式之間的邏輯判斷關(guān)系,使用文本格式的json文件創(chuàng)建所述兼容性規(guī)則庫。
3.根據(jù)權(quán)利要求1所述的瀏覽器兼容性測試方法,其特征在于,所述對網(wǎng)頁應(yīng)用的頁面代碼進行預(yù)分析,獲取所述頁面代碼的類型的步驟包括: 對所述頁面應(yīng)用的頁面代碼進行詞法分析,獲取所述頁面代碼的記號序列;以及 根據(jù)所述網(wǎng)頁應(yīng) 用的頁面代碼的記號序列,獲取所述頁面代碼的類型。
4.根據(jù)權(quán)利要求3所述的瀏覽器兼容性測試方法,其特征在于,所述根據(jù)所述網(wǎng)頁應(yīng)用的頁面代碼的記號序列,獲取所述頁面代碼的類型的步驟包括: 獲取所述記號序列的第一個記號; 如所述第一個記號為“〈”,則判斷所述頁面代碼的類型為HTML類型; 如所述第一個記號為“ {或“[”,則判斷所述頁面代碼的類型為JSON類型; 如所述第一個記號為”或“:”,則判斷所述頁面代碼的類型為CSS類型; 否則判斷所述頁面代碼的類型為JavaScript類型。
5.根據(jù)權(quán)利要求1所述的瀏覽器兼容性測試方法,其特征在于,所述瀏覽器兼容性測試方法還包括步驟: 將所述靜態(tài)測試的結(jié)果輸出。
6.一種瀏覽器兼容性測試裝置,其特征在于,包括: 類型獲取模塊,用于對網(wǎng)頁應(yīng)用的頁面代碼進行預(yù)處理,獲取所述頁面代碼的類型; 規(guī)則庫獲取模塊,用于根據(jù)所述頁面代碼的類型獲取相應(yīng)的兼容性規(guī)則庫; 語法樹獲取模塊,用于對所述頁面代碼進行語法解析,獲取所述頁面代碼的語法樹;以及 測試模塊,用于根據(jù)兼容性規(guī)則庫以及所述語法樹,對所述頁面代碼進行靜態(tài)測試,從而實現(xiàn)對所述網(wǎng)頁應(yīng)用的瀏覽器兼容性測試。
7.根據(jù)權(quán)利要求6所述的瀏覽器兼容性測試裝置,其特征在于,根據(jù)對所述頁面代碼進行兼容性判斷的多個正則表達式和/或所述多個正則表達式之間的邏輯判斷關(guān)系,使用文本格式的json文件創(chuàng)建所述兼容性規(guī)則庫。
8.根據(jù)權(quán)利要求6所述的瀏覽器兼容性測試裝置,其特征在于,所述類型獲取模塊包括: 詞法分析單元,用于對所述頁面應(yīng)用的頁面代碼進行詞法分析,獲取所述頁面代碼的記號序列;以及類型獲取單元,用于根據(jù)所述網(wǎng)頁應(yīng)用的頁面代碼的記號序列,獲取所述頁面代碼的類型。
9.根據(jù)權(quán)利要求8所述的瀏覽器兼容性測試裝置,其特征在于,所述類型獲取單元具體用于: 獲取所述記號序列的第一個記號; 如所述第一個記號為“〈”,則判斷所述頁面代碼的類型為HTML類型; 如所述第一個記號為“ {或“[”,則判斷所述頁面代碼的類型為JSON類型; 如所述第一個記號為”或“:”,則判斷所述頁面代碼的類型為CSS類型; 否則判斷所述頁面代碼的類型為JavaScript類型。
10.根據(jù)權(quán)利要求6所述的瀏覽器兼容性測試裝置,其特征在于,所述瀏覽器兼容性測試裝置還包括: 輸出模塊,用于將所述靜態(tài)測試的結(jié)果輸出。
【文檔編號】G06F11/36GK103942137SQ201310025121
【公開日】2014年7月23日 申請日期:2013年1月23日 優(yōu)先權(quán)日:2013年1月23日
【發(fā)明者】符陽輝 申請人:騰訊科技(深圳)有限公司