摘要:三思而后行自動(dòng)化測(cè)試最終目的是啥投入產(chǎn)出比的最佳平衡點(diǎn)在哪很多實(shí)施者在搭建自動(dòng)化框架前往往缺乏思考,為了自動(dòng)化而自動(dòng)化。
三思而后行
UI自動(dòng)化測(cè)試最終目的是啥?投入產(chǎn)出比的最佳平衡點(diǎn)在哪?很多實(shí)施者在搭建UI自動(dòng)化框架前往往缺乏思考,為了自動(dòng)化而自動(dòng)化。三思而后行,方向決定成敗。由于項(xiàng)目接口(API and Service)自動(dòng)化代碼行覆蓋率已經(jīng)達(dá)到70%,基于當(dāng)前自動(dòng)化人力和項(xiàng)目質(zhì)量目標(biāo),我們的自動(dòng)化最終目的是覆蓋上線回歸的UI CheckPoint,為了降低后期維護(hù)成本,CheckPoint偏重于入口展示和用戶事件響應(yīng)邏輯。圍繞目標(biāo),在搭建UI自動(dòng)化框架的過(guò)程中探索了一些優(yōu)化點(diǎn),來(lái)分享一下
最佳實(shí)踐資源代碼分離
XML與Java Object建議映射關(guān)系,一個(gè)頁(yè)面對(duì)應(yīng)一個(gè)XML,頁(yè)面、控件信息和測(cè)試數(shù)據(jù)統(tǒng)一管理維護(hù),如圖:
測(cè)試用例執(zhí)行之前,會(huì)將XML轉(zhuǎn)化成Java Object,且會(huì)實(shí)例化一些操作類的方法,如圖:
通過(guò)Override可以滿足同一事件不同場(chǎng)景下的使用,也便于日志格式的一致性,提高腳本失敗原因分析效率
自動(dòng)抓取控件生成XML
既然采用XML管理Page和Element數(shù)據(jù),那么生成XML這件事就可以自動(dòng)化了,不過(guò)困難在于如何定義控件XPath生成規(guī)則,需要把手動(dòng)寫(xiě)控件XPath的思考過(guò)程,抽象化,規(guī)則化。需要通過(guò)兩方面來(lái)完成:
有事件響應(yīng)的控件,如button、a、input。而這些控件具備通用屬性,且在一個(gè)頁(yè)面大多時(shí)候具備唯一性,如:text、value、herf、placeholder,所以優(yōu)先生成這個(gè)規(guī)則的XPath:
業(yè)務(wù)通用組件一般基于div的形式,獲取class生成唯一識(shí)別的XPath:
操作步驟使用接口請(qǐng)求代替UI操作
這一點(diǎn)套用在iOS、Android、Web、H5、小程序幾乎所有前端UI自動(dòng)化上,都是適用的。因?yàn)榻涌谡?qǐng)求的穩(wěn)定性和維護(hù)成本永遠(yuǎn)低于UI操作。準(zhǔn)確來(lái)說(shuō),與CheckPoint無(wú)直接關(guān)聯(lián)的UI操作,如數(shù)據(jù)的創(chuàng)建和刪除。這里是post請(qǐng)求的方法封裝:
命令模式進(jìn)行測(cè)試后的數(shù)據(jù)清理
命令模式是Java種開(kāi)發(fā)設(shè)計(jì)模型的一種,在這里具體是這樣運(yùn)用的:
1、每一項(xiàng)測(cè)試數(shù)據(jù)的清理,都是一個(gè)任務(wù)類,所有的任務(wù)類都繼承了一個(gè)抽象類,在action方法里定義了數(shù)據(jù)清理的接口請(qǐng)求。
2、在每次創(chuàng)建數(shù)據(jù)后,實(shí)例化任務(wù)類,然后添加到隊(duì)列里
3、所有測(cè)試用例執(zhí)行完成后,afterTest里遍歷隊(duì)列依次數(shù)據(jù)清理
采用這個(gè)方式的優(yōu)勢(shì):
1、自動(dòng)化測(cè)試任務(wù)中途異常退出結(jié)束了,也可以清理掉已創(chuàng)建的數(shù)據(jù)
2、支持多份的同樣數(shù)據(jù)清理,數(shù)據(jù)之間不受影響
3、無(wú)需用完立刻刪除,統(tǒng)一清理,且支持并發(fā),高效
通過(guò)Listener收集數(shù)據(jù)生成測(cè)試報(bào)告
日志統(tǒng)一,操作事件和檢查點(diǎn)清晰可見(jiàn),加上失敗截圖保存,一旦出現(xiàn)失敗可以快速定位問(wèn)題,大大降低后期維護(hù)成本
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/72142.html
摘要:本文簡(jiǎn)單介紹是什么,為什么用,怎么用。技術(shù)棧是什么是一個(gè)開(kāi)發(fā)平臺(tái),用于生成,開(kāi)發(fā),部署和。實(shí)現(xiàn)需定制化源碼。 本文簡(jiǎn)單介紹Jhipster是什么,為什么用Jhipster,怎么用Jhipster。 WHAT - 技術(shù)棧 JHipster是什么 JHipster是一個(gè)開(kāi)發(fā)平臺(tái),用于生成,開(kāi)發(fā),部署Spring Boot + Angular/React Web Application和Sp...
摘要:介紹最近開(kāi)始刷一些書(shū)和題此系列是介紹在讀最佳實(shí)踐的一些收獲和體會(huì)。先修改諸如命名,格式等不涉及具體邏輯的內(nèi)容重構(gòu)過(guò)程中要持續(xù)測(cè)試,在多個(gè)瀏覽器測(cè)試,確保重構(gòu)的部分功能正確。 介紹 最近開(kāi)始刷一些書(shū)和題,此系列是介紹在讀Web最佳實(shí)踐的一些收獲和體會(huì)。 showImg(https://segmentfault.com/img/remote/1460000011465909?w=309&...
摘要:介紹最近開(kāi)始刷一些書(shū)和題此系列是介紹在讀最佳實(shí)踐的一些收獲和體會(huì)。先修改諸如命名,格式等不涉及具體邏輯的內(nèi)容重構(gòu)過(guò)程中要持續(xù)測(cè)試,在多個(gè)瀏覽器測(cè)試,確保重構(gòu)的部分功能正確。 介紹 最近開(kāi)始刷一些書(shū)和題,此系列是介紹在讀Web最佳實(shí)踐的一些收獲和體會(huì)。 showImg(https://segmentfault.com/img/remote/1460000011465909?w=309&...
摘要:介紹最近開(kāi)始刷一些書(shū)和題此系列是介紹在讀最佳實(shí)踐的一些收獲和體會(huì)。先修改諸如命名,格式等不涉及具體邏輯的內(nèi)容重構(gòu)過(guò)程中要持續(xù)測(cè)試,在多個(gè)瀏覽器測(cè)試,確保重構(gòu)的部分功能正確。 介紹 最近開(kāi)始刷一些書(shū)和題,此系列是介紹在讀Web最佳實(shí)踐的一些收獲和體會(huì)。 showImg(https://segmentfault.com/img/remote/1460000011465909?w=309&...
摘要:為什么說(shuō)最佳實(shí)踐是呢簡(jiǎn)單來(lái)說(shuō),就是這類預(yù)處理器在提供一定的抽象能力的同時(shí),也不會(huì)破壞自身的特性。就語(yǔ)義化這件事情而言,如果你的是基于標(biāo)準(zhǔn)來(lái)編寫(xiě)的,意味著你的頁(yè)面具備更多的可能性。 原文:https://github.com/kuitos/kuitos.github.io/issues/33 15年年末寫(xiě)了篇關(guān)于BEM方法論(實(shí)踐上內(nèi)容并不是原BEM)的文章,文末給自己挖了個(gè)坑說(shuō)要聊聊w...
閱讀 2881·2021-10-14 09:43
閱讀 1678·2021-09-29 09:34
閱讀 1759·2021-07-28 00:16
閱讀 2974·2019-08-30 15:53
閱讀 2919·2019-08-30 13:59
閱讀 2973·2019-08-30 13:57
閱讀 1105·2019-08-26 13:38
閱讀 1906·2019-08-26 13:25