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