公務員期刊網(wǎng) 論文中心 正文

自動化測試在資產管理中應用

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了自動化測試在資產管理中應用范文,希望能給你帶來靈感和參考,敬請閱讀。

自動化測試在資產管理中應用

就軟件測試中自動化測試資產管理中的應用展開了研究,結合資產管理系統(tǒng)(僅適配IE瀏覽器)中資產變動模塊的相應功能點進行了探討。在此基礎上,以資產變動信息為測試用例,使用Python編寫基于Selenium庫的自動化測試腳本。在腳本中增加了對Chrome瀏覽器的兼容處理,最終在Chrome瀏覽器中實現(xiàn)模擬手動操作,取得了與之在IE瀏覽器中相同的運行效果。隨著信息化時代的到來,采用資產管理系統(tǒng)的資產管理方式逐漸取代了傳統(tǒng)的手工管理方式,提高了資產管理工作的效率。然而現(xiàn)有的資產管理系統(tǒng)普遍存在一些問題。首先,受限于用戶界面和業(yè)務邏輯的設計,用戶體驗難免不夠便捷,且往往難以滿足批量操作的需求[1,2]。其次,國內大部分企事業(yè)單位的資產管理系統(tǒng)采用B/S架構,系統(tǒng)可能存在瀏覽器兼容性問題,從而造成由CSS引起的顯示異常或者由JavaScript(JS)引起的功能異常等[3,4]。近期,美國微軟公司宣布于2022年6月15日退出支持IE瀏覽器。因此,原本需要使用IE瀏覽器訪問資產管理系統(tǒng)網(wǎng)站的用戶將不得不尋找新的瀏覽器替代。眾所周知,針對上述問題,現(xiàn)行普遍的解決方案是讓用戶使用指定的瀏覽器;或者變更軟件需求,通過軟件開發(fā)解決問題。

1自動化測試

本文僅討論基于Selenium庫的網(wǎng)頁端自動化測試,使用的瀏覽器為Chrome瀏覽器,編程語言為Python[5]。

1.1產生/銷毀Chrome瀏覽器窗口句柄

首先,引入Selenium庫的WebDriver模塊。然后,通過driver=webdriver.Chrome()產生瀏覽器窗口句柄并打開一個Chrome瀏覽器窗口,通過driver.quit()銷毀瀏覽器窗口句柄并關閉Chrome瀏覽器窗口;最后,在產生句柄和銷毀句柄的這兩行代碼之間進行自動化測試代碼的書寫[6]。

1.2獲取HTML元素

通過driver.find_element_by_X()方法獲取單個元素、driver.find_elements_by_X()方法獲取多個元素,其中X可以是ID、Name、Class、XPath、CSS_Selector等,參數(shù)為元素對應的屬性[7]。

1.3注入JavaScript腳本

通過driver.execute_script()方法在當前頁面中注入JS代碼,參數(shù)為寫有JS腳本的字符串,該方法可以改變頁面的前端布局以及前端JS腳本中各變量的值或狀態(tài)[7]。

2資產變動的功能點分析

由于部門的調整,當有人員調動時,其名下的資產一般會移交給原部門的其他同事。此時需要聯(lián)系資產管理員進行資產變動。

2.1選擇待變動的資產如圖1所示是某資產管理系統(tǒng)的資產列表頁面。首先,根據(jù)“資產編號”確定待變動的資產;然后,通過點擊圖1所示的復選框選擇待變動的資產;最后,點擊“選擇”按鈕確定所選資產。

2.2編輯資產變動信息

如圖2所示是某資產管理系統(tǒng)的資產變動頁面。首先,“使用/管理部門”“使用人”“存放地點”等字段通過點擊“選擇”按鈕,在彈出的模態(tài)對話框中填寫相應的信息,保存信息時模態(tài)對話框將自動關閉,模態(tài)對話框中填寫的信息將自動填寫到上述字段所在的輸入框中;接著,“現(xiàn)狀”“使用方向”等字段通過下拉框選擇輸入;然后,根據(jù)實際變更的情況填寫“變動原因”;最后,點擊“保存”按鈕,如果檢查之后確定無誤,則點擊“提交”按鈕上報一級單位。

3自動化測試腳本的設計

