關於閒魚測試資料構造,我有幾條心得
背景
隨著閒魚業務的高速發展,其商品型別、交易模板以及互動玩法日趨豐富。造數常常需要耗費測試同學大量的時間,其根本問題歸納為以下幾點:
-
1. 人工成本高 :商品、訂單的型別與狀態笛卡爾乘積後多達上百種,資料種類豐富且構造流程長,測試過程費時又費力;
-
2. 造數門檻高 :商品資料構造往往和賬戶型別、人群等有強耦合關係,無論是測試驗收還是跨部門協作時,都需要測試同學投入很多額外的時間輔助資料構造;
-
3. 測試工具無資料支撐 :在自動化測試、效能測試過程時,需要豐富的資料型別作為驅動。
為了解決以上問題,閒魚測試設計了一套各業務可快速接入,並在PC、閒魚APP內和釘釘上均可使用的測試資料構造解決方案,旨在提升測試效率的同時,更好地推進測試左移。
方案設計
如下圖所示為閒魚業務的整體架構圖,造數平臺需要觸達多條業務線,支撐商品、訂單、優惠等業務的資料構造,併為測試自動化工具提供資料支援。此外,我們期望合作方在進行產品驗收時,也能以便捷的方式獲取到資料。
基於以上願景,造數平臺系統內部設計考慮到了可擴充套件性、易用性兩大方面,其整體架構圖如下圖所示,一是提供了使用者進行模板化管理的入口,通過可插拔的配置來自定義搭建自己所需的造數場景;二是和各平臺打通,發揮各平臺的優勢,達到敏捷高效造數的目的。
支援動態化配置
為了方便後續不同業務的接入,併為自動化巡檢、CI/CD、介面測試等提供資料支援,平臺期望以一種確保資料來源動態可插拔的方式來承接:不同業務可結合自身業務,配置不同接入源型別的元資料模板,並做到資料來源隔離;而後再基於元資料模板進行自定義的業務模板配置,整體步驟如下:
-
1. 在造數平臺上對業務元資料進行配置管理;
-
2. 基於元資料進行業務模板化配置;
-
3. 造數PC端、閒魚APP以及釘釘機器人上將共享一份配置;
打通多端造數入口
為了兼顧不同使用者人群的使用體驗,平臺上層入口支援了三種:PC工作臺、閒魚APP內和釘釘內互動機器人。三種渠道各有優勢。
閒魚APP內
閒魚APP內的優勢在於可以 自動獲取裝置環境資訊 。以商品域測試為例,閒魚不同商品型別的釋出入口不同,其中部分商品釋出流程有一定時間成本。我們基於JS Bridge,拿到閒魚app當前使用者的登入態,一鍵釋出寶貝,並獲取到商品的schema資訊跳轉至商品詳情頁,方便測試同學進行快速驗證。
釘釘內互動機器人
釘釘互動機器人的方式進行造數的優勢在於 便捷 、通用、簡潔 ,可以和日常工作無縫銜接。舉個栗子:驗貨寶業務是C2S2C的模式,中間部分訂單節點的推進是需要聯絡開發或對應的服務商的。遇到問題都需要拉群進行處理,如下圖所示,我們將驗貨寶推單的功能做在釘釘內,支援機器人互動的方式進行推單,一是省去了聯絡開發和服務商推單的時間成本,二是如遇訂單推進的相關問題,我們也可直接將錯誤資訊反饋到群內,省去了換端的成本。
PC工作臺
PC工作臺操作的優勢在於 方便管理 。在PC端,我們可以進行商品釋出和訂單模板的配置和自定義修改,其操作流程可參加上文中提及的動態化配置步驟。此外在PC端,我們還支援了模板克隆、以及批量造數等功能。
提升資料覆蓋度
目前平臺主要覆蓋了商品、交易、營銷優惠三大業務線,支援構造商品、訂單、交易履約以及營銷優惠的資料構造。如下圖所示為造數工廠目標覆蓋的主要資料型別。
其中商品支援了諸如優品、營銷以及一些基礎商品型別的構造,目前全部型別都已覆蓋完成。交易已支援C2C不同狀態型別的訂單構造,其他訂單型別也已在持續接入中。
效果及展望
造數工廠未上線之前,無論是業務測試、產品設計驗收還是跨部門合作,都需要犧牲測試同學的大量時間構造資料。現如今我們以最小的建設成本,搭建了一套具有可配置、可擴充套件能力的造數工具平臺,支援大家自主獲取資料,工作效率得以大幅度提升。根據目前效果來看,商品的獲取速度由原本的分級提升至秒級。至於訂單的構造和履約推進流程複雜,如下圖所示,測試同學往往需要準備買賣家兩個賬號,分別釋出和購買商品,後續履約推進還需聯絡開發,中間的等待過程往往總是漫長。現在通過造數工廠即可自助造單和履約推進,單筆交易流程迴歸耗時由1h下降到分鐘級別。
自年初上線以來,造數平臺已接入商品、交易、優惠三大業務線,覆蓋核心商品型別20+,通過平臺釋出商品60000+,造單100+。此外還支撐了商品合規、商詳升級等多個重構需求的資料準備工作,測試效率得到顯著提升。後續,我們將從幾個方面對平臺進行持續優化:
-
• 持續提升資料覆蓋度,承接諸如訂單診斷、商品診斷、使用者資產等更多的資料構造工作;
-
• 目前平臺的業務接入不支援自定義外掛化擴充套件,降低接入成本將是我們持續努力的方向;
-
• 豐富"測釘一體化"的互動模式,讓平臺所有的資料獲取,做到一個群就夠了。
平臺希望通過快速的資料構造能力賦能業務測試,推進測試左移。讓更多的閒魚小二解放雙手,從重複性的勞動中跳脫出來。
- 詳解閒魚推薦系統(長文收藏)
- KUN 應用開發流程【實用教程】
- 大終端領域的新物種-KUN
- 大終端領域的新物種-KUN
- 一次夜間介面超時的解決過程
- 如何寫出有效的單元測試
- Kraken中事件通道原理分析
- 我在閒魚做搭建——魔魚搭投編輯器介紹
- Flutter富文字編輯器系列文章3——互動篇
- Flutter富文字編輯器系列文章3——互動篇
- 打造Flutter高效能富文字編輯器——渲染篇
- 節日獻禮:Flutter圖片庫重磅開源!
- 節日獻禮:Flutter圖片庫重磅開源!
- 關於閒魚測試資料構造,我有幾條心得
- 關於閒魚測試資料構造,我有幾條心得
- 打造Flutter高效能富文字編輯器——協議篇
- 打造Flutter高效能富文字編輯器——協議篇
- 閒魚前端技術體系的背後——魔魚(良心推薦,從思路到實踐)
- 閒魚如何保障交易鏈路質量
- Flutter 音影片開發的新思路