fengketrade/doc/ccblife-frontend-testing-guide.md
2025-10-20 15:29:15 +08:00

11 KiB
Raw Blame History

建行生活前端测试指南

测试环境准备

1. 前端项目结构确认

确认以下文件已正确创建:

frontend/
├── sheep/platform/
│   ├── provider/ccblife/
│   │   ├── index.js          ✅ 已创建
│   │   └── api.js             ✅ 已创建
│   ├── index.js               ✅ 已修改(添加建行支持)
│   └── pay.js                 ✅ 已修改(添加建行支付)
├── pages/ccblife/
│   └── index.vue              ✅ 已创建
├── static/
│   └── ccb-test.html          ✅ 已创建(测试页面)
└── pages.json                 ✅ 已修改(添加路由配置)

2. 检查文件完整性

cd /Users/billy/Code/fengketrade.com/frontend

# 检查建行模块文件
ls -l sheep/platform/provider/ccblife/

# 检查建行页面
ls -l pages/ccblife/

# 检查测试页面
ls -l static/ccb-test.html

测试方法

方法一:使用 HBuilderX推荐

这是 uni-app 项目的标准开发方式。

步骤 1: 打开项目

  1. 启动 HBuilderX
  2. 文件 → 打开目录 → 选择 frontend 目录
  3. 等待项目加载完成

步骤 2: 运行到浏览器

  1. 点击工具栏的"运行"按钮
  2. 选择"运行到浏览器" → "Chrome"(或其他浏览器)
  3. 等待编译完成,会自动打开浏览器

步骤 3: 访问测试页面

在浏览器中访问:

http://localhost:8080/static/ccb-test.html

或访问建行专属页面:

http://localhost:8080/#/pages/ccblife/index

步骤 4: 模拟建行环境

在 URL 后添加参数模拟建行环境:

http://localhost:8080/#/pages/index/index?from=ccblife&ccbParamSJ=test123

方法二:使用 Vite 开发服务器

如果项目配置了 Vite可以使用命令行运行。

步骤 1: 安装依赖

cd frontend
npm install

步骤 2: 启动开发服务器

# 如果有 dev:h5 脚本
npm run dev:h5

# 或者直接使用 vite
npx vite

步骤 3: 访问测试页面

默认地址:http://localhost:3000(端口以实际为准)

方法三:使用测试服务器

将前端代码部署到测试服务器。

步骤 1: 访问后端静态测试页面

http://fengketrade.test/ccblife-demo.html

这个页面已经在后端 public 目录创建,可以直接访问。

步骤 2: 访问测试接口

http://fengketrade.test/addons/shopro/ccbtest

测试项目清单

1. 模块加载测试

测试目标

验证建行模块是否正确导入和初始化。

测试步骤

  1. 打开浏览器开发者工具F12
  2. 访问测试页面
  3. 在 Console 中输入:
// 检查 sheep 对象
console.log(window.$shop || window.sheep);

// 检查平台对象
console.log(sheep.$platform);

// 检查平台名称
console.log(sheep.$platform.name);

// 检查提供商
console.log(sheep.$platform.provider);

预期结果

  • 在非建行环境:name 应该是 H5WechatOfficialAccount
  • 在建行环境:name 应该是 CcbLifeprovider 应该是 ccb

2. 环境检测测试

测试目标

验证系统能否正确识别建行生活 App 环境。

测试步骤

情况 1普通浏览器

访问: http://localhost:3000/
预期: 识别为 H5 或 WechatOfficialAccount 环境

情况 2模拟建行环境URL 参数)

访问: http://localhost:3000/?from=ccblife
预期: 识别为 CcbLife 环境

情况 3模拟建行参数

访问: http://localhost:3000/?ccbParamSJ=test123
预期: 识别为 CcbLife 环境

验证方法

在 Console 中执行:

// 方法1通过平台对象
console.log(sheep.$platform.provider === 'ccb' ? '建行环境' : '非建行环境');

// 方法2直接导入模块在实际项目中
// import CcbLifePlatform from '@/sheep/platform/provider/ccblife/index';
// console.log(CcbLifePlatform.isInCcbApp);

3. 页面路由测试

测试目标

验证建行专属页面是否可以正常访问。

测试步骤

  1. 访问首页
http://localhost:3000/#/pages/index/index
  1. 访问建行专属页面
http://localhost:3000/#/pages/ccblife/index
  1. 使用路由跳转

在任意页面的 Console 中执行:

uni.navigateTo({
    url: '/pages/ccblife/index'
});

