微信开发者

业务迭代快?图片对比优化版来啦!

Image

不少开发者反馈,自己的小程序业务功能迭代快,同时还需要保证线上功能稳定,这对开发和测试同学来说,是一个很大的挑战。 

如果能在小程序每次更新上线前,把开发中版本的页面和线上版本的页面进行对比,找出区别,从而快速验证新业务的改动是否会影响线上已有能力,那么这将大大提高开发和测试的效率,减少上线后出现问题的风险,确保用户体验的连续性和稳定性。

基于此,小程序云测服务推出了图片对比能力。在每次上线前,针对 P0 页面,将开发中的版本和线上版的相同功能进行对比,对差异化的内容进行确认。当页面变化不大时,无需再写断言,使用图片对比直观看到差异,大大减小工作量。

图片对比的使用也非常简单,可分为「获取测试图片 - 确定基准图片和对比图片 - 选择对比方式 - 查看报告」四个步骤。详细操作流程可查看文档。

图片对比功能上线后,我们也在不断地根据用户反馈进行迭代优化:

1

对比算法优化

原来图片对比是基于 SSIM 得分的简单判定,但由于手机操作系统和显示屏技术的原因,相同机型,对相同小程序页面,在不同时刻截图时像素点上会有细微差异,导致人眼看起来图片是一致的,但 SSIM 判断对比失败,从而误判。例如同样的 “山” 字,在相同机型下,跑测的结果会有细微区别,这其实不影响用户使用,但 SSIM 算法会判断为对比不通过。

Image

为提升判断准确度,我们对 SSIM 算法本身进行了优化,如增加高斯模糊,降低对差异的敏感度。同时为了解决个别“毛刺”问题,我们支持开发者自定义配置忽略差异区域块功能,可以直接将差异较小的区域差异直接忽略。

同时,我们还引入了视觉对比算法,尽量从视觉的角度进行判断,从而减少了误判行为。具体使用哪种算法,开发者可以在“项目管理=>产品管理”中自行配置。

考虑到误判的根源是人眼对细微像素不同识别不出,但是机器却对这些差异非常敏感。后续我们会采用大模型的方式,以更贴近人眼的角度进行图片判别。

Image
Image

2

新增对比方式

在图片对比中,我们有时并不需要对比整个页面。为了提高对比的准确性和灵活性,云测端引入了区域对比功能,用户可以选择仅对比特定区域或忽略某些区域,从而有效应对页面变动和动态内容,提升了图片对比的可用性。

Image

3

新增图片对比报告汇总页面

为方便测试人员查看结果并发现问题,我们在报告总览页面新增了图片对比结果栏,更加清晰直观。

Image

4

新增API打通DevOps流程

为响应用户需求,我们还新开放了相关第三方接口用于将图片对比能力集成到 DevOps 流程中。例如,微信小店利用云测的 API 接口,将图片对比能力成功集成到了 DevOps 流程中,自动化运行并产出报告,整体测试流程如下图所示,更多实践细节见:图片对比最佳实践——微信小店 | 微信开放社区

Image
Image

更多小程序云测功能介绍,可查看官方文档:MiniTest 小程序云测服务

云测团队会不断倾听用户的声音并进行功能优化,欢迎大家评论区留言讨论~

Image