Files
Yb-QaAutomationHub/output/allure-results/bab9cae7-7cb8-42d0-bbd0-f47c8c3e16ad-result.json
T
xst 18890c0437 refactor(tests): restructure into layered POM architecture with Allure reporting
- Split framework into core/ (config, logger, db, driver factories, screenshot,
  allure integration) and pages/ (PO layer: base/admin/driver); flatten test
  files per platform (web/admin, app/driver_android, cross_end)
- Slim root conftest.py 656 -> ~100 lines: drop inline CN HTML report, add
  Allure severity mapping (p0/p1/p2 -> blocker/normal/minor) and
  environment.properties; support both tests.*-prefixed and bare imports
- Preserve TC-D2S-001/002 cross-end E2E cases with business logic unchanged,
  add allure epic/feature/story/step annotations
- Deduplicate: single makereport hook, shared failure-screenshot helpers,
  single SCREENSHOTS_DIR constant; deterministic auth-state role loading
- Move DB credentials from db_helper.py into test_config.yaml (database section)
- Move pytest.ini to repo root; switch reporting to allure-pytest
  (drop pytest-html/junitxml); update requirements.txt accordingly
- Delete deprecated scaffolding: test_freight_full_flow + 6 stale page
  objects, iOS/shipper empty shells, dead utils
- Fix flaky vxe-table action-row wait: wait for a visible td instead of
  hidden placeholder rows (fixed shipper-payment timeouts)
- Verified end-to-end against live env: both E2E cases pass (2 passed 3m12s);
  run artifacts (logs/screenshots/allure) included per repo convention
2026-08-17 14:29:52 +08:00

1 line
7.6 KiB
JSON

