# 运行时性能检测--体验评分
体验评分 一般集成在开发者工具中,是一项给小程序的体验好坏打分的功能,它会在小程序运行过程中实时检查,分析出一些可能导致体验不好的地方,并且定位出哪里有问题,以及给出一些优化建议。
云测服务对体验评分能力做了改进,主要包括:
1、移植到真机运行,更加贴近用户实际使用场景。由于真机和开发者工具的运行环境不同,有少部分指标在真机不支持统计。
2、对原评分方法进行了改进。加入异常检测等能力,并且对原来体验评分的指标进行重新划分,重新计算总分
3、可以和云测服务的 智能化 Monkey 测试,录制回放,自定义测试 等能力相结合,用于检测小程序运行时的性能问题和异常情况
4、支持用户可以根据项目自身情况,在 “项目管理” => “运行性能设置” 页面自行调整评分权重。
# 评分方法
目前体验评分规则分为四类:性能检查
、异常检测
、最佳实践
,最后会根据各个规则的得分,最后的总分会根据各项的权重,转化为百分制。
# 性能检查
性能检查是体验评分的最重要的评分项目(占总分的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分 |
UI异常 | 只有Monkey任务检测。UI异常现象意味着小程序可能有卡顿、显示错位等情况,会影响用户体验 | 5 | 出现UI异常得0分 |
# 最佳实践
最佳实践(占总分的10%)主要包括几个方面:
项目名称 | 说明 | 分值 | 计分规则 |
---|---|---|---|
废弃接口检查 | 使用即将废弃或已废弃接口,可能导致小程序运行不正常 | 4 | 发现使用废弃接口,得0分 |
HTTPS请求检查 | 使用 HTTPS, 可以让你的小程序更加安全, 而 HTTP 是明文传输的,存在可能被篡改内容的风险 | 3 | 发现使用http接口,得0分 |
# 如何使用
体验评分需要和自动化能力结合使用,下面是各种自动化能力的体验评分配置说明
测试类型 | 是否有体验评分 | 说明 |
---|---|---|
Monkey测试 | 是 | 默认开启体验评分 |
自定义测试(Minium) | 是 | 需手动开启体验评分 |
录制回放 | 是 | 需手动开启体验评分 |
快速Monkey | 否 | 不支持体验评分 |
启动性能分析 | 否 | 不支持体验评分 |
请注意录制回放和自定义测试需要用户提测时手动开启,开启方式如下图所示
体验评分结果可参考下图: