大數據時代,多數的web或app產品都會使用第三方或自己開發相應的數據系統,進行用戶行為數據或其它信息數據的收集,在這個過程中,埋點是比較重要的一環。埋點收集的數據一般有以下作用:
1. 驅動決策:ABtest、漏斗優化、用戶增長、bug修復、精准營銷、流失用戶預警
2. 驅動產品智能:智能推薦(千人千面)、場景化提示(私人助理)等
3. 驅動安全:風險識別
埋點測試分類
埋點測試,首先要了解埋點的分類,埋點主要分為:前端埋點、后端埋點
1. 前端埋點:前端埋點可以理解為web端,app端等在前端觸發相關規則時進行的埋點上報等,主要記錄的是用戶的操作行為,例如點擊了哪個按鈕,進入了哪個頁面等等。
2. 后端埋點:主要是服務端埋點,可以理解為當用戶進行相關操作觸發相關接口請求或相關業務的時候,進行的埋點上報。
那么兩者有什么區別呢?
在實際過程中,有些埋點是不用特意區分前后端的,用戶的一個埋點事件在前端埋點或后端埋點都可以實現,但是需要注意的是,在實際埋點上報、數據收集等過程中會有數據丟失的情況,從這個角度來看的話,其實后端埋點要比前端埋點更有優勢,前端埋點會因為一些網絡問題、適配問題等等容易出現上報異常造成數據丟失且丟失后排查困難,因為前端相關的是沒有記錄相關操作的,只負責上報,上報成功與否沒有記錄。而如果是后端埋點,無論是自己的數據系統還是第三方數據系統都是可以通過自己系統本身相關的數據庫查詢或記錄日志等操作進行埋點數據的校驗排查,所以針對一些比較重要的埋點,還是建議以后端埋點為主,必要時通過記錄日志或記入數據庫等方式對相關數據進行二次記錄以便進行數據核實。
埋點測試過程
埋點測試的過程有兩個比較重要的環節,埋點上報和埋點落庫
1. 埋點上報:無論是前端埋點還是后端埋點,有沒有正常按照相關規則進行上報,相關的事件名、屬性值都是否完整正確上報,這個是需要關注的
2. 埋點落庫:埋點上報完的數據是需要存儲到數據庫當中再進行相關的數據統計、分析、歸類等等,除了檢查埋點上報,還要看最終數據是否正常落庫,相關數據字段是否正常。
埋點自動化測試設計
了解了埋點測試的分類和過程,再思考如何針對埋點進行自動化測試。首先埋點自動化測試與其它自動化測試的方案設計在目的層面應該是一致的,是為了更好的進行埋點回歸測試,擴大埋點回歸的覆蓋率,特別是針對一些核心的埋點數據,例如一些埋點數據是轉化相關數據,而轉化數據直接跟核心業務相關,有些核心業務還會根據轉化數據進行營銷、銷售、業績等相關統計,埋點數據不准直接影響到這些東西。
那么如何進行埋點自動化測試設計呢?
可以進行分層設計
1. 用戶應用層框架-移動端Appium,web端selenium,主要是模擬用戶正常的業務操作
2. 數據mock、上報數據收集-通過構造測試數據給到用戶應用層使用,並且通過代理抓包收集上報數據,進行上報數據校驗(jsonschema校驗)
3. 服務端上報及落庫查詢-通過鏈接數據數據庫或使用相關API,查詢測試上報數據是否落庫。
另外,還需要結合Jenkins進行持續集成,每天或每次發版前對所有埋點進行回歸測試。