{"name": "TC-D2S-002 司机APP接单到管理端核算打款-车队长全额收款流程", "status": "broken", "statusDetails": {"message": "playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 8000ms exceeded.\nCall log:\n - waiting for locator(\"table tbody tr td:visible\") to be visible", "trace": "tests\\cross_end\\test_driver_to_settlement.py:255: in test_driver_to_settlement_team_leader_flow\n admin_accounting.do_shipper_payment(transport_order_no)\ntests\\pages\\admin\\freight_accounting_page.py:330: in do_shipper_payment\n self._click_table_action(button_index=2)\ntests\\pages\\admin\\freight_accounting_page.py:85: in _click_table_action\n self.page.wait_for_selector(\"table tbody tr td:visible\", timeout=8_000)\nC:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\sync_api\\_generated.py:9033: in wait_for_selector\n self._sync(\nC:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\_impl\\_page.py:427: in wait_for_selector\n return await self._main_frame.wait_for_selector(**locals_to_params(locals()))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nC:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\_impl\\_frame.py:394: in wait_for_selector\n await self._channel.send(\nC:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\_impl\\_connection.py:76: in send\n return await self._connection.wrap_api_call(\nC:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\_impl\\_connection.py:632: in wrap_api_call\n raise rewrite_error(error, f\"{parsed_st['apiName']}: {error}\") from None\nE playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 8000ms exceeded.\nE Call log:\nE - waiting for locator(\"table tbody tr td:visible\") to be visible"}, "description": "\n 用例ID: TC-D2S-002\n 用例名称: 司机APP接单到管理端核算打款-车队长全额收款流程\n 优先级: P0\n 标签: cross_end, smoke\n\n 验证司机 APP 接单→管理端核算(车队长全额收款模式)→打款的完整跨端业务流程。\n ", "steps": [{"name": "Phase 1: 司机 APP — 接单流程", "status": "passed", "attachments": [{"name": "step_accept_order", "source": "280918db-8747-4b60-b14a-04af9cc3fb2e-attachment.png", "type": "image/png"}], "start": 1786934115329, "stop": 1786934123894}, {"name": "Phase 1: 司机 APP — 装货流程", "status": "passed", "attachments": [{"name": "step_load_goods", "source": "0b525236-66a0-437c-bf9f-14874cc96918-attachment.png", "type": "image/png"}], "start": 1786934123896, "stop": 1786934144947}, {"name": "Phase 1: 司机 APP — 卸货流程", "status": "passed", "attachments": [{"name": "step_unload_goods", "source": "435ada3f-b1b3-44e5-acd5-1f58d1fa83f3-attachment.png", "type": "image/png"}], "start": 1786934144947, "stop": 1786934158884}, {"name": "Phase 1: 司机 APP — 获取运输单号", "status": "passed", "start": 1786934158884, "stop": 1786934160985}, {"name": "Phase 2: Web管理端 — 运费核算(车队长全额收款模式)", "status": "passed", "attachments": [{"name": "freight_accounting_done", "source": "93b46ede-40d4-40ba-b628-83254cbe76f9-attachment.png", "type": "image/png"}], "start": 1786934160985, "stop": 1786934176013}, {"name": "Phase 2: Web管理端 — 运单审核", "status": "passed", "attachments": [{"name": "waybill_audit_done", "source": "cf4ffb13-b42d-4a31-b90d-14d00289735f-attachment.png", "type": "image/png"}], "start": 1786934176013, "stop": 1786934182796}, {"name": "Phase 2: Web管理端 — 垫资-财务打款", "status": "passed", "attachments": [{"name": "finance_payment_done", "source": "d7aa9191-49fd-4efd-ae1c-b5ae4c01fee9-attachment.png", "type": "image/png"}], "start": 1786934182796, "stop": 1786934190754}, {"name": "Phase 2: Web管理端 — 垫资-货主打款", "status": "broken", "statusDetails": {"message": "playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 8000ms exceeded.\nCall log:\n - waiting for locator(\"table tbody tr td:visible\") to be visible\n\n", "trace": " File \"E:\\Desktop\\xst_files\\test\\QaAutomationHub\\tests\\cross_end\\test_driver_to_settlement.py\", line 255, in test_driver_to_settlement_team_leader_flow\n admin_accounting.do_shipper_payment(transport_order_no)\n File \"E:\\Desktop\\xst_files\\test\\QaAutomationHub\\tests\\pages\\admin\\freight_accounting_page.py\", line 330, in do_shipper_payment\n self._click_table_action(button_index=2)\n File \"E:\\Desktop\\xst_files\\test\\QaAutomationHub\\tests\\pages\\admin\\freight_accounting_page.py\", line 85, in _click_table_action\n self.page.wait_for_selector(\"table tbody tr td:visible\", timeout=8_000)\n File \"C:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\sync_api\\_generated.py\", line 9033, in wait_for_selector\n self._sync(\n File \"C:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\_impl\\_sync_base.py\", line 115, in _sync\n return task.result()\n ^^^^^^^^^^^^^\n File \"C:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\_impl\\_page.py\", line 427, in wait_for_selector\n return await self._main_frame.wait_for_selector(**locals_to_params(locals()))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\_impl\\_frame.py\", line 394, in wait_for_selector\n await self._channel.send(\n File \"C:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\_impl\\_connection.py\", line 76, in send\n return await self._connection.wrap_api_call(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\23184\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\playwright\\_impl\\_connection.py\", line 632, in wrap_api_call\n raise rewrite_error(error, f\"{parsed_st['apiName']}: {error}\") from None\n"}, "start": 1786934190754, "stop": 1786934220053}], "attachments": [{"name": "log", "source": "9e420d02-97f4-4b97-95db-dc69e5d48eba-attachment.txt", "type": "text/plain"}], "start": 1786934107558, "stop": 1786934220054, "uuid": "7ddd6617-6303-48e4-b117-5f979df44be6", "historyId": "e0e0770b4cd0f6646da9121031e84047", "testCaseId": "e0e0770b4cd0f6646da9121031e84047", "fullName": "tests.cross_end.test_driver_to_settlement.TestDriverToSettlementTeamLeader#test_driver_to_settlement_team_leader_flow", "labels": [{"name": "feature", "value": "跨端 E2E — 司机接单到管理端核算打款"}, {"name": "story", "value": "司机APP接单到管理端核算打款-车队长全额收款流程"}, {"name": "tag", "value": "cross_end"}, {"name": "tag", "value": "smoke"}, {"name": "severity", "value": "blocker"}, {"name": "epic", "value": "运八网络货运平台"}, {"name": "tag", "value": "cross_end"}, {"name": "tag", "value": "p0"}, {"name": "tag", "value": "smoke"}, {"name": "parentSuite", "value": "tests.cross_end"}, {"name": "suite", "value": "test_driver_to_settlement"}, {"name": "subSuite", "value": "TestDriverToSettlementTeamLeader"}, {"name": "host", "value": "yunba-126"}, {"name": "thread", "value": "31316-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.cross_end.test_driver_to_settlement"}], "titlePath": ["tests", "cross_end", "test_driver_to_settlement.py", "TestDriverToSettlementTeamLeader"]}