鋪貼如何校驗?酷家樂硬裝鋪貼 UI 自動化實戰
一. 背景
酷家樂雲設計工具,為使用者提供了專業高效的3D智慧雲設計服務。在雲設計工具中,硬裝鋪貼外掛提供了豐富的硬裝設計,如材質鋪貼、樣式尺寸調整、引數編輯和戶改更新等,鋪貼操作靈活,設計簡單高效,支援快速繪製和預覽,實現所見即所得。在使用者設計過程中,硬裝鋪貼以mesh的方式呈現在3D畫布中。對於全屋硬裝行業,如何對鋪貼進行校驗,是全屋硬裝的校驗難點之一。目前的硬裝鋪貼設計工具具有以下痛點:
1.無自動化迴歸,畫布中的鋪貼無法校驗
2.設計工具的功能完善和增強,外掛和依賴增多
3.硬裝工具外掛化,存在材質編輯、引數化鋪法等程式碼改動,導致bug修復不及時、灰髮延遲等問題
如何在依賴外掛多的情況下,解決硬裝鋪貼外掛的自動化迴歸,成為硬裝鋪貼外掛的難點之一。
二. Mesh簡介和技術選型
2.1 Mesh簡介
硬裝鋪貼基於Mesh實現完成,在畫布中進行操作,以三維計算機圖形學為基礎,全屋硬裝以多邊形網路來定義多面體物件形狀的頂點、邊和麵的集合。硬裝面通常由三角形網格、四邊形或其他簡單的凸多邊形組成,用以描述硬裝鋪貼的模型資訊,如頂點、法向、面和材質等資訊。
如下示例為一個代表海豚的低多邊形三角形網格的例子:
2.2 技術選型
- 傳統的UI自動化工具
傳統的UI自動化工具,如Robort Framework,基於元素定位,而對於酷家樂3D設計工具而言,基本實現左側欄等具有元素定位的場景。對於硬裝鋪貼的Mesh校驗場景,無法實現此類場景的校驗。 - 圖片對比
由於穩定性等影響,實際試驗之後,畫布操作後的截圖對比受到3D視角、相機位置等影響,且由於圖片精度等因素,圖片對比的實際效果不佳,期望能找到更適合的方法。 - 鋪貼校驗和基於KAF的酷家樂底層框架
KAF作為酷家樂工具的底層框架,提供了工具操作的統一高頻功能模組和使用流程。結合基於Puppeteer的自動化測試框架,可獲取畫布中物件屬性資訊的API,如獲取物件的螢幕座標、獲取物件的空間座標與尺寸屬性等。 深入鋪貼外掛發現,所有鋪貼的資料可通過KAF的底層來獲取,獲取鋪貼資料的唯一標識ID,再通過該標識可找到鋪貼相關mesh資料,從而對鋪貼進行校驗。
三. 如何做的
3.1 Mesh資料不穩定
通過實際發現,mesh校驗存在資料不穩定的問題:
- mesh每次生成的結果不太一樣,同一個鋪貼資訊直接生成兩次也不能保證生成的mesh資料完全相同;
- mesh資料本身也是僅用於展示顯示,丟失了很多的資訊,缺少必要的業務資訊,如材質屬性等;
通過深入理解前端鋪貼外掛的實現和原理,所有的鋪貼資訊來源於鋪貼結構,其中包括了鋪貼的各種資訊,如自由鋪、平鋪、波打線、引數化鋪法和外輪廓等資訊。鋪貼結構和mesh有單向對映的關係,通過mesh-generate進行多邊形切割、三角化和材質計算等處理後,單向對映成mesh展示資訊。
##3.2 鋪貼資訊的校驗
在經歷了上述思考後,問題迴歸到了是否可找到3D畫布中的唯一標識找到鋪貼資訊,並進行校驗?
我的行動:
- 討論和實現畫布中硬裝鋪貼校驗的可能性和合理性
- 增加根據entity獲取鋪貼資訊介面
- 提升和封裝紫金鈴框架,支援硬裝鋪貼資訊獲取
- 覆蓋和支援用例
整體流程可用如下表示: - 選中一個建築面,出現唯一標識ID;
- 根據戶型中間層的介面,根據唯一標識ID獲取上面的建築面ID;
- 根據建築面ID,獲取對應的鋪貼資訊,返回克隆的鋪貼資料(暫時為clone,防止出現髒資料。之後有需求,再考慮是否修改);
- 將鋪貼資訊返回給前端自動化pybell;
- 自動化執行和資料校驗。
四. 自動化閉環
實現UI自動化後,提高自動化的結果感知度,將自動化測試結果及時有效的推動給有效人群,也是至關重要的一環。
自動化閉環流程,分成以下進行:
- 前端部署成功,觸發webhook進行結果部署,並推送訊息;
- UI和效能自動化開始執行,上報效能指標給前端監控;
- 自動化執行結束後,推動UI和效能結果;
可用以下流程圖進行表示:
五. 結果和收益
5.1 結果
從0到1實現了鋪貼UI自動化
自動化閉環:部署-自動化迴歸-報告展示
5.2 收益
覆蓋高P業務場景,融入迭代,發現問題,減少20%迴歸時間
整合測試環境,整合階段每天平均部署3次以上。對於每次整合,可減少20%的迴歸時間,鋪貼的UI自動化和效能迴歸可在整合階段,較大地提升測試效率。對於整合失敗等異常情形,也可以通過UI自動化的測試報告,第一時間獲知,及時對整合測試進行維護。
部分行為測試用例如下表所示:
六. 啟發
對於工具中的特定外掛,可通過增加前端介面,獲取測試資料,從而進行有效的測試,而不僅僅依賴於已展示的資料,該點可為如硬裝2.0和引數化等鋪貼資料提供思路和借鑑價值。
而對於工具前端包含了較多外掛,如戶型、鋪貼和圖紙等,存在了大量的外掛間資料互動行為,傳統測試方法通常以端到端的手工測試為主,難以覆蓋。對於前端外掛之間的debug和資料有效性校驗,可以相似的做法,根據前端外掛之間介面互動,構造並獲取測試資料,進行有效的測試,解決外掛間資料難以獲取的傳遞問題。將前端外掛之間不透明的資料展示,轉換為可透明的資料展示。同時,外掛之間傳遞的透明化資料,也可作為外掛間的debug測試工具。
七. 規劃展望
- 硬裝鋪貼外掛中可自動化覆蓋部分,覆蓋率高於60%
- 應用在全屋硬裝設計工具2.0
想了解更多關於酷家樂技術質量的文章,歡迎關注我們的公眾號
相關文章
- 記錄貼——Jenkins自動化構建工具安裝Jenkins
- UI自動化測試實戰UI
- 校招經驗貼 | 如何自學程式設計進入亞洲第一安全天團?程式設計
- 2023 校招——來自阿里正經的招聘貼阿里
- 本地生活服務合夥夥伴經驗貼|如何打造營銷活動實現轉化
- UI自動化實戰進階後續UI
- 前端體驗優化小貼士前端優化
- 影像自動拼貼製作工具
- 水一貼,新年快樂!
- iOS App 效能資料自動化收集討論、徵集貼iOSAPP
- 拼多多店鋪排名不靠前?商家該如何提升店鋪排名?
- 轉貼:胡陽:汗水鋪就程式碼之路,三分天註定,七分靠打拼
- UI自動化實戰進階PO設計模式UI設計模式
- 原生JS實現貼上到剪貼簿JS
- 新手賣家如何管理好店鋪的運營問題?
- 藉助SD-WAN為安全和自動化的多雲鋪平道路
- 如何看拼多多同行店鋪的店擊率?店鋪點選率如何提升?
- JB的Python之旅-豆瓣自動頂貼功能Python
- 介面自動化全量欄位校驗
- 爬取百度貼吧實戰,python教你如何獲取Python
- 【經驗分享】Python實現UI自動化難點問題PythonUI
- win10如何取消視窗貼邊時自動調整大小Win10
- 【經驗貼】如何躲避專案管理中的“刺客”?專案管理
- 此貼討論一下 AI 在 UI 自動化中的應用,以及個人的一個想法AIUI
- 實現前端點選按鈕自動複製剪貼簿功能前端
- 黃反詞介面 詞典自動化校驗
- AD中如何使用特殊貼上和陣列貼上陣列
- 有做過店鋪裝修的沒?
- 酷家樂快捷鍵命令大全表格 2022最新酷家樂快捷鍵分享
- 如何獲取自動化測試實戰經驗
- 自動化驗證碼登入如何實現?
- 前端ui自動化測試sdk封裝前端UI封裝
- win10動態磁貼如何設定_win10設定動態磁貼的步驟Win10
- 木魚小鋪:新零售社群營銷如何實現粉絲轉化
- vscode的一個配置項editor.formatOnPaste,貼上時自動格式化VSCodeORMAST
- 點選按鈕自動複製剪貼簿功能
- TableStore實戰:GEO索引打造億量級店鋪搜尋系統索引
- 新手如何做亞馬遜店鋪亞馬遜