| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- /**
- * 简化版埋点功能测试脚本
- * 不依赖Cocos Creator组件,可以在控制台直接运行
- */
- import { Analytics } from './AnalyticsManager';
- import { MPLifecycle } from './MPLifecycleManager';
- export class AnalyticsTestSimple {
- private testResults: string[] = [];
- /**
- * 运行所有测试
- */
- public runAllTests(): void {
- this.testResults = [];
- console.log('[AnalyticsTest] 开始运行埋点测试...');
- // 测试基础埋点功能
- this.testBasicTracking();
-
- // 测试小程序生命周期事件
- this.testMPLifecycleEvents();
-
- // 测试场景加载事件
- this.testSceneLoadEvents();
-
- // 测试游戏进度事件
- this.testGameProgressEvents();
-
- // 显示测试结果
- this.showTestResults();
- }
- /**
- * 测试基础埋点功能
- */
- private testBasicTracking(): void {
- try {
- // 测试自定义事件
- Analytics.track('test_custom_event', {
- test_property: 'test_value',
- test_number: 123,
- test_boolean: true
- });
-
- this.addTestResult('✅ 基础埋点功能测试通过');
- } catch (error) {
- this.addTestResult('❌ 基础埋点功能测试失败: ' + error.message);
- }
- }
- /**
- * 测试小程序生命周期事件
- */
- private testMPLifecycleEvents(): void {
- try {
- // 测试启动事件
- Analytics.trackMPLaunch({
- scene: 1001,
- query: '{"test": "value"}',
- shareTicket: 'test_ticket'
- });
-
- // 测试显示事件
- Analytics.trackMPShow({
- scene: 1001,
- query: '{"test": "value"}'
- });
-
- // 测试隐藏事件
- Analytics.trackMPHide();
-
- this.addTestResult('✅ 小程序生命周期事件测试通过');
- } catch (error) {
- this.addTestResult('❌ 小程序生命周期事件测试失败: ' + error.message);
- }
- }
- /**
- * 测试场景加载事件
- */
- private testSceneLoadEvents(): void {
- try {
- // 测试场景加载开始
- Analytics.trackSceneLoadStart('TestScene');
-
- // 测试场景加载成功
- Analytics.trackSceneLoaded({
- scene_name: 'TestScene',
- load_time: 1500,
- success: true
- });
-
- // 测试场景加载失败
- Analytics.trackSceneLoaded({
- scene_name: 'FailedScene',
- load_time: 3000,
- success: false,
- error_msg: 'Scene not found'
- });
-
- // 测试场景卸载
- Analytics.trackSceneUnloaded('TestScene');
-
- this.addTestResult('✅ 场景加载事件测试通过');
- } catch (error) {
- this.addTestResult('❌ 场景加载事件测试失败: ' + error.message);
- }
- }
- /**
- * 测试游戏进度事件
- */
- private testGameProgressEvents(): void {
- try {
- // 测试完成关卡
- Analytics.trackCompleteSection({
- level: 5,
- score: 8500,
- time_spent: 120,
- result: 'success'
- });
-
- // 测试等级提升
- Analytics.trackUpdateLevel(4, 5);
-
- // 测试新手引导
- Analytics.trackTutorialStart();
- Analytics.trackTutorialFinish(300);
-
- this.addTestResult('✅ 游戏进度事件测试通过');
- } catch (error) {
- this.addTestResult('❌ 游戏进度事件测试失败: ' + error.message);
- }
- }
- /**
- * 测试小程序生命周期管理器
- */
- private testMPLifecycleManager(): void {
- try {
- // 测试手动触发显示事件
- MPLifecycle.triggerShow({
- scene: 1001,
- query: '{"manual": "test"}'
- });
-
- // 测试手动触发隐藏事件
- MPLifecycle.triggerHide();
-
- // 测试获取会话时长
- const sessionDuration = MPLifecycle.getSessionDuration();
- console.log('[AnalyticsTest] 当前会话时长:', sessionDuration);
-
- this.addTestResult('✅ 小程序生命周期管理器测试通过');
- } catch (error) {
- this.addTestResult('❌ 小程序生命周期管理器测试失败: ' + error.message);
- }
- }
- /**
- * 添加测试结果
- */
- private addTestResult(result: string): void {
- this.testResults.push(result);
- console.log('[AnalyticsTest]', result);
- }
- /**
- * 显示测试结果
- */
- private showTestResults(): void {
- const summary = this.testResults.join('\n');
- const passedCount = this.testResults.filter(r => r.indexOf('✅') !== -1).length;
- const failedCount = this.testResults.filter(r => r.indexOf('❌') !== -1).length;
-
- const finalStatus = `埋点测试完成\n通过: ${passedCount} 项\n失败: ${failedCount} 项\n\n${summary}`;
-
- console.log('[AnalyticsTest] 测试完成');
- console.log('[AnalyticsTest] 通过:', passedCount, '项');
- console.log('[AnalyticsTest] 失败:', failedCount, '项');
- console.log('[AnalyticsTest] 详细结果:\n', finalStatus);
- }
- /**
- * 单独测试某个功能(供外部调用)
- */
- public testSpecificFeature(featureName: string): void {
- switch (featureName) {
- case 'basic':
- this.testBasicTracking();
- break;
- case 'lifecycle':
- this.testMPLifecycleEvents();
- break;
- case 'scene':
- this.testSceneLoadEvents();
- break;
- case 'progress':
- this.testGameProgressEvents();
- break;
- case 'manager':
- this.testMPLifecycleManager();
- break;
- default:
- console.warn('[AnalyticsTest] 未知的测试功能:', featureName);
- }
- }
- }
- // 创建全局测试实例
- const testInstance = new AnalyticsTestSimple();
- // 导出测试工具函数,供控制台调用
- (window as any).testAnalytics = {
- // 快速测试所有功能
- runAll: () => {
- testInstance.runAllTests();
- },
-
- // 测试特定功能
- test: (feature: string) => {
- testInstance.testSpecificFeature(feature);
- },
-
- // 手动发送测试事件
- sendTestEvent: (eventName: string, properties: any = {}) => {
- Analytics.track(eventName, properties);
- },
-
- // 获取会话时长
- getSessionDuration: () => {
- return MPLifecycle.getSessionDuration();
- },
-
- // 初始化埋点系统
- init: () => {
- Analytics.init();
- MPLifecycle.init();
- console.log('[AnalyticsTest] 埋点系统初始化完成');
- }
- };
|