本文的測試環(huán)境如表1所示,被測的資產管理系統(tǒng)僅在IE瀏覽器中可以正常運行,而在其他瀏覽器(如Chrome瀏覽器)中會出現(xiàn)影響功能正常使用的兼容性問題。接下來針對資產變動模塊操作的關鍵環(huán)節(jié)進行說明。

3.1在資產列表中選擇待變動資產

為選擇圖1中的待變動資產,即操作相應的復選框,一般通過復選框元素的ID、Name屬性值或CSS選擇器進行定位操作,當確認選擇時后端將獲取前端被選中的復選框元素的Value屬性值(資產編號通常寫在該屬性中)。在本文的被測系統(tǒng)中,因該元素的ID和Name屬性值均不含資產編號,而CSS選擇器不支持文本搜索,故考慮使用XPath語句匹配其Value屬性值從而實現(xiàn)定位。又因為顯示在前端的復選框元素的Value屬性值已被后端加密,加密方式無從得知,難以根據(jù)其Value屬性值進行篩選,所以需要使用其他的方法構造XPath語句,具體步驟如下:第1步:從圖1中表格的第2行至最后一行內的第3列單元格中的文本和待變動資產的編號進行匹配,即://table/tr/td[3][text()='資產編號'];第2步:在上一步XPath語句的基礎上繼續(xù)構造XML路徑,用來表示上一步匹配結果所在行第1列單元格中的復選框,完整的XPath語句為//table/tr/td[3][text()='資產編號']/../td[1]/input;第3步:以上一步中的XPath語句為參數(shù),調用driver.find_element_by_xpath()方法獲取復選框元素,接著調用click()方法切換選中狀態(tài)。當需要選擇大量的待變動資產時,采用自動化測試腳本的方式可以快速準確地定位目標資產,大大提升管理效率。

3.2模態(tài)對話框的打開、數(shù)據(jù)獲取

如圖3所示是一種模態(tài)對話框,在IE瀏覽器中可以正常打開,但在Chrome瀏覽器中卻不可以正常打開。造成該現(xiàn)象的原因在于,模態(tài)對話框是通過JS的window.showModalDialog()方法打開的,而該方法僅在IE瀏覽器中有定義。為了能夠在Chrome瀏覽器中打開模態(tài)對話框,一般采用window.showModalDialog()方法的重定義,即如果該方法已定義,則維持現(xiàn)狀;否則使用window.open()方法代替。當關閉模態(tài)對話框時,其父頁面將接收模態(tài)對話框返回的數(shù)據(jù)。如果是Chrome瀏覽器,在用上述方法打開模態(tài)對話框的前提下,可以在模態(tài)對話框所在的頁面中注入JS腳本,在腳本中使用window.opener.document對象來操作父頁面的HTMLDOM。如果要在不支持模態(tài)對話框的Chrome瀏覽器中打開模態(tài)對話框,那么需要在每個涉及到打開模態(tài)對話框的頁面中注入兼容代碼。顯然,手動操作的便利程度遠不及自動化測試腳本。

4結語

自動化測試腳本可以讓資產管理員按照自己的思路操作資產管理系統(tǒng),是在不改變被測系統(tǒng)源代碼的前提下基于被測系統(tǒng)的二次開發(fā)。同時,當訪問資產管理系統(tǒng)網(wǎng)站遇到瀏覽器兼容性問題(尤其是影響到功能的正常使用)時,調用諸如Selenium等自動化測試庫進行JS腳本注入便可以較好地解決此類問題。換言之,資產管理員可以將資產管理工作轉變?yōu)檐浖y試活動,即:以資產管理數(shù)據(jù)為測試用例,自動化測試腳本為執(zhí)行步驟,進行資產管理系統(tǒng)的自動化測試,在完成資產管理工作的同時可以檢查被測系統(tǒng)中可能存在的漏洞或缺陷。隨著人工智能的再度崛起,低端崗位逐步被智能設備取代。同時,HTML、CSS和JS在版本迭代中逐漸能夠適應各大主流瀏覽器。這背后少不了軟件測試的深度參與。其中,自動化測試本身能夠替代一些簡單重復的手動測試。特別地,自動化測試程序還能調用人工智能算法,進一步替代較復雜的工作,加速推動軟件行業(yè)的發(fā)展。

作者:黃驥 單位:無錫科技職業(yè)學院