# 运行时性能检测--体验评分

体验评分 一般集成在开发者工具中,是一项给小程序的体验好坏打分的功能,它会在小程序运行过程中实时检查,分析出一些可能导致体验不好的地方,并且定位出哪里有问题,以及给出一些优化建议。

云测服务对体验评分能力做了改进,主要包括:

1、移植到真机运行,更加贴近用户实际使用场景。由于真机和开发者工具的运行环境不同,有少部分指标在真机不支持统计。

2、对原评分方法进行了改进。加入异常检测等能力,并且对原来体验评分的指标进行重新划分,重新计算总分

3、可以和云测服务的 智能化 Monkey 测试,录制回放,自定义测试 等能力相结合,用于检测小程序运行时的性能问题异常情况

# 评分方法

目前体验评分规则分为四类:性能检查异常检测最佳实践建议,最后会根据各个规则的得分,计算出总得分(满分100分)。

# 性能检查

性能检查是体验评分的最重要的评分项目(占总分的60%),旨在帮助小程序开发者提升小程序 运行时性能

具体相关的检查项目包括:

项目名称 说明 分值 计分规则
页面首次渲染耗时 为了提供良好的用户体验, 开发者应该努力将页面渲染时间控制在2.5秒或以内 20 每个超时的页面扣5分
渲染界面耗时 建议第一次渲染/setData引起的重新渲染时间应不超过500ms 4 发现有超出的页面,得0分
执行脚本耗时 建议页面方法执行时间不超过1秒 4 发现有超出的页面,得0分
对相同请求进行缓存 建议不应出现重复的请求url和相同的返回内容 4 发现有重复url,得0分
请求耗时 请求的耗时太长会让用户一直等待甚至离开,建议请求耗时不超过1s 4 发现超过耗时1s的请求,得0分
短时间图片请求数量 建议短时间内同时发起图片请求不应超过6个 4 发现有超过6个的页面,得0分
短时间链接请求数量 建议300ms内,网络请求数不超过10个 4 发现有超过10个的页面,得0分
WXML节点数目 建议一个页面使用少于1000个WXML节点,节点树深度少于30层,子节点数不大于60个 4 发现有超过数量的页面,得0分
setData调用频率 建议1秒内setData执行不超过20次 4 发现有超过的页面,得0分
setData数据不能太大 建议单次setData数据小于256KB (若项目对性能要求较高,可在”项目管理=>产品管理“中修改默认阈值) 4 发现有超过的页面,得0分
未绑定在WXML的变量传入setData 不应将未绑定在WXML的变量传入setData 4 发现有未绑定的WXML,得0分

# 异常检测

异常检查主要检查小程序运行过程中是否出现异常情况(占总分的30%),主要包括三个方面:

项目名称 说明 分值 计分规则
JSError 出现 JavaScript 异常可能导致程序的交互无法进行下去,应避免出现JSError 20 每个JSError扣5分
网络请求 请求失败可能导致程序的交互无法进行下去,应当保证所有请求都能成功 5 发现有请求失败,得0分
黑白屏 只有Monkey任务检测。黑白屏现象意味着小程序可能有卡顿情况,会影响用户体验 5 出现黑白屏得0分

# 最佳实践

最佳实践(占总分的10%)主要包括几个方面:

项目名称 说明 分值 计分规则
废弃接口检查 使用即将废弃或已废弃接口,可能导致小程序运行不正常 4 发现使用废弃接口,得0分
HTTPS请求检查 使用 HTTPS, 可以让你的小程序更加安全, 而 HTTP 是明文传输的,存在可能被篡改内容的风险 3 发现使用http接口,得0分
未使用的样式检查 应该按需引入 wxss 资源,如存在大量未使用的样式,会增加小程序包体积大小,影响加载速度 3 统计已访问的页面对应的wxss文件, 未使用到的样式内容超过2kb得0分

# 建议

建议不计入体验评分的得分,主要包括以下几个方面:

项目名称 说明
css ':active' 伪类检查 使用 css ':active' 伪类来实现点击态,很容易触发,并且滚动或滑动时点击态不会消失,体验较差。建议使用小程序内置组件的 'hover-*' 属性来实现
iPhone X安全区域检查 底部的可交互组件如果渲染在iPhone X的安全区域外, 容易误触Home Indicator
可点击元素的响应区域检查 应该合理地设置好可点击元素的响应区域大小,如果过小会导致用户很难点中
图片显示检查 图片若没有按原图宽高比例显示,可能导致图片歪曲,不美观,甚至导致用户识别困难。可根据情况设置 image 组件的 mode 属性,以保持原图宽高比。

# 如何使用

体验评分需要和自动化能力结合使用,下面是各种自动化能力的体验评分配置说明

测试类型 是否有体验评分 说明
Monkey测试 默认开启体验评分
自定义测试(Minium) 手动开启体验评分
录制回放 手动开启体验评分
快速Monkey 不支持体验评分
启动性能分析 不支持体验评分

请注意录制回放和自定义测试需要用户提测时手动开启,开启方式如下图所示

体验评分结果可参考下图:

# 需要帮助