fix(server): PV统计加event_name过滤——增量停留事件不再灌倍PV(gzip 4817B记录:0.1.0为3838,增量989)
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -58,3 +58,18 @@ def test_refresh_daily_excludes_bots(db):
|
||||
assert (d.pv, d.uv, d.sessions) == (1, 1, 1) # 只计 human 的事件/会话
|
||||
t = refresh_daily(site, timezone.localdate()) # 两位访客 first_seen_at 均为运行时,刷今天窗口才能非空验证 new_visitors
|
||||
assert t.new_visitors == 1 # 爬虫访客不计入新增
|
||||
|
||||
def test_refresh_daily_pv_only_counts_page_view(db):
|
||||
# PV 口径回归(阶段A T11):SDK 0.2.0 每 15s 一条 page_stay 增量 + 启动 sdk_loaded,
|
||||
# pv 只计 page_view——增量停留事件不得灌倍 PV(5 分钟活跃访问 ≈ 22 条事件只有 1 条是浏览)。
|
||||
# 固定时间戳钉死日界不依赖运行时刻(同 boundary 用例做法)
|
||||
site = Site.objects.create(name="s", domains=["a.com"])
|
||||
v = Visitor.objects.create(site=site, visitor_id="v1")
|
||||
sess = VisitSession.objects.create(site=site, visitor=v, session_id="s1",
|
||||
started_at="2026-09-15T10:00:00Z", ended_at="2026-09-15T10:05:00Z")
|
||||
names = ["page_view", "sdk_loaded", "page_view", "page_stay", "page_stay", "page_stay"]
|
||||
for i, name in enumerate(names):
|
||||
Event.objects.create(site=site, visitor=v, session=sess, event_id=f"x{i}",
|
||||
event_name=name, occurred_at=f"2026-09-15T10:00:0{i}Z", path="/")
|
||||
d = refresh_daily(site, date(2026, 9, 15))
|
||||
assert (d.pv, d.uv, d.sessions) == (2, 1, 1) # 6 条事件仅 2 条 page_view 计 PV;uv 仍按任意事件 distinct
|
||||
|
||||
Reference in New Issue
Block a user