问答 请教大神们,在用 opencv 做图片对比的自动化测试过程中,总是会出现因为字体变动的报错,如何能够自定义忽略某些类型的错误?

测试猿 · 2024年01月05日 · 最后由 测试猿 回复于 2024年01月17日 · 8102 次阅读

请教大神们,在用 opencv 做图片对比的自动化测试过程中,总是会出现因为字体变动的报错,如何能够自定义忽略某些类型的错误?如果不忽略这些错误,就要花费很多人工的时间来做二次核检,如果能够实现自动过滤,就完美了。

目前的想法有:

  1. 深挖 opencv 的方法,添加一些自定义的方法来实现。不知道 opencv 是否能够自定义?
  2. 有没有除了 opencv 以外的,能够做图片比对,并且能把不同的地方框出来的,好用的自动化测试框架或者 AI 大模型?也可以尝试。

请大神们多多赐教,多多讨论。

比如下图:因为文字的字体改变,或者一个图标的样式稍微改变,就会导致测试报告这 2 个错误。

共收到 8 条回复 时间 点赞

首先我没做过 CV 类验证,但是我猜想这里肯定会有前置工具可圈定比对的目标区域

正好我们也有做这个,讲讲我的理解:

  1. 这个字体变化是符合需求的吗? 一般来说这是经过设计的, 如果字体变了不是预期的那个,这应该是bug
  2. 如果页面上有某些不确定的元素(比如时间的变化),你可以在做图片比对的时候调整你的阈值, 比如相似度从 100 降低到 98, 这样可以有效避免这种可接受范围内的变化造成的误报。 但也是要商量的,既然减少误报,也不能造成漏报,自己掌握平衡吧

要不把字体请求拦截掉。说到图片对比,我就想到 airtest

调整 SSIM 阈值 或者 ROI?

opencv 做比对不是会根据算法计算出一个相似度吗,调整一下阈值,相似度大于这个阈值判定图片一致

参考下 applitools

不知道这个方法是否符合你的预期?(对比页面的结构图,忽略内容)
https://testerhome.com/topics/37456

Jerry li 回复

是的,这个字体的改变是已知合理的。阈值,我们也试过更改,但是目前来看,这个差值很大,还是无法过滤字体的问题。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册