前言:想要寫出一篇引人入勝的文章?我們特意為您整理了自動(dòng)化測(cè)試在資產(chǎn)管理中應(yīng)用范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。
就軟件測(cè)試中自動(dòng)化測(cè)試在資產(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)信息為測(cè)試用例,使用Python編寫基于Selenium庫(kù)的自動(dòng)化測(cè)試腳本。在腳本中增加了對(duì)Chrome瀏覽器的兼容處理,最終在Chrome瀏覽器中實(shí)現(xiàn)模擬手動(dòng)操作,取得了與之在IE瀏覽器中相同的運(yùn)行效果。隨著信息化時(shí)代的到來(lái),采用資產(chǎn)管理系統(tǒng)的資產(chǎn)管理方式逐漸取代了傳統(tǒng)的手工管理方式,提高了資產(chǎn)管理工作的效率。然而現(xiàn)有的資產(chǎn)管理系統(tǒng)普遍存在一些問(wèn)題。首先,受限于用戶界面和業(yè)務(wù)邏輯的設(shè)計(jì),用戶體驗(yàn)難免不夠便捷,且往往難以滿足批量操作的需求[1,2]。其次,國(guó)內(nèi)大部分企事業(yè)單位的資產(chǎn)管理系統(tǒng)采用B/S架構(gòu),系統(tǒng)可能存在瀏覽器兼容性問(wèn)題,從而造成由CSS引起的顯示異常或者由JavaScript(JS)引起的功能異常等[3,4]。近期,美國(guó)微軟公司宣布于2022年6月15日退出支持IE瀏覽器。因此,原本需要使用IE瀏覽器訪問(wèn)資產(chǎn)管理系統(tǒng)網(wǎng)站的用戶將不得不尋找新的瀏覽器替代。眾所周知,針對(duì)上述問(wèn)題,現(xiàn)行普遍的解決方案是讓用戶使用指定的瀏覽器;或者變更軟件需求,通過(guò)軟件開發(fā)解決問(wèn)題。
1自動(dòng)化測(cè)試
本文僅討論基于Selenium庫(kù)的網(wǎng)頁(yè)端自動(dòng)化測(cè)試,使用的瀏覽器為Chrome瀏覽器,編程語(yǔ)言為Python[5]。
1.1產(chǎn)生/銷毀Chrome瀏覽器窗口句柄
首先,引入Selenium庫(kù)的WebDriver模塊。然后,通過(guò)driver=webdriver.Chrome()產(chǎn)生瀏覽器窗口句柄并打開一個(gè)Chrome瀏覽器窗口,通過(guò)driver.quit()銷毀瀏覽器窗口句柄并關(guān)閉Chrome瀏覽器窗口;最后,在產(chǎn)生句柄和銷毀句柄的這兩行代碼之間進(jìn)行自動(dòng)化測(cè)試代碼的書寫[6]。
1.2獲取HTML元素
通過(guò)driver.find_element_by_X()方法獲取單個(gè)元素、driver.find_elements_by_X()方法獲取多個(gè)元素,其中X可以是ID、Name、Class、XPath、CSS_Selector等,參數(shù)為元素對(duì)應(yīng)的屬性[7]。
1.3注入JavaScript腳本
通過(guò)driver.execute_script()方法在當(dāng)前頁(yè)面中注入JS代碼,參數(shù)為寫有JS腳本的字符串,該方法可以改變頁(yè)面的前端布局以及前端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)列表頁(yè)面。首先,根據(jù)“資產(chǎn)編號(hào)”確定待變動(dòng)的資產(chǎn);然后,通過(guò)點(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)頁(yè)面。首先,“使用/管理部門”“使用人”“存放地點(diǎn)”等字段通過(guò)點(diǎn)擊“選擇”按鈕,在彈出的模態(tài)對(duì)話框中填寫相應(yīng)的信息,保存信息時(shí)模態(tài)對(duì)話框?qū)⒆詣?dòng)關(guān)閉,模態(tài)對(duì)話框中填寫的信息將自動(dòng)填寫到上述字段所在的輸入框中;接著,“現(xiàn)狀”“使用方向”等字段通過(guò)下拉框選擇輸入;然后,根據(jù)實(shí)際變更的情況填寫“變動(dòng)原因”;最后,點(diǎn)擊“保存”按鈕,如果檢查之后確定無(wú)誤,則點(diǎn)擊“提交”按鈕上報(bào)一級(jí)單位。
3自動(dòng)化測(cè)試腳本的設(shè)計(jì)
本文的測(cè)試環(huán)境如表1所示,被測(cè)的資產(chǎn)管理系統(tǒng)僅在IE瀏覽器中可以正常運(yùn)行,而在其他瀏覽器(如Chrome瀏覽器)中會(huì)出現(xiàn)影響功能正常使用的兼容性問(wèn)題。接下來(lái)針對(duì)資產(chǎn)變動(dòng)模塊操作的關(guān)鍵環(huán)節(jié)進(jìn)行說(shuō)明。
3.1在資產(chǎn)列表中選擇待變動(dòng)資產(chǎn)
為選擇圖1中的待變動(dòng)資產(chǎn),即操作相應(yīng)的復(fù)選框,一般通過(guò)復(fù)選框元素的ID、Name屬性值或CSS選擇器進(jìn)行定位操作,當(dāng)確認(rèn)選擇時(shí)后端將獲取前端被選中的復(fù)選框元素的Value屬性值(資產(chǎn)編號(hào)通常寫在該屬性中)。在本文的被測(cè)系統(tǒng)中,因該元素的ID和Name屬性值均不含資產(chǎn)編號(hào),而CSS選擇器不支持文本搜索,故考慮使用XPath語(yǔ)句匹配其Value屬性值從而實(shí)現(xiàn)定位。又因?yàn)轱@示在前端的復(fù)選框元素的Value屬性值已被后端加密,加密方式無(wú)從得知,難以根據(jù)其Value屬性值進(jìn)行篩選,所以需要使用其他的方法構(gòu)造XPath語(yǔ)句,具體步驟如下:第1步:從圖1中表格的第2行至最后一行內(nèi)的第3列單元格中的文本和待變動(dòng)資產(chǎn)的編號(hào)進(jìn)行匹配,即://table/tr/td[3][text()='資產(chǎn)編號(hào)'];第2步:在上一步XPath語(yǔ)句的基礎(chǔ)上繼續(xù)構(gòu)造XML路徑,用來(lái)表示上一步匹配結(jié)果所在行第1列單元格中的復(fù)選框,完整的XPath語(yǔ)句為//table/tr/td[3][text()='資產(chǎn)編號(hào)']/../td[1]/input;第3步:以上一步中的XPath語(yǔ)句為參數(shù),調(diào)用driver.find_element_by_xpath()方法獲取復(fù)選框元素,接著調(diào)用click()方法切換選中狀態(tài)。當(dāng)需要選擇大量的待變動(dòng)資產(chǎn)時(shí),采用自動(dòng)化測(cè)試腳本的方式可以快速準(zhǔn)確地定位目標(biāo)資產(chǎn),大大提升管理效率。
3.2模態(tài)對(duì)話框的打開、數(shù)據(jù)獲取
如圖3所示是一種模態(tài)對(duì)話框,在IE瀏覽器中可以正常打開,但在Chrome瀏覽器中卻不可以正常打開。造成該現(xiàn)象的原因在于,模態(tài)對(duì)話框是通過(guò)JS的window.showModalDialog()方法打開的,而該方法僅在IE瀏覽器中有定義。為了能夠在Chrome瀏覽器中打開模態(tài)對(duì)話框,一般采用window.showModalDialog()方法的重定義,即如果該方法已定義,則維持現(xiàn)狀;否則使用window.open()方法代替。當(dāng)關(guān)閉模態(tài)對(duì)話框時(shí),其父頁(yè)面將接收模態(tài)對(duì)話框返回的數(shù)據(jù)。如果是Chrome瀏覽器,在用上述方法打開模態(tài)對(duì)話框的前提下,可以在模態(tài)對(duì)話框所在的頁(yè)面中注入JS腳本,在腳本中使用window.opener.document對(duì)象來(lái)操作父頁(yè)面的HTMLDOM。如果要在不支持模態(tài)對(duì)話框的Chrome瀏覽器中打開模態(tài)對(duì)話框,那么需要在每個(gè)涉及到打開模態(tài)對(duì)話框的頁(yè)面中注入兼容代碼。顯然,手動(dòng)操作的便利程度遠(yuǎn)不及自動(dòng)化測(cè)試腳本。
4結(jié)語(yǔ)
自動(dòng)化測(cè)試腳本可以讓資產(chǎn)管理員按照自己的思路操作資產(chǎn)管理系統(tǒng),是在不改變被測(cè)系統(tǒng)源代碼的前提下基于被測(cè)系統(tǒng)的二次開發(fā)。同時(shí),當(dāng)訪問(wèn)資產(chǎn)管理系統(tǒng)網(wǎng)站遇到瀏覽器兼容性問(wèn)題(尤其是影響到功能的正常使用)時(shí),調(diào)用諸如Selenium等自動(dòng)化測(cè)試庫(kù)進(jìn)行JS腳本注入便可以較好地解決此類問(wèn)題。換言之,資產(chǎn)管理員可以將資產(chǎn)管理工作轉(zhuǎn)變?yōu)檐浖y(cè)試活動(dòng),即:以資產(chǎn)管理數(shù)據(jù)為測(cè)試用例,自動(dòng)化測(cè)試腳本為執(zhí)行步驟,進(jìn)行資產(chǎn)管理系統(tǒng)的自動(dòng)化測(cè)試,在完成資產(chǎn)管理工作的同時(shí)可以檢查被測(cè)系統(tǒng)中可能存在的漏洞或缺陷。隨著人工智能的再度崛起,低端崗位逐步被智能設(shè)備取代。同時(shí),HTML、CSS和JS在版本迭代中逐漸能夠適應(yīng)各大主流瀏覽器。這背后少不了軟件測(cè)試的深度參與。其中,自動(dòng)化測(cè)試本身能夠替代一些簡(jiǎn)單重復(fù)的手動(dòng)測(cè)試。特別地,自動(dòng)化測(cè)試程序還能調(diào)用人工智能算法,進(jìn)一步替代較復(fù)雜的工作,加速推動(dòng)軟件行業(yè)的發(fā)展。
作者:黃驥 單位:無(wú)錫科技職業(yè)學(xué)院
本站为第三方开放式学习交流平台,所有内容均为用户上传,仅供参考,不代表本站立场。若内容不实请联系在线客服删除,服务时间:8:00~21:00。