999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Selenium 與SVM的Web自動化測試方法

2023-02-18 05:36:12張曦煌蔡晶晶柴志雷奚智雯
軟件導刊 2023年1期
關鍵詞:頁面分類模型

張曦煌,蔡晶晶,柴志雷,3,奚智雯

(1.江南大學 人工智能與計算機學院,江蘇 無錫 214215;2.無錫太湖學院 智能裝備學院,江蘇 無錫 214064;3.江南大學 江蘇省模式識別與計算智能工程實驗室,江蘇 無錫 214215)

0 引言

由于敏捷開發技術的興起,Web 應用產品的開發周期逐漸縮短,產品更新升級日趨頻繁。隨著產品不斷迭代更新,Web 應用的規模和系統復雜度增加,對Web 產品的質量要求也隨之越來越高[1]。

傳統手工測試方式效率低、資源消耗大,通常難以滿足大規模Web 應用的測試需求。因此,自動化測試逐漸成為Web 應用測試的主流測試方式[2],該方法不僅節省時間、人力等資源,還能顯著提高測試效率。

然而,在實際操作過程中部署自動化測試時,會存在以下局限性[3]:

(1)測試用例覆蓋率差。在一些復雜測試任務中,仍需要手工進行測試。

(2)測試用例復用性低。當產品迭代升級后,需要重新編寫測試用例,測試人員的工作量較大[4]。

(3)成本投入高。自動化測試前期需要巨額的成本投入,后期如果缺乏成本控制方案和測試計劃,項目往往會因為資金問題而以失敗告終[5]。

為了解決以上問題,文獻[6]提出一種適用于統一建模語言和序列圖生成測試用例方法。Ansari 等[7]借助自然語言處理的功能需求生成測試用例,在減少工作量的同時,提高了工作效率。Verma 等[8]提出一種測試用例優先級比較的方法來檢測Web 應用中存在的錯誤,該方法包括風險策略和多樣性策略。其中,風險策略是指選擇每次迭代中風險最大的測試用例;多樣性策略則通過最大化測試過的測試用例之間的距離來設定測試用例優先級。通過結合以上兩種策略,能夠有效提高Web 應用中缺陷檢測的準確率。高應波[9]結合數據驅動和關鍵字驅動模式,運用圖像匹配算法設計一款混合驅動的自動化測試框架,該框架能夠識別非Web 控件,有效提高Web 應用測試過程中的自動化程度。李吟等[10]設計了一款自動化測試的框架以提高自動化測試的覆蓋率。

在傳統自動化測試方法中,Web 應用更新后與歷史版本相類似的功能測試仍需要編寫測試用例[11]。為此,本文結合Selenium 自動化測試框架和SVM(Support Vector Machines,SVM)模型,從歷史測試經驗中對模型展開訓練。首先,通過測試用例完成Web 前端頁面的功能測試,并對前端頁面功能所采用的測試用例進行分類預測;然后,借助自動化測試平臺執行測試用例得到測試結果;最后,通過測試結果完善Web 應用。此外,為了驗證所提方法的有效性,將該方法應用于一個真實運行的FPGA 公有云平臺中進行Web測試。

1 Web自動化測試

自動化測試是Web 應用測試領域的發展趨勢,目的是簡化敏捷開發中重復的測試任務[12]。具體操作為:在測試需求的基礎上,對Web 應用編寫自動運行的測試用例以獲取測試結果[13]。其中,自動化測試的本質是實現自動化機器測試,主要包括開發并執行測試用例、使用自動化測試工具驗證開發需求兩個部分。通過該技術幫助測試人員在規定時間內,盡可能多地執行測試用例[14]。

2 基于SVM的Web自動化測試方法

2.1 SVM

SVM 屬于有監督分類學習模型,依賴于支持向量分類超平面,具體原理如圖1 所示。由于在SVM 中少數支持向量決定了最終的聚類結果,可通過該特點在實際應用中獲取關鍵樣本,剔除冗余樣本以減少計算量。此外,該方法計算的復雜性取決于支持向量的數目,在一定程度上避免了“維數災難”。

Fig.1 SVM schematic圖1 SVM原理

