当前位置: 首页 > 测试知识 > 小程序功能测试怎么做?
小程序功能测试怎么做?
2026-05-11 作者cwb 浏览次数26

小程序功能测试和Web或App测试思路相通,但需要注意微信生态内的运行环境、API 限制、授权机制以及多端兼容。


1. 吃透需求和设计用例

需求拆解:小程序的入口(扫码、搜索、分享链接)、页面跳转关系及功能(如登录、支付、表单提交、音视频播放等)。

用例设计:包括正常流程、边界值、异常操作、网络切换、数据为空等情况。尤其要注意授权场景(拒绝授权、授权后撤回)和不同微信版本/基础库的兼容性。


2. 搭建测试环境

开发者工具:主要用于调试、模拟扫码、快速查看日志和网络请求。可模拟不同机型、网络(2G/3G/4G/WiFi)、屏幕比例。

真机调试:必须通过真机证实最后效果。因为在开发者工具中,WebSocket、蓝牙、NFC、相机扫码等硬件能力可能表现不一致。至少包括 iOS 和 Android 各一台主流机型。

测试号/体验版:使用微信小程序后台提供的测试号添加测试者,通过体验版或开发版进行测试,保证分享、支付等需要上线后权限的思路能提前走通(支付可走沙箱或0.01元测试)。


3. 功能测试点


页面渲染和跳转:

检查每个页面的加载速度、UI 是不是错乱、元素是不是可点击。

页面栈管理是不是正常(最多10层),使用 wx.navigateTo、redirectTo、switchTab 后回退途径是不是正确。


表单和输入:

键盘弹起时页面滚动是不是正常,textarea 是不是有透过问题。

输入特殊字符、emoji 的展示和存入是不是正常。


用户授权:

测试用户拒绝某项授权后,后续访问思路是不是降级(如显示引导开启授权的弹窗)。

检查 wx.getSetting 能否正确获取当前授权状态。


支付/卡券:

拉起支付、支付成功/失败/取消的回调处理是不是完整。

注意支付后页面数据同步(往往需要调用后端接口刷新)。


分享和消息通知:

分享途径、标题、封面图是不是正常(真机调试 + 体验版)。

订阅消息(subscribeMessage)在模板未授权的场景下是不是妥善处理。


网络和数据:

无网/弱网时页面提示是不是友好,加载失败是不是有重试按钮。

接口返回 null、空数组、超时等异常情况的页面展示。

4. 专项测试


兼容性测试:

在不同微信版本(新旧版)、不同系统版本(iOS/Android)、不同屏幕尺寸下证实界面展示和重要功能。

测试Android和iOS的兼容情况,如底部安全区域适配、手势返回。


性能测试

使用开发者工具的性能面板或体验评分插件,检查setData调用频率、数据量大小和内存占用。

避免频繁大量setData导致白屏,保证长列表渲染使用虚拟化方案。


安全测试:

抓包检查请求是不是走 HTTPS,敏感数据(token、手机号)不应明文在请求/响应中暴露。

登录态检查:无 session 或 token 过期时,接口是不是有正确鉴权。


自动化测试:

小程序自动化可选用微信官方框架 minium:既能操控页面元素,又能获取小程序内部数据(如 Page.data),支持断言和截图。

如果涉及 WebView 内嵌 H5 页面,需切换 context 定位,或使用 Selenium 对 H5 部分单独测试。


示例(minium 基本用法):


python

import minium

mini = minium.Minium()

# 定位元素并点击

mini.page.get_element("view.button").tap()

# 获取页面 data

print(mini.page.data)


5. 常见情况

CSS 像素单位:使用 rpx 适配不同屏幕,但注意 1px 实线在部分机型可能变粗。

bindtap和catchtap:区别是是不是阻止事件冒泡,需要确定嵌套 view 的点击事件是不是按预期触发。

setData异步:直接在 setData 后读取 data 中的值可能仍是旧的,应在回调或使用观察器(observers)。

基础库版本差别:调用新API时需做wx.canIUse判断并提供降级方案。

第三方平台/插件:如果使用插件,要测试插件更新后主小程序功能是不是受影响。



抓包和 Mock:搭配 Charles/Fiddler 或微信开发者工具自带的 Mock 功能,可模拟接口异常、超时和特定数据返回。

体验评分:开发者工具体验评分功能可自动检测首屏时间、接口耗时、setData 频率等问题,作为性能参考。

多账号测试:支付、优惠券、会员等级等需要多用户角色,可利用微信“切换账号”功能或准备多个测试微信号。


文章标签: 功能性测试 功能测试
咨询软件测试