UI自動化測試工具設(shè)計

需求來源:在項目中孕蝉,需要對UI進行測試屡律,確保UI邏輯的正確性。在UI邏輯測試中降淮,用例的編寫是一個”勞動密集“型任務(wù)超埋,需要一邊操作,一邊編寫用例的步驟佳鳖,為了能夠清晰準(zhǔn)確的描述操作霍殴,還需要很多輔助描述信息。如果考慮到后期的回歸測試系吩,以及UI修改變更維護来庭,這個事情將嚴(yán)重影響團隊的測試效率。

目標(biāo)

人工操作是不可避免的穿挨,在產(chǎn)品發(fā)布后月弛,人工必須將所有功能都執(zhí)行一次肴盏。如果能夠?qū)⑷斯?zhí)行動作自動轉(zhuǎn)換為用例操作步驟,那么將極大提高測試效率帽衙。事實上叁鉴,已經(jīng)存在一些類似工具,例如比較知名的QTP佛寿。核心概念就是記錄-回放幌墓。
既然已經(jīng)存在了相關(guān)工具,重新設(shè)計的意義何在冀泻?主要有兩大原因:一常侣,現(xiàn)有工具是國外產(chǎn)品,版權(quán)存在限制弹渔,在當(dāng)今國際形式下胳施,存在極大的版權(quán)風(fēng)險;二肢专,現(xiàn)有工具開放性不足舞肆,擴展性差,不適合自身使用需求博杖。
與國外現(xiàn)有工具相比椿胯,本工具將主要滿足以下特點:

  1. 支持與禪道進行用例管理集成;
  2. 支持基于圖形剃根、句柄哩盲、文字識別多種方式進行記錄;
  3. 支持快捷鍵模式切換狈醉;
  4. 支持快捷鍵添加結(jié)果驗證廉油;
  5. 支持記錄、回放擴展苗傅,以應(yīng)對不同應(yīng)用場景抒线;
  6. 支持多端應(yīng)用測試;
  7. 針對大型項目渣慕,能夠進行多人協(xié)作用例設(shè)計嘶炭;

核心點:

  1. 擴展性,支持不同執(zhí)行記錄摇庙、回放實現(xiàn)旱物;
  2. 開放性,能夠與不同項目管理平臺集成卫袒;
  3. 高效性宵呛,通過快捷鍵將用例設(shè)定操作集成在被測系統(tǒng)使用過程中;
  4. 多人協(xié)作夕凝;
  5. 統(tǒng)一性宝穗,實現(xiàn)多端統(tǒng)一户秤,支持桌面、web逮矛、手機APP鸡号、嵌入式。

整體設(shè)計

流程劃分

記錄-回放模式下须鼎,主要有三個核心流程:執(zhí)行記錄鲸伴、記錄編輯記錄回放晋控。執(zhí)行記錄汞窗,主要根據(jù)用戶執(zhí)行,自動生成“記錄”赡译,也就是自動化執(zhí)行的腳本仲吏。記錄編輯,是針對自動生成“記錄”的編輯過程蝌焚,目的是刪除記錄中的冗余動作裹唆,提升記錄的魯棒性。記錄回放只洒,是針對記錄的自動執(zhí)行许帐。
其中,執(zhí)行記錄與記錄回放是系統(tǒng)的核心流程红碑,影響了系統(tǒng)的可用性舞吭,記錄編輯影響了系統(tǒng)的易用性。

業(yè)務(wù)概念