本文使用SVM 分類Web 元素(文本信息)的測試用例。在實驗過程中,首先將訓練集中的文本數據進行特征提取(數值化處理),將其轉化為特征向量。

然后,依據“間隔最大化”原則尋找一個超平面對樣本進行分割[15],計算公式如下:

其中,w=(w1,w2,w3…wd)為法向量,決定超平面的方向,b為決定超平面與原點間距離的位移項。

接下來,計算兩個異類支持向量到超平面的距離之和d,計算公式如下:

其中,d為間隔距離。

最后,只需要找到滿足式(3)中約束條件的w、b,使d最大,即為“最大間隔”的超平面,計算公式如下:

式中,最大化間隔僅需最大化||w||-1,等價于最小化||w||2。因此,式(3)可重寫為:

2.2 Selenium 框架

Selenium 框架主要應用于Web 應用自動化測試工具,工作原理如圖2 所示。在處理自動化測試任務時,首先向Selenium 框架中集成的瀏覽器驅動Web Driver 發送請求,在Web Driver 收到測試腳本后對其進行解析;然后將結果發送至對應的瀏覽器;最后由瀏覽器執行測試用例并返回測試結果[16]。

由圖2 可見,Selenium 框架的主要組件包括Selenium IDE、Selenium Web Driver 及Selenium Grid 模塊[17]。其中,Selenium IDE 主要用于錄制用戶操作,生成測試用例;Selenium Web Driver 是在Selenium Remote Control 基礎上優化和升級的新模塊,支持多種編程語言編寫測試用例,可直接給瀏覽器發送命令;Selenium Grid 是運行不同瀏覽器下的Selenium 網格,支持跨平臺運行測試用例。Selenium 自動化測試框架如圖3所示。

Fig.2 Selenium schematic圖2 Selenium 原理

Fig.3 Selenium framework architecture圖3 Selenium 框架架構

3 實驗設置

3.1 實驗架構

實驗架構主要包含數據獲取模塊、機器學習模塊和測試用例執行模塊,用來獲取一個網頁所有網頁功能的測試結果。其中,數據獲取模塊獲取網頁元素;機器學習模塊預測每個Web 元素的測試用例;Selenium 框架模塊執行Web 元素的測試用例并展現測試結果。實驗整體架構如圖4所示。

Fig.4 Overall architecture of the experiment圖4 實驗整體架構

3.2 實驗環境及配置

實驗平臺為PyCharm,電腦配置為Intel(R)Core(TM)i7-9700CPU @300GHz,操作系統為Windows 10專業版。

3.3 數據獲取

通過Request 函數向指定URL(Uniform Resource Locator)網址發起訪問請求、處理響應請求,以獲取靜態頁面的Web 元素。其中,Web 元素為Web 應用中前端頁面中的HTML(Hyper Text Markup Language)標簽,例如文本框、按鈕等。然后,采用Beautiful Soup 解析Web 頁面數據處理后的網頁元素以提取指定數據。

3.4 數據預處理

目前,通常采用Beautiful Soup 模塊提取頁面數據。該模塊不僅能規則化解析頁面數據,還能提供html.parser 和lmxl 兩種頁面解析方式。由于lmxl 解析方式將Web 頁面源碼解析成一個DOM(Document Object Model)樹,便于定位和提取Web 元素,因此本文選擇該方法進行實驗。通過Beautiful Soup 對象中的find、select、find_all 等方法,獲取指定頁面上的a、select、input、button 等標簽如表1所示。

Table 1 Web element table表1 Web元素表

3.5 預測測試用例

本文選擇FPGA 公有云平臺中前端頁面的數據構建訓練集(見表2)。訓練集和測試集均來源于同一個數據集,共1 700 條數據。在實驗執行過程中,隨機抽取70%數據設置為訓練集,剩余數據設置為測試集。

Table 2 Training set表2 訓練集

由表2 可知,訓練集包含tag_name(標簽名稱)、type(標簽類型)、web_element(元素名稱)、test_case(測試用例)。其中,web_element 作為特征列、test_case 列作為類標簽列。測試用例類別主要包括文本框是否可編輯、按鈕是否可點擊、頁面是否跳轉、圖片顯示是否正常、鏈接標簽是否成功跳轉、單選按鈕是否選中、文件是否可上傳。

