How Zillow Tests Clickstream Analytics

Bài tóm tắt Zillow 2020 3. Quy mô lớn Độ khó: Dễ

Zillow · 2020 · 3. Quy mô lớn · Độ khó: Dễ — bài gốc

Bối cảnh

  • Event analytics (page view, sự kiện) do dev gắn vào trang, gửi Google Analytics, rồi được kéo từ BigTable về data lake (bảng Hive). Zillow chưa có schema chung cho event.
  • Dev đổi tên event (đổi chữ hoa, đổi cách gọi), xoá tính năng làm event ngừng bắn, hoặc thiếu trường: consumer phía sau hỏng mà không ai biết.

Thay đổi chính

  • Ở môi trường test, mọi microservice gửi event cho cả nhà cung cấp analytics lẫn bản test của Data Streaming Platform; DSP ghi vào topic Kafka (và Kafka Connect lưu S3), nên event đọc được ngay.
  • Test chức năng: Selenium + ChromeDriver thao tác trang như người dùng, kiểm UI, rồi đọc topic Kafka theo anonymous ID để kiểm đúng event đã bắn với đủ dữ liệu. Nhược điểm: timing có thể làm event mất, tín hiệu không ổn định.
  • Test thụ động: chạy 5 phút một lần, đọc lại 10 phút gần nhất của topic và kiểm mỗi event đủ yêu cầu schema (ví dụ AnonymousId khác null); test phức tạp hơn kiểm chuỗi event (Contact phải đi sau PageView trang chi tiết nhà).

Vì sao

Bài học cho SWE

  • Dùng chính hạ tầng streaming làm nơi quan sát event trong test.
  • Kết hợp test chức năng (đúng hành vi) và test thụ động liên tục (đúng schema) vì test chức năng hay chập chờn.

Liên quan