perf: 减少采购重复前台查询 (#120)

This commit is contained in:
chengma
2026-08-10 19:31:21 +08:00
parent 9824d4d405
commit 59de08b752
3 changed files with 120 additions and 34 deletions
@@ -6,6 +6,7 @@ import unittest
from src.pdd_device_service import PddDeviceService
from src.pdd_purchase_adapter import PddPurchaseError
from src.performance_timing import TaskPerformanceTrace
from src.pdd_u2_purchase_adapter import U2PddPurchaseAdapter
from src.pdd_u2_purchase_adapter import U2PddLivePurchaseAdapter
@@ -251,6 +252,54 @@ class U2PddPurchaseAdapterTest(unittest.TestCase):
self.assertEqual(device.editor_values, [])
self.assertEqual(device.app_wait_calls, 0)
def test_reliable_pdd_tree_skips_repeated_app_current(self):
device = FakeDevice()
adapter = self._adapter(device, [])
adapter.open_goods(GOODS_URL)
calls_after_open = device.app_current_calls
state = adapter.read_state()
self.assertEqual(state.page_kind, "goods")
self.assertEqual(device.app_current_calls, calls_after_open)
adapter.close()
def test_ambiguous_tree_falls_back_to_app_current(self):
device = FakeDevice()
adapter = self._adapter(device, [])
adapter.open_goods(GOODS_URL)
calls_after_open = device.app_current_calls
device.mode = "special"
device.special_xml = (
'<hierarchy><node package="com.xunmeng.pinduoduo" '
'text="占位"/></hierarchy>'
)
adapter.read_state()
self.assertEqual(device.app_current_calls, calls_after_open + 1)
adapter.close()
def test_purchase_state_and_option_stages_are_recorded(self):
device = FakeDevice()
adapter = self._adapter(device, [])
records = []
trace = TaskPerformanceTrace(sink=records.append)
trace.bind_task("PUR-PERFORMANCE")
with trace.activate():
adapter.open_goods(GOODS_URL)
adapter.read_state()
adapter.select_options(
{"color": "黑色", "size": "3XL【140-165斤】"}
)
operations = [record["operation"] for record in records]
self.assertIn("purchase_read_state", operations)
self.assertIn("purchase_select_color", operations)
self.assertIn("purchase_select_size", operations)
adapter.close()
def test_same_quantity_does_not_focus_editor(self):
device = FakeDevice()
adapter = self._adapter(device, [])
@@ -517,11 +566,13 @@ class U2PddPurchaseAdapterTest(unittest.TestCase):
adapter.set_quantity(2)
state = adapter.read_state()
calls_before_submit = device.app_current_calls
adapter.submit_order_once()
with self.assertRaises(PddPurchaseError) as raised:
adapter.submit_order_once()
self.assertEqual(state.submit_candidate_count, 1)
self.assertEqual(device.app_current_calls, calls_before_submit + 1)
self.assertEqual(raised.exception.code, "PURCHASE_SUBMIT_ALREADY_ATTEMPTED")
# 依次点击采购入口、数量加号和最终提交。
self.assertEqual(len(device.clicks), 3)