预期结果

  • 页面能正常加载
  • 显示"建行生活"标题
  • 导航栏背景色为建行红(#F51C13

4. API 接口测试

测试目标

验证前端能否正确调用后端建行接口。

测试步骤

在 Console 中执行:

// 测试1URL跳转登录接口
fetch('/addons/shopro/ccblife/login?ccbParamSJ=test')
    .then(res => res.json())
    .then(data => console.log('登录接口:', data))
    .catch(err => console.error('登录接口错误:', err));

// 测试2环境检查
fetch('/addons/shopro/ccbtest/checkConfig')
    .then(res => res.json())
    .then(data => console.log('配置检查:', data))
    .catch(err => console.error('配置检查错误:', err));

// 测试3数据库检查
fetch('/addons/shopro/ccbtest/checkDatabase')
    .then(res => res.json())
    .then(data => console.log('数据库检查:', data))
    .catch(err => console.error('数据库检查错误:', err));

预期结果

  • 接口返回 JSON 格式数据
  • 不应该出现 404 或 500 错误

5. 支付功能测试

测试目标

验证建行支付流程是否正常。

前置条件

  • 已登录用户
  • 有可支付的订单

测试步骤

  1. 创建测试订单(可选)
访问: http://fengketrade.test/#/pages/goods/index?id=1
添加商品到购物车 → 去结算 → 提交订单
  1. 选择建行支付

在支付页面,如果在建行环境中,应该看到"建行支付"选项。

  1. 模拟支付调用

在 Console 中执行:

// 注意:这需要有实际的订单
sheep.$platform.pay('ccb', 'goods', 'ORDER202501170001');

预期结果

  • 非建行环境:提示"请在建行生活App内使用建行支付"
  • 建行环境(模拟):尝试调用 JSBridge

6. 日志和错误测试

测试目标

验证错误处理和日志记录是否正常。

测试步骤

  1. 查看 Console 日志

启动应用后,在 Console 中应该看到:

[CcbLife] 初始化完成, 是否在建行App内: false
  1. 触发错误

在非建行环境调用建行功能:

// 应该输出友好的错误提示
sheep.$platform.useProvider('ccb').getUserInfo()
    .catch(err => console.log('预期的错误:', err));

预期结果

  • 有清晰的日志输出
  • 错误信息友好可读

使用静态测试页面

访问 http://fengketrade.test/static/ccb-test.html(或前端开发服务器对应地址)

测试页面功能

  1. 环境信息显示

    • 自动检测当前平台
    • 显示是否在建行App内
    • 显示 User-Agent 和 URL 参数
  2. 模块加载测试

    • 点击"测试模块导入"按钮
    • 检查建行模块文件是否存在
  3. 环境检测测试

    • 点击"测试环境检测"按钮
    • 查看多种检测方式的结果
  4. URL参数测试

    • 点击"测试URL参数解析"按钮
    • 验证参数解析功能

模拟建行环境

在测试页面 URL 后添加参数:

?from=ccblife&ccbParamSJ=testdata123

完整示例:

http://localhost:3000/static/ccb-test.html?from=ccblife&ccbParamSJ=testdata123

常见问题排查

问题1页面打不开

症状:访问建行页面显示 404

排查步骤

  1. 检查 pages.json 是否正确配置
grep -A 10 "ccblife" pages.json
  1. 检查页面文件是否存在
ls -l pages/ccblife/index.vue
  1. 重新编译项目(在 HBuilderX 中点击"停止" → "运行"

问题2模块导入失败

症状Console 显示 "Cannot find module" 错误

排查步骤

  1. 检查文件路径
ls -l sheep/platform/provider/ccblife/
  1. 检查文件内容是否有语法错误
node --check sheep/platform/provider/ccblife/index.js
  1. 清除缓存重新编译

问题3平台识别错误

症状:在建行环境中仍识别为 H5

排查步骤

  1. 检查 URL 参数
console.log(window.location.search);
  1. 检查 User-Agent
console.log(navigator.userAgent);
  1. 手动测试检测函数
const urlParams = new URLSearchParams(window.location.search);
console.log('from参数:', urlParams.get('from'));
console.log('ccbParamSJ参数:', urlParams.get('ccbParamSJ'));

问题4API 请求失败

症状:接口返回 404 或跨域错误

排查步骤

  1. 检查后端服务是否运行
curl http://fengketrade.test/addons/shopro/ccbtest
  1. 检查 .env 配置
cat .env | grep SHOPRO_BASE_URL
  1. 检查跨域配置(如果前后端分离)

真机测试

iOS 设备测试

  1. 使用 Safari 调试

    • Mac 上打开 Safari → 开发 → [设备名] → [页面]
    • 可以查看 Console 和调试
  2. HBuilderX 真机运行

    • 连接 iOS 设备
    • 运行 → 运行到手机或模拟器 → iOS

Android 设备测试

  1. 使用 Chrome 调试

    • 电脑 Chrome 访问 chrome://inspect
    • 查看设备上的页面
  2. HBuilderX 真机运行

    • 连接 Android 设备(开启 USB 调试)
    • 运行 → 运行到手机或模拟器 → Android

性能测试

加载时间

在 Console 中查看:

// 查看性能数据
console.log(performance.timing);

// 计算加载时间
const loadTime = performance.timing.loadEventEnd - performance.timing.navigationStart;
console.log('页面加载时间:', loadTime + 'ms');

内存使用

使用 Chrome DevTools

  1. Performance → 录制
  2. 操作页面
  3. 停止录制
  4. 查看内存使用情况

测试报告模板

## 建行生活前端测试报告

**测试日期**: 2025-01-17
**测试环境**: [开发环境/测试环境]
**测试人员**: [姓名]

### 测试结果

| 测试项 | 状态 | 备注 |
|-------|------|------|
| 模块加载 | ✅ 通过 | 所有模块正常加载 |
| 环境检测 | ✅ 通过 | 正确识别建行环境 |
| 页面路由 | ✅ 通过 | 页面可以正常访问 |
| API接口 | ✅ 通过 | 接口返回正常 |
| 支付功能 | ⏳ 待测试 | 需要建行真机环境 |

### 发现的问题

1. [问题描述]
   - **严重程度**: 高/中/低
   - **复现步骤**: ...
   - **预期行为**: ...
   - **实际行为**: ...

### 建议

1. [建议内容]

文档版本1.0.0 最后更新2025-01-17 作者Billy