在系統(tǒng)測試中析珊,用例主要源于需求,同一個用例可以覆蓋率多條需求蔑穴,同一需求也可以由多條用例覆蓋滿足忠寻。需求與用例之間是一種多對多的關(guān)系。一個用例由多個執(zhí)行步驟組成存和,執(zhí)行步驟是用例的最小組成單元奕剃。在用例描寫中,存在前置條件的設(shè)定捐腿,前置條件可看作一組共用的執(zhí)行步驟纵朋,從這個維度來講,用例完全由執(zhí)行步驟組成茄袖。
在本系統(tǒng)中操软,存在四個業(yè)務(wù)概念:執(zhí)行步驟執(zhí)行邏輯宪祥、用例聂薪、可變參家乘。執(zhí)行步驟是可被多個用例復(fù)用的基本操作單元。執(zhí)行邏輯是對執(zhí)行步驟的組合藏澳,包含執(zhí)行控制邏輯仁锯,分支、循環(huán)翔悠。用例執(zhí)行步驟執(zhí)行邏輯的組合业崖,精確的描述了執(zhí)行過程。可變參代表了執(zhí)行步驟蓄愁、執(zhí)行邏輯双炕、用例中可被修改變化的內(nèi)容,是用例自動化執(zhí)行的核心涝登,在執(zhí)行步驟中雄家,可變參體現(xiàn)在輸入信息的可變,在執(zhí)行邏輯中胀滚,可變參體現(xiàn)在控制邏輯(例如趟济,循環(huán)次數(shù))的可變中。

體系架構(gòu)

頂層架構(gòu)

從目標(biāo)需求(多人協(xié)作)與業(yè)務(wù)邏輯(執(zhí)行步驟復(fù)用)出發(fā)咽笼,系統(tǒng)整體架構(gòu)為C/S架構(gòu)模式顷编,服務(wù)器主要用于測試數(shù)據(jù)(主要指執(zhí)行步驟、用例)管理剑刑,客戶端主要用例產(chǎn)生媳纬、訪問、執(zhí)行記錄數(shù)據(jù)施掏,以及與第三方管理平臺進行數(shù)據(jù)集成钮惠。

頂層數(shù)據(jù)流架構(gòu)

系統(tǒng)與第三方系統(tǒng)集成時,主要的交互數(shù)據(jù)是用例七芭。用例數(shù)據(jù)將以兩種形態(tài)存在素挽,一種是由執(zhí)行邏輯與執(zhí)行步驟生成的執(zhí)行描述文件(包含用例唯一ID,以及執(zhí)行步驟描述)狸驳;另一個是精確的邏輯執(zhí)行文件预明,包含了即時凍結(jié)狀態(tài)(即支持歷史版本使用,當(dāng)然也支持最新版本標(biāo)記使用)的執(zhí)行步驟耙箍、執(zhí)行邏輯撰糠、資源文件等。
用例與第三方平臺是否同步辩昆,由系統(tǒng)使用者決定阅酪。第三方平臺用戶登錄信息,只保存于客戶端本地數(shù)據(jù)中,更換機器后遮斥,需要重新輸入峦失。

系統(tǒng)分層架構(gòu)

系統(tǒng)主要功能集中于客戶端,所以將主要針對客戶端進行細節(jié)闡述术吗。系統(tǒng)將主要構(gòu)建為四層尉辑,從上到下分別為:業(yè)務(wù)層擴展層较屿、業(yè)務(wù)基礎(chǔ)層隧魄、基礎(chǔ)層基礎(chǔ)層隘蝎,主要是公共基礎(chǔ)服務(wù)模塊的封裝购啄,例如日志。業(yè)務(wù)基礎(chǔ)層嘱么,是與項目相關(guān)性極大的基礎(chǔ)模塊封裝狮含,例如鼠標(biāo)事件監(jiān)控模塊。擴展層曼振,是針對業(yè)務(wù)基礎(chǔ)層中模塊的擴展几迄,例如基于圖像處理的屏幕對象識別擴展實現(xiàn)。業(yè)務(wù)層,針對業(yè)務(wù)要求冰评,實現(xiàn)記錄-回放映胁。業(yè)務(wù)層,在細節(jié)上甲雅,又被劃分為三個小層解孙,分別為UI層業(yè)務(wù)擴展層抛人、業(yè)務(wù)邏輯層弛姜。
在系統(tǒng)實現(xiàn)中,業(yè)務(wù)基礎(chǔ)層擴展層包含的主要模塊有:交互監(jiān)控模塊妖枚、交互控制模塊娱据、對象識別模塊記錄生成模塊盅惜、記錄執(zhí)行模塊數(shù)據(jù)管理模塊忌穿。業(yè)務(wù)層包含的主要模塊有:執(zhí)行記錄模塊抒寂、業(yè)務(wù)交互模塊用例編排模塊掠剑、業(yè)務(wù)擴展模塊屈芜、用例編輯執(zhí)行系統(tǒng)

