电竞比分网-中国电竞赛事及体育赛事平台

分享

構(gòu)建一個(gè)適應(yīng)業(yè)務(wù)變化的自動(dòng)化框架體系

 TestOps云層 2021-12-23
從大概10年前學(xué)習(xí)自動(dòng)化(QTP),到開(kāi)始規(guī)劃自動(dòng)化平臺(tái)(TestWrite),再到敏捷活文檔,對(duì)于做工具、框架還是平臺(tái)云層也算是有點(diǎn)自己的想法。

越是平臺(tái)越難適應(yīng)變化,越是工具能力要求越高



對(duì)于變化較少的,規(guī)范的可以使用平臺(tái)化的模式統(tǒng)一管理,例如常見(jiàn)的RestFul接口,只需要API地址,Json入?yún)⒁?guī)范和Json出參規(guī)范即可;而對(duì)于前端原型規(guī)范(css或id標(biāo)記)的也可以通過(guò)平臺(tái)化的錄制回放或者RF平臺(tái)來(lái)統(tǒng)一管理。
一直以為都2021年了,前后臺(tái)分離及規(guī)范的前臺(tái)已經(jīng)是標(biāo)配,然而歷史債務(wù)的問(wèn)題,老系統(tǒng)的自動(dòng)化就沒(méi)有那么的正規(guī)。正巧這次為某行進(jìn)行分層自動(dòng)化架構(gòu)設(shè)計(jì)培訓(xùn),就遇到了歷史問(wèn)題的情況,完全基于(Java的代碼及架構(gòu)設(shè)計(jì)):

  1. 前臺(tái)架構(gòu)的歷史問(wèn)題

    雖然前臺(tái)已經(jīng)規(guī)范過(guò)一次,添加了不少的ID,但是由于本身技術(shù)架構(gòu)的問(wèn)題,會(huì)影響自動(dòng)化的執(zhí)行效果(頁(yè)面渲染后會(huì)異步加載Jquery的事件部分,構(gòu)建對(duì)象操作)。在該架構(gòu)下雖然頁(yè)面已經(jīng)渲染完成,但是所有對(duì)象都是無(wú)法操作的,需要等到異步j(luò)s加載完成才能實(shí)現(xiàn)效果。

  2. 后臺(tái)架構(gòu)的歷史問(wèn)題

    傳統(tǒng)系統(tǒng)還無(wú)法做到完全的前后臺(tái)分離,部分接口使用了老式的servlet返回HTML頁(yè)面,也有部分結(jié)構(gòu)升級(jí)了局部的Json體系,在這種情況下對(duì)于接口測(cè)試也面臨著入?yún)⑴渲?,出參斷言及前后?shù)據(jù)依賴維護(hù)復(fù)雜的問(wèn)題。

對(duì)于比較重要的項(xiàng)目,大規(guī)模的自動(dòng)化回歸是有效減少上線質(zhì)量問(wèn)題的重要手段,盡早盡快的反饋在測(cè)試環(huán)境中的問(wèn)題,通過(guò)持續(xù)交付來(lái)提升缺陷修復(fù)周期。那么對(duì)于這樣的混合歷史技術(shù)債務(wù)的架構(gòu)怎么構(gòu)建分層自動(dòng)化框架體系呢,這里做了幾個(gè)嘗試:

  1. UI方面

    基于基本PO的封裝,由于無(wú)法有效的獲取js加載的周期,在全新頁(yè)面中加入全局等待時(shí)間,確保對(duì)象操作不受影響,也降低了每個(gè)對(duì)象都要等待的執(zhí)行效率低下。
    與前端同步的PO封裝,同步目錄結(jié)構(gòu)及名稱,可以極大的提升前端開(kāi)發(fā)與自動(dòng)化腳本的同步性,甚至賦能前端同步對(duì)象變化。
    基于業(yè)務(wù)的頁(yè)面功能封裝,從業(yè)務(wù)視角進(jìn)行頁(yè)面功能封裝,讓任何一個(gè)接手人員可以在不了解方法功能的情況下也能簡(jiǎn)單完成業(yè)務(wù)組合及操作。
  2. API方面

    使用多套接口基礎(chǔ)(OKHTTP和Jsoup),對(duì)于標(biāo)準(zhǔn)的Restful基于OKHTTP的封裝,基于傳統(tǒng)的HTML返回基于Jsoup的封裝。因?yàn)镴soup對(duì)于返回的HTML能夠使用標(biāo)準(zhǔn)的DOM模式處理,在提取對(duì)象和斷言上會(huì)方便很多。
    為同一業(yè)務(wù)構(gòu)建API方法封裝與UI方法對(duì)應(yīng)。在PO中融合UI及API,這樣可以快速評(píng)估某功能是否實(shí)現(xiàn)了UI及API的雙重校驗(yàn),避免遺漏。
    支持測(cè)試用例的UI及API混用模式,以Junit5為基礎(chǔ)。
    與研發(fā)接口匹配的接口規(guī)劃及內(nèi)部(Service層)測(cè)試能力。
    測(cè)試數(shù)據(jù)構(gòu)建的策略支持,基于Dao層的驅(qū)動(dòng)能力。
    一定的數(shù)據(jù)Mock隔離能力。
  3. 日志方面

    統(tǒng)一日志格式及策略,基于底層封裝實(shí)現(xiàn)任意用例的完整測(cè)試執(zhí)行日志。
由于是時(shí)間(個(gè)人能力,現(xiàn)場(chǎng)翻車)關(guān)系,本來(lái)想完整構(gòu)建的活文檔架構(gòu)及報(bào)告體系并沒(méi)有最終落地代碼。

僅僅的自動(dòng)化測(cè)試只是質(zhì)量保證的一塊,如何與研發(fā)同步構(gòu)建質(zhì)量中臺(tái)、質(zhì)量度量、精準(zhǔn)覆蓋率獲取、持續(xù)交付模式、環(huán)境構(gòu)建等也是這次交付中涉及到的內(nèi)容。

質(zhì)量意識(shí)是全局的,在本次培訓(xùn)中心后臺(tái)研發(fā),前臺(tái)研發(fā)給了很多技術(shù)架構(gòu)的解析及解決方案的支持,讓最后交付的框架能夠跑通規(guī)劃中的業(yè)務(wù)鏈路,成為未來(lái)可以參考的架構(gòu)模板。



    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多