perf: 量化商品页打开耗时并去重检查 (#109)
This commit is contained in:
@@ -4,10 +4,15 @@ import threading
|
||||
import unittest
|
||||
|
||||
from src.pdd_device_service import PddDeviceError, PddDeviceService
|
||||
from src.performance_timing import TaskPerformanceTrace
|
||||
|
||||
|
||||
class FakeDevice:
|
||||
def __init__(self):
|
||||
self.current_calls = 0
|
||||
|
||||
def app_current(self):
|
||||
self.current_calls += 1
|
||||
return {"package": "com.xunmeng.pinduoduo"}
|
||||
|
||||
|
||||
@@ -25,6 +30,25 @@ class PddDeviceServiceTest(unittest.TestCase):
|
||||
pass
|
||||
self.assertEqual(connected, ["USB-001", "USB-002"])
|
||||
|
||||
def test_connect_exposes_initial_state_and_records_two_separate_stages(self):
|
||||
device = FakeDevice()
|
||||
records = []
|
||||
trace = TaskPerformanceTrace(sink=records.append)
|
||||
trace.bind_task("COL-001")
|
||||
|
||||
with trace.activate():
|
||||
session = PddDeviceService(lambda _serial: device).connect("USB-001")
|
||||
self.assertEqual(
|
||||
session.initial_app_state["package"],
|
||||
"com.xunmeng.pinduoduo",
|
||||
)
|
||||
self.assertEqual(device.current_calls, 1)
|
||||
self.assertEqual(
|
||||
[record["operation"] for record in records],
|
||||
["uiautomator2_connect", "first_app_current"],
|
||||
)
|
||||
session.__exit__(None, None, None)
|
||||
|
||||
def test_invalid_serial_is_rejected_before_connect(self):
|
||||
with self.assertRaisesRegex(PddDeviceError, "设备号无效") as raised:
|
||||
PddDeviceService(lambda _serial: FakeDevice()).connect("bad serial")
|
||||
|
||||
Reference in New Issue
Block a user