系統(tǒng)分層架構(gòu)圖

關(guān)鍵業(yè)務(wù)操作流程

核心操作流程如下:

  1. 新建/打開項目;
  2. 新建用例井佑;
  3. 選擇/新建属铁、記錄執(zhí)行步驟;
  4. 重復(fù)3躬翁,直到完成所有執(zhí)行步驟焦蘑;
  5. 編輯執(zhí)行邏輯(工作流引擎圖形式);

幾個要點說明

  1. 選擇一個已經(jīng)存在的執(zhí)行步驟時盒发,設(shè)置可變參后例嘱,自動執(zhí)行該執(zhí)行步驟;
  2. 在已存在的用例中宁舰,在某執(zhí)行步驟前拼卵,打開/新建執(zhí)行步驟時,執(zhí)行步驟可針對后續(xù)執(zhí)行步驟(一個或多個)設(shè)定插入蛮艰、替換腋腮、分支等操作;
  3. 在記錄編輯中壤蚜,應(yīng)能單獨執(zhí)行某執(zhí)行步驟即寡,對于快速編輯記錄有重要意義。

關(guān)鍵技術(shù)

在本項目中仍律,核心難點是對象的識別與匹配嘿悬,如何能夠高效、準(zhǔn)確水泉、高魯棒的進行對象識別善涨、匹配,是本項目可用性中最大的影響因素草则。

后注

本文是針對UI自動化工具的一個思考钢拧,是一個開端,既不完整也不完善炕横。一個完整的設(shè)計源内,應(yīng)該具有以下特點:

  1. 充分的領(lǐng)域調(diào)研;
  2. 需求驅(qū)動的架構(gòu)設(shè)計份殿;
  3. 架構(gòu)設(shè)計不僅是空間完整膜钓,還應(yīng)該是時間完整的。

前兩點應(yīng)該沒有疑問卿嘲,很好理解颂斜。針對第三點,空間完整主要指拾枣,架構(gòu)設(shè)計應(yīng)該要包含細節(jié)沃疮,能夠充分展示最終系統(tǒng)的設(shè)計細節(jié)盒让,而不應(yīng)該僅僅是幾個模塊組成、交互圖司蔬,時間完整主要指邑茄,架構(gòu)設(shè)計應(yīng)該指示演進過程。一個復(fù)雜系統(tǒng)俊啼,并不是一下完成所有細節(jié)肺缕,而是經(jīng)過多次迭代,逐步完善的過程吨些。
針對以上不足搓谆,我將在另一篇文章中,進行更加完整的描述豪墅。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泉手,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子偶器,更是在濱河造成了極大的恐慌斩萌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屏轰,死亡現(xiàn)場離奇詭異颊郎,居然都是意外死亡,警方通過查閱死者的電腦和手機霎苗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門姆吭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人唁盏,你說我怎么就攤上這事内狸。” “怎么了厘擂?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵昆淡,是天一觀的道長。 經(jīng)常有香客問我刽严,道長昂灵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任舞萄,我火速辦了婚禮眨补,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘倒脓。我一直安慰自己渤涌,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布把还。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吊履。 梳的紋絲不亂的頭發(fā)上安皱,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音艇炎,去河邊找鬼酌伊。 笑死,一個胖子當(dāng)著我的面吹牛缀踪,可吹牛的內(nèi)容都是我干的居砖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼驴娃,長吁一口氣:“原來是場噩夢啊……” “哼奏候!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起唇敞,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蔗草,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后疆柔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咒精,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年旷档,在試婚紗的時候發(fā)現(xiàn)自己被綠了模叙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡鞋屈,死狀恐怖范咨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谐区,我是刑警寧澤湖蜕,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站宋列,受9級特大地震影響昭抒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炼杖,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一灭返、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坤邪,春花似錦熙含、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邮弹。三九已至,卻和暖如春蚓聘,著一層夾襖步出監(jiān)牢的瞬間腌乡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工夜牡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留与纽,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓塘装,卻偏偏與公主長得像急迂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蹦肴,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容