在特征提取過程中,首先采用數值化處理方法建立單詞到數字的映射關系,將單詞轉換為數字;然后,采用SVM和決策樹對模型進行擬合,并采用網格搜索和交叉驗證方法尋找模型的最佳參數;最后,將測試數據輸入模型預測每個Web元素的測試用例。

圖5(彩圖掃OSID 碼可見,下同)為采用20 條測試數據對訓練后的模型進行測試的結果。其中,橫軸表示每個測試用例,縱軸表示測試用例的類別,紅色點為每個測試用例的真實類別,藍色點為模型預測類別。如果預測正確,紅色點將完全覆蓋藍色。

Fig.5 Scatter plot of test case prediction圖5 預測測試用例散點圖

由圖5 可見,僅有4 條數據的分類結果發生錯誤,原因可能是訓練數據量較少,在對數據集進行特征提取時發生特征相似的情況。

3.6 評價指標

準確率是衡量分類模型分類正確的次數,如果預測樣本標簽與真實標簽集嚴格匹配,則精度為1,否則精度為0。準確率計算公式如式(5)所示:

其中,ntotal為總樣本個數,ncorrect為被正確分類的樣本個數。

混淆矩陣(見圖6)屬于模型評估的一部分,能夠快速計算分類任務的準確率。

Fig.6 Confusion matrix圖6 混淆矩陣

圖6 中,T(True)代表正確,F(False)代表錯誤,P(Positive)為1,表示正例,N(Negative)為0,表示負例;TP 表示實際為正且被預測為正的樣本數量;FP 表示實際為負但被預測為正的樣本數量;FN 表示實際為正卻被預測為負的樣本數量;TN 代表TN 表示實際為負被預測為負的樣本的數量。結合混淆矩陣,準確率可表達為:

3.7 執行模塊

在為每個Web 元素所需要的測試用例進行分類預測后,基于Selenium 框架的自動化測試系統將開始執行測試用例。該系統可詳細展示測試用例的執行情況,并且支持在瀏覽器上運行。此外,還能夠在多種瀏覽器下完成測試任務,便于測試人員對Web 應用進行跨平臺、跨瀏覽器的兼容性測試。

4 基于Selenium 的Web自動化測試系統

4.1 系統介紹

Selenium 的Web 自動化測試系統基于Selenium Web Driver 驅動原理,結合了Web 開發與數據可視化的技術。該系統支持在網頁上構建測試計劃、執行測試用例、日志記錄、測試報告的生成、郵件通知等功能,能夠讓測試人員清晰了解每個測試用例的執行情況,同時降低測試成本。自動化測試系統的功能模塊如圖7所示。

Fig.7 Function block of automated test system圖7 自動化測試系統功能模塊

4.2 系統實現

自動化測試系統的整體架構包括測試用例執行模塊、瀏覽器驅動模塊、SVM 預測測試用例模塊、測試結果反饋模塊,如圖8所示。

Fig.8 Architecture of automated test system圖8 自動化測試系統架構

由圖8 可見,執行模塊包含測試用例預測、測試用例加載、數據驅動和結果收集;SVM 模塊使用Python 對SVM分類模型進行封裝,以獲取目標頁面的元素并預測測試用例分類。

4.3 系統使用

測試人員登錄自動化系統,將分類結果輸入自動化測試系統中完成以下流程:構建測試用例運行計劃、運行計劃中測試用例、查看測試用例運行結果、反饋測試結果。

5 實驗結果與分析

5.1 參數確定

本文采用網格搜索和交叉驗證方法(Grid Search CV)確定SVM 和決策樹模型中的參數。該方法在指定參考范圍內,利用參數訓練學習器,根據步長依次調整參數值尋找模型準確率最高的參數值。

通過該方法,最終確定模型的兩個主要參數,如表3所示。其中,Kernel 代表算法使用的內核模型;C 代表誤差項的正則化參數;Gamma 為用于非線性SVM 的超參數,隱含地決定了數據映射到新特征空間后的分布狀況。

Table 3 Main parameters表3 主要參數

5.2 模型比較

