测试客户端

创建测试客户,选择客户身份,进入与销售的聊天测试。

client-test

Sales Contract

telegram:sales-contract-1785623712212 / 客户 af0742a6
Admin AI E2E 1782710104541human_takeover
Admin AI E2E 1782710104541human_takeoverrecharge_intent
同步:初始
当前上下文
模式:ai_auto子状态:ai_restored下一步:ai_follow_up置信度:49.00%真实销售:Admin E2E 1782710104541Chat Session:3946
测试控制
人工客服,我想充值500
08/01 22:35 / 客户
recharge_intent / conversion_ready / 86.00%discovery / discovery_capital / human_review
销售人工回复 contract
08/01 22:35 / 销售

生产验收测试台

API 契约、权限矩阵、健康状态、测试数据、Mock、报告和发布 Checklist。

环境身份

app_envtestnode_envproductionsource_commitb32a807build_time2026-08-01T14:26:56Zapi_base_urlhttps://vsales-client-test.vntask.proclient_base_urlhttps://vsales-client-test.vntask.prosales_base_urlhttps://vsales-client-test.vntask.proadmin_base_urlhttps://vsales-client-test.vntask.prois_productionfalseclient_testbench_enabledtrueclient_control_enabledtruedestructive_control_enabledfalseredis_configuredtruesecrets_maskedtrue

健康状态

DB okWorker attentionRedis configured
DB 延迟:1ms队列积压:0失败:87死信:23722客户:4446事件:121019

API Explorer

healthclientsalesadminadapterinternaltestbench
readnone

Lightweight service health and release identity.

{ ok, data: { service, app_env, source_commit, build_time, database } }
curl -sS -X GET "/api/v1/health"

测试数据与 Mock

等待执行

权限矩阵

anonymous允许:/api/v1/health禁止:/client / /sales / /admin / all writesnone
client-testbench允许:/client / /api/v1/client/* / /api/v1/client/testbench/*禁止:admin writes / sales actor overrideCLIENT_BASIC_AUTH_PASSWORD when configured
sales允许:/sales / /api/v1/sales/*禁止:other sales customer data / admin surfacesSALES_BASIC_AUTH_PASSWORD and resolved sales actor
admin允许:/admin / /api/v1/admin/*禁止:none when super_adminADMIN_BASIC_AUTH_PASSWORD
readonly-admin允许:admin read APIs禁止:system diagnostics write / config writes / dangerous mutationsADMIN_AUTH_USERS readonly role
adapter-client允许:/api/v1/adapters/{channel}/messages / delivery ack禁止:admin/sales/client UIadapter client id/secret/signature
internal-worker允许:/api/v1/internal/*禁止:browser UIinternal API token or network policy

报告中心

Lintnpm run lint
Typechecknpm run typecheck
Buildnpm run build.next/
Client/API contractnpm run test:contract
Admin contractnpm run test:contract:admin
Sales contractnpm run test:contract:sales
Adapter contractnpm run test:contract:adapter-facebook
Security boundariesnpm run test:security
Client e2enpm run test:e2e
Sales e2enpm run test:e2e:sales
Admin e2enpm run test:e2e:admin-filter-state
Client screenshotsnpm run test:screenshotsartifacts/client-screenshots
Sales screenshotsnpm run test:screenshots:salesartifacts/sales-screenshots
Admin screenshotsnpm run test:screenshots:adminartifacts/admin-screenshots
Health checkcurl -fsS $BASE_URL/api/v1/health

发布 Checklist

manualAPI contract scripts passnpm run test:contract && npm run test:contract:admin && npm run test:contract:sales
manualFrontend e2e scripts passnpm run test:e2e && npm run test:e2e:sales && npm run test:e2e:admin-filter-state
manualScreenshot regression passnpm run test:screenshots && npm run test:screenshots:sales && npm run test:screenshots:admin
passDatabase reachable
warningWorker queues healthy
passRelease identity is present
passProduction destructive controls disabled by default
passProtected surfaces require auth in production
manualNo pending migration before releasenpm run db:migrate
manualBackup and restore drill verifiednpm run ops:prod:backup && npm run ops:prod:restore-drill
manualRollback runbook exists and is rehearsed
manualTest fixtures cleaned before prod releasenpm run data-governance:cleanup-test-data
manualProduction monitoring and alerts verifiednpm run ops:prod:alert

页面回归入口

Client testbench/clienttest:screenshots / test:contract / test:e2e
Sales workbench/salestest:screenshots:sales / test:e2e:sales / test:contract:sales
Sales customer detail/sales/customers/:customerIdtest:e2e:sales / test:contract:sales
Admin dashboard/admintest:screenshots:admin / test:e2e:admin-filter-state / test:contract:admin
Admin customers/admin?tab=customerstest:e2e:admin-filter-state
Admin configs/admin?tab=configstest:contract:admin