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

自動(dòng)化測試在資產(chǎn)管理中應(yīng)用

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

自動(dòng)化測試在資產(chǎn)管理中應(yīng)用

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

1自動(dòng)化測試

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

1.1產(chǎn)生/銷毀Chrome瀏覽器窗口句柄

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

1.2獲取HTML元素

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

1.3注入JavaScript腳本

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

2資產(chǎn)變動(dòng)的功能點(diǎn)分析

由于部門的調(diào)整,當(dāng)有人員調(diào)動(dòng)時(shí),其名下的資產(chǎn)一般會(huì)移交給原部門的其他同事。此時(shí)需要聯(lián)系資產(chǎn)管理員進(jìn)行資產(chǎn)變動(dòng)。

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

2.2編輯資產(chǎn)變動(dòng)信息

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

3自動(dòng)化測試腳本的設(shè)計(jì)

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

3.1在資產(chǎn)列表中選擇待變動(dòng)資產(chǎn)

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

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()方法代替。當(dāng)關(guān)閉模態(tài)對話框時(shí),其父頁面將接收模態(tài)對話框返回的數(shù)據(jù)。如果是Chrome瀏覽器,在用上述方法打開模態(tài)對話框的前提下,可以在模態(tài)對話框所在的頁面中注入JS腳本,在腳本中使用window.opener.document對象來操作父頁面的HTMLDOM。如果要在不支持模態(tài)對話框的Chrome瀏覽器中打開模態(tài)對話框,那么需要在每個(gè)涉及到打開模態(tài)對話框的頁面中注入兼容代碼。顯然,手動(dòng)操作的便利程度遠(yuǎn)不及自動(dòng)化測試腳本。

4結(jié)語

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

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