關於閒魚測試資料構造,我有幾條心得

語言: CN / TW / HK

作者:閒魚技術——羲竹

背景

隨著閒魚業務的高速發展,其商品型別、交易模板以及互動玩法日趨豐富。造數常常需要耗費測試同學大量的時間,其根本問題歸納為以下幾點:

  1. 1. 人工成本高:商品、訂單的型別與狀態笛卡爾乘積後多達上百種,資料種類豐富且構造流程長,測試過程費時又費力;
  2. 2. 造數門檻高:商品資料構造往往和賬戶型別、人群等有強耦合關係,無論是測試驗收還是跨部門協作時,都需要測試同學投入很多額外的時間輔助資料構造;
  3. 3. 測試工具無資料支撐:在自動化測試、效能測試過程時,需要豐富的資料型別作為驅動。

為了解決以上問題,閒魚測試設計了一套各業務可快速接入,並在PC、閒魚APP內和釘釘上均可使用的測試資料構造解決方案,旨在提升測試效率的同時,更好地推進測試左移。

方案設計

如下圖所示為閒魚業務的整體架構圖,造數平臺需要觸達多條業務線,支撐商品、訂單、優惠等業務的資料構造,併為測試自動化工具提供資料支援。此外,我們期望合作方在進行產品驗收時,也能以便捷的方式獲取到資料。

業務架構圖.png

業務架構圖.png

基於以上願景,造數平臺系統內部設計考慮到了可擴充套件性、易用性兩大方面,其整體架構圖如下圖所示,一是提供了使用者進行模板化管理的入口,通過可插拔的配置來自定義搭建自己所需的造數場景;二是和各平臺打通,發揮各平臺的優勢,達到敏捷高效造數的目的。

造數架構設計圖.png

造數架構設計圖.png

支援動態化配置

為了方便後續不同業務的接入,併為自動化巡檢、CI/CD、介面測試等提供資料支援,平臺期望以一種確保資料來源動態可插拔的方式來承接:不同業務可結合自身業務,配置不同接入源型別的元資料模板,並做到資料來源隔離;而後再基於元資料模板進行自定義的業務模板配置,整體步驟如下:

  1. 1. 在造數平臺上對業務元資料進行配置管理;
  2. 2. 基於元資料進行業務模板化配置;
  3. 3. 造數PC端、閒魚APP以及釘釘機器人上將共享一份配置;

打通多端造數入口

為了兼顧不同使用者人群的使用體驗,平臺上層入口支援了三種:PC工作臺、閒魚APP內和釘釘內互動機器人。三種渠道各有優勢。

閒魚APP內

閒魚APP內的優勢在於可以自動獲取裝置環境資訊。以商品域測試為例,閒魚不同商品型別的釋出入口不同,其中部分商品釋出流程有一定時間成本。我們基於JS Bridge,拿到閒魚app當前使用者的登入態,一鍵釋出寶貝,並獲取到商品的schema資訊跳轉至商品詳情頁,方便測試同學進行快速驗證。 再替換一下

閒魚APP內釋出商品.gif

閒魚APP內釋出商品.gif

釘釘內互動機器人

釘釘互動機器人的方式進行造數的優勢在於便捷 、通用、簡潔,可以和日常工作無縫銜接。 舉個栗子:驗貨寶業務是C2S2C的模式,中間部分訂單節點的推進是需要聯絡開發或對應的服務商的。遇到問題都需要拉群進行處理,如下圖所示,我們將驗貨寶推單的功能做在釘釘內,支援機器人互動的方式進行推單,一是省去了聯絡開發和服務商推單的時間成本,二是如遇訂單推進的相關問題,我們也可直接將錯誤資訊反饋到群內,省去了換端的成本。

釘釘機器人互動.png

釘釘機器人互動.png

PC工作臺

PC工作臺操作的優勢在於方便管理。在PC端,我們可以進行商品釋出和訂單模板的配置和自定義修改,其操作流程可參加上文中提及的動態化配置步驟。此外在PC端,我們還支援了模板克隆、以及批量造數等功能。

PC端批量造數.png

PC端批量造數.png

提升資料覆蓋度

目前平臺主要覆蓋了商品、交易、營銷優惠三大業務線,支援構造商品、訂單、交易履約以及營銷優惠的資料構造。如下圖所示為造數工廠目標覆蓋的主要資料型別。

資料覆蓋度.png

資料覆蓋度.png

其中商品支援了諸如優品、營銷以及一些基礎商品型別的構造,目前全部型別都已覆蓋完成。交易已支援C2C不同狀態型別的訂單構造,其他訂單型別也已在持續接入中。

效果及展望

造數工廠未上線之前,無論是業務測試、產品設計驗收還是跨部門合作,都需要犧牲測試同學的大量時間構造資料。現如今我們以最小的建設成本,搭建了一套具有可配置、可擴充套件能力的造數工具平臺,支援大家自主獲取資料,工作效率得以大幅度提升。 根據目前效果來看,商品的獲取速度由原本的分級提升至秒級。至於訂單的構造和履約推進流程複雜,如下圖所示,測試同學往往需要準備買賣家兩個賬號,分別釋出和購買商品,後續履約推進還需聯絡開發,中間的等待過程往往總是漫長。現在通過造數工廠即可自助造單和履約推進,單筆交易流程迴歸耗時由1h下降到分鐘級別。

交易測試流程.png

交易測試流程.png

自年初上線以來,造數平臺已接入商品、交易、優惠三大業務線,覆蓋核心商品型別20+,通過平臺釋出商品60000+,造單100+。此外還支撐了商品合規、商詳升級等多個重構需求的資料準備工作,測試效率得到顯著提升。後續,我們將從幾個方面對平臺進行持續優化:

  • • 持續提升資料覆蓋度,承接諸如訂單診斷、商品診斷、使用者資產等更多的資料構造工作;
  • • 目前平臺的業務接入不支援自定義外掛化擴充套件,降低接入成本將是我們持續努力的方向;
  • • 豐富"測釘一體化"的互動模式,讓平臺所有的資料獲取,做到一個群就夠了。

平臺希望通過快速的資料構造能力賦能業務測試,推進測試左移。讓更多的閒魚小二解放雙手,從重複性的勞動中跳脫出來。