在控制模型核心參數相同的條件下,分別對FPGA 公有云平臺前端頁面中的Web 元素功能進行自動化測試,得到模型的主要評價指標,如表4所示。

Table 4 Evaluation index of classification model表4 分類模型的評價指標(%)

由表4 可知,SVM 的準確率相較于決策樹模型提高4.43%;相較于樸素貝葉斯分類模型,準確率提高5.12%。

5.3 測試用例執行結果

將測試用例輸入自動化測試系統,執行兩個頁面的測試任務,預測96 個Web 元素的測試用例,測試結果如表5所示。

Table 5 Test case operation status表5 測試用例運行狀況

6 結語

本文為解決現有Web 應用的自動化測試任務中,測試用例只能根據測試人員設定好的順序執行,無法鏈接新的Web 元素,尤其在頁面更新后,仍需要重寫測試用例的問題。借助SVM 根據歷史測試經驗,對新頁面進行測試。

實驗結果表明,SVM 相較于決策樹及樸素貝葉斯模型,分類效果更優。借助該系統執行Web 元素的測試任務,可實時獲取測試用例的執行狀況,及時將遇見的問題反饋給開發人員。下一步,將持續優化測試用例的覆蓋率,以提高測試自動化程度。

猜你喜歡
頁面分類模型
大狗熊在睡覺
一半模型
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
分類算一算
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
3D打印中的模型分割與打包
主站蜘蛛池模板: 国产三级精品三级在线观看| 亚洲精品视频免费观看| 亚洲自拍另类| 亚洲欧美精品在线| 97国产精品视频自在拍| 在线免费观看a视频| 国产午夜在线观看视频| 欧美日韩北条麻妃一区二区| 国产福利一区视频| 色婷婷亚洲综合五月| 亚洲高清在线播放| 97久久免费视频| 国产成人综合网在线观看| 国产在线麻豆波多野结衣| 日韩av手机在线| 1769国产精品免费视频| 一级一级一片免费| 亚洲一级毛片在线观播放| 香蕉99国内自产自拍视频| 精品亚洲麻豆1区2区3区| 欧美中文字幕在线播放| 色噜噜综合网| 国产区成人精品视频| 成人免费午夜视频| 2021精品国产自在现线看| 亚洲精选无码久久久| 国产成人av一区二区三区| 美女无遮挡拍拍拍免费视频| 国产精品夜夜嗨视频免费视频| 亚洲精品色AV无码看| 18禁黄无遮挡免费动漫网站| 综合色区亚洲熟妇在线| 亚洲欧美日韩精品专区| 57pao国产成视频免费播放| 国产中文在线亚洲精品官网| 中文字幕亚洲综久久2021| 日日摸夜夜爽无码| 国产污视频在线观看| 亚洲av无码成人专区| 国产不卡一级毛片视频| 国产精品太粉嫩高中在线观看 | 天天干天天色综合网| 国产精品免费电影| 国产熟睡乱子伦视频网站| 精品欧美视频| 久久久精品国产SM调教网站| 高潮毛片无遮挡高清视频播放| 亚洲人成日本在线观看| 中国毛片网| 一级做a爰片久久毛片毛片| 亚洲国产在一区二区三区| 奇米精品一区二区三区在线观看| 国产三区二区| 一级片一区| 亚洲精品视频在线观看视频| 在线国产91| 亚洲国产精品一区二区第一页免 | 18禁黄无遮挡网站| 久久久久国产一区二区| 麻豆精品在线| 伊人久久大香线蕉影院| 久久中文字幕2021精品| 国产swag在线观看| 欧美成人h精品网站| 国产成人精品免费视频大全五级 | 波多野结衣第一页| aaa国产一级毛片| 影音先锋丝袜制服| 亚洲经典在线中文字幕| 青草国产在线视频| 熟妇丰满人妻av无码区| 欧美成人在线免费| 青青草a国产免费观看| 欧美日一级片| 国产在线一二三区| 欧美a√在线| 99免费在线观看视频| 国产美女91视频| 二级毛片免费观看全程| 国产精品一区在线麻豆| 91精品国产自产在线老师啪l| 亚洲国产精品久久久久秋霞影院 |