微信开发者

图片对比一试,玩转自动化测试

在小程序开发过程中,我们常常要进行版本更新来丰富其功能。当我们对小程序进行功能改进或修复时,却意外发现原有功能不能用了?用户页面显示不一致了?!

Image

一般情况下,我们希望这些更改不会对现有功能产生负面影响。那么,有没有一种简单的方式可以直观地进行测试呢?当然有啦!

这个好办法就是——小程序云测中的图片对比功能(详细操作文档)。在自动化测试的过程中,我们将版本更新前后的小程序界面图片进行对比,直观地圈出两次截图的外观不同之处,就能简单判断出是否改动到了原有的功能。

使用例子:(可右滑继续查看)

那具体应该如何操作呢?

第一步  获取图片

以下分录制回放和自定义测试两种情况:

录制回放

1、首先打开小程序开发工具,点击 “工具” → “自动化测试”。

2、清理一下缓存。

3、点击开始录制。

4、当处于录制过程中时,选择 “ 截屏 ”,即可截取需要对比的图片。

(可右滑继续查看)

Image

tips

1、只有通过上述截屏操作获取到的图片,才会加入到图片对比中。其他的截图,如操作步骤中截图不参与对比。

2、如果开发者工具没有截屏操作,请升级版本(1.06.2301160以上版本具有该功能)。

3、以前的录制回放用例,如果继续录制并使用了截屏操作,产生了新的截图,则需要在云测平台重新同步用例或者重新上传用例,才能收集到对应的图片。

Image

网页版云测平台为上传案例。

Image

插件版云测平台为同步用例。

Image

自定义测试

除了录制回放,我们还有自定义测试功能,即可以使用 Minium 框架来编写测试用例,在云测服务中执行自动化测试。它的优势在于:

1、开发者可以完全自主定制测试场景,更加灵活。

2、和录制回放相比,既可以支持截取整张图片,也可以截取部分元素。

具体操作步骤:

1、开发者先根据业务需求,编写 Minium 测试脚本。

具体如何编写,可以参见文档

具体来说:在 capture 接口中,会根据参数 region 的值来判断截图类型:

· Page :传入当前 page 实例,截取 page 当前屏幕图片(不包含手机顶部的 banner ,因为 banner 的时间显示,会干扰截图对比的效果)。

· Element :传入具体元素实例,截取元素区域的图片。

· 不传入:表示这次截图不需要进行图片对比,默认不传入。

示例代码:

import minium, osclass FirstTest(minium.MiniTest):    def test_capture(self):        path = self.capture("test_capture.png")        self.assertTrue(os.path.exists(path), "截图路径存在")
   def test_capture_region(self):        el = self.page.get_element("button")        path = self.capture("test_capture_el.png", region=el)        path = self.capture("test_capture_page.png", region=self.page)        self.assertTrue(os.path.exists(path), "截图路径存在")

2、编写完成后,我们将脚本压缩成zip,并在小程序云测平台上传。

Image


tips

1、在后续图片对比中,整张图片只能和整张图片对比,部分元素截图和部分元素截图去对比。

2、capture 接口中,强烈建议指定截图文件名。文件名非常重要,因为在测试报告中对比规则中,在相同 page 中,相同图片名称的截图才会对比。建议取和截图相关含义且唯一的名称。

第二步  设定基线图片

图片对比的话当然需要有一个参照物,基线图片就是和谁对比的那个“谁”。

具体如何设置呢?

1、首先登录小程序云测平台,点击左侧导航栏中的 “项目管理” → “图片对比管理” 。图片对比管理页面中,展示了所有测试报告中设定的指定对比图片。

Image

2、点击编辑,就可以进行图片信息修改以及基线图片的设定。

Image

3、当设为基线图片后,就可以选择是进行整张图片对比还是部分区域对比。

Image

4、若选择部分区域对比,点击选择区域后,用蓝色矩形框出需要对比的区域。

Image
Image

特别注意,对于“5 个相同”(相同小程序 AppID ,相同机型,相同页面 path ,相同名称,相同截图类型)的图片,只能有 1 个基线图片,当设定当前图片为基线图片时,会自动取消原来的基线图片标志。

第三步  提交测试,查看测试报告

前面都设置成功后,在每次跑自动化任务时,碰到有图片与基线图片满足 5 个相同的条件时,会自动和基线图片进行对比,并在报告中展示。

(不知道如何提交测试?详见文档)

在测试报告中,若图片对比不通过,页面会有相关信息进行显示,点击“展开详情” → 点击展开要查看的截图 → 点击“详情”进行查看。

其中,蓝色线框框出的是选中对比的区域,红色线框选中的是比对结果不同的区域。

(可右滑继续查看)

Image
Image
Image

第四步  更新对比结果

如果发现对比不一致是因为基线图片需要进行更新,可以先按照步骤 2,重新设置基线图片,然后再对应“测试报告总览”中,点击“重新对比图片”,就可立即更新对比结果。

Image

以上就是我们今天的分享啦~

怎么样,大家学会了吗?

学会那就快快用起来吧!

Image
Image