利用Applitools Eyes识别视觉bug

简介: Appilitools eyes是一款检测不同次运行页面是否相同的软件。同样运行一个测试程序,可能呈现出来的结果不同。不同的结果可能是bug,也可能是每次展现给用户的结果不同,比如百度搜索,淘宝页面,这里以百度搜索作为案例

Appilitools eyes是一款检测不同次运行页面是否相同的软件。同样运行一个测试程序,可能呈现出来的结果不同。不同的结果可能是bug,也可能是每次展现给用户的结果不同,比如百度搜索,淘宝页面,这里以百度搜索作为案例。

1,要使用Appilitools eyes,首先需要到Appilitools官网https://applitools.com/上注册账号(可以使用github的账号),注册完毕,它会给你一个密钥。

2,在本机上运行

pip3 install eyes-selenium

3,建立测试程序

#!/usr/bin/env python
# coding:utf-8
import unittest
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from applitools.selenium import Eyes,Target
from selenium.webdriver.common.by import By
class checkEyes(unittest.TestCase):
    def test_baidu(self):
        driverPath= "C:\\Lib\\chromedriver.exe"
        service= Service(executable_path=driverPath)
        options= webdriver.ChromeOptions()
        options.add_argument("user-data-dir=C:\\Lib\\ChromeProfile")
        self.driver= webdriver.Chrome(service=service, options=options)
        eyes= Eyes()
        eyes.api_key="你的applitools密钥"
        self.driver= webdriver.Chrome()
        self.driver.implicitly_wait(5)
        eyes.open(self.driver,"Baidu首页","检查百度首页及搜索结果")
        self.driver.get('https://www.baidu.com')
        #第一个视觉验证检查点
        eyes.check("百度首页视觉验证",Target.window())
        self.driver.find_element(By.ID,"kw").send_keys("hello world")
        self.driver.find_element(By.ID,"su").click()
        #第二个视觉验证检查点
        eyes.check("百度搜索结果视觉验证",Target.window())
        eyes.close()
        self.driver.quit()
if __name__ == "__main__":
      unittest.main()

运行,运行通过,他会告诉你

--- Test passed. 
See details at https://eyes.applitools.com/app/batches/00000251648871736096/00000251648871735982?accountId=ag4cztZPEEOOoL6WkqNNqA__
.
----------------------------------------------------------------------
Ran 1 test in 20.359s
OK

https://eyes.applitools.com/app/batches/00000251648871736096/00000251648871735982?accountId=ag4cztZPEEOOoL6WkqNNqA__查看
image.png

由于第一次运行,结果是正确的。再次运行,出现结果

Re-raising an error received from SDK server: DiffsFoundError("Test '检查百度首页及搜索结果' of 'Baidu 首页' detected differences! See details at: https://eyes.applitools.com/app/batches/00000251648871497323/00000251648871497183?accountId=ag4cztZPEEOOoL6WkqNNqA__")
E
======================================================================
ERROR: test_baidu (__main__.checkEyes.test_baidu)
----------------------------------------------------------------------
Traceback (most recent call last):  
File "C:\Users\xiang\Desktop\eyes.py", line 31, in test_baidu
eyes.close()
File "C:\Users\xiang\AppData\Local\Programs\Python\Python312\Lib\site-packages\applitools\common\eyes.py", line 382, in close
return
super(WebEyes, self).close(raise_ex)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xiang\AppData\Local\Programs\Python\Python312\Lib\site-packages\applitools\common\eyes.py", line 184, in close
return
self._close(raise_ex, True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xiang\AppData\Local\Programs\Python\Python312\Lib\site-packages\applitools\common\eyes.py", line 233, in _close
results= self.get_results(raise_ex) if wait_result else []            
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xiang\AppData\Local\Programs\Python\Python312\Lib\site-packages\applitools\common\eyes.py", line 167, in get_results    
results= self._commands.eyes_get_results(self._eyes_ref, raise_ex)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xiang\AppData\Local\Programs\Python\Python312\Lib\site-packages\applitools\common\command_executor.py", line 275, in eyes_get_results
return self._checked_command(context, "Eyes.getResults", payload)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xiang\AppData\Local\Programs\Python\Python312\Lib\site-packages\applitools\common\command_executor.py", line 288, in _checked_command_check_error(response_payload)
File "C:\Users\xiang\AppData\Local\Programs\Python\Python312\Lib\site-packages\applitools\common\command_executor.py", line 298, in _check_error
raise
usdk_error
applitools.common.errors.DiffsFoundError: Test '检查百度首页及搜索结果' of 'Baidu 首页' detected differences! See details at: https://eyes.applitools.com/app/batches/00000251648871497323/00000251648871497183?accountId=ag4cztZPEEOOoL6WkqNNqA__
----------------------------------------------------------------------
Ran 1 test in 22.625s
FAILED (errors=1)

仍旧到https://eyes.applitools.com/app/batches/00000251648871736096/00000251648871735982?accountId=ag4cztZPEEOOoL6WkqNNqA__查看
image.png

第一个检查点是相同的,第二个则不同,所以报错。选择Ignore region,然后通过鼠标点掉图上的粉红色。
image.png

点击右上角的保存键
image.png

再次运行,测试通过。

= RESTART: C:\Users\xiang\Desktop\eyes.py
--- Test passed. 
See details at https://eyes.applitools.com/app/batches/00000251648869473990/00000251648869473901?accountId=ag4cztZPEEOOoL6WkqNNqA__
.
----------------------------------------------------------------------
Ran 1 test in 25.603s
目录
相关文章
|
22天前
|
机器学习/深度学习 人工智能 算法
一个大学生AI大赛题目
科研团队已经收集了一批货物的视觉图像数据,这些数据包含了货物的二维图像以及对应的真实形状标签。本体数据集包含2 个文件:gallery.csv 和queries.csv,以及对应的2个文件夹
77 23
|
1月前
|
SQL 数据库
|
1月前
|
测试技术 开发者
基础测试用例
顾翔 作者相关精选 基础测试用例 关注作者 腾讯云 开发者社区 免费试用云直播,了解直播推流的操作方式 文档 建议反馈 控制台 登录/注册 首页 学习 活动 专区 圈层 工具 MCP广场 文章/答案/技术大牛 搜索 发布 社区首页 > 专栏 > 基础测试用例 基础测试用例
96 40
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
1404 62
|
2天前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
5天前
|
XML 安全 API
VMware Aria Operations 8.18.5 发布,新增功能概览
VMware Aria Operations 8.18.5 发布,新增功能概览
104 46
VMware Aria Operations 8.18.5 发布,新增功能概览
|
7天前
|
Web App开发 虚拟化 iOS开发
macOS Sequoia 15.7.1 (24G231) Boot ISO 原版可引导镜像下载
macOS Sequoia 15.7.1 (24G231) Boot ISO 原版可引导镜像下载
104 39
macOS Sequoia 15.7.1 (24G231) Boot ISO 原版可引导镜像下载
|
12天前
|
数据采集 数据可视化 数据挖掘
一文讲清数据指标怎么搭建
企业数据混乱常因指标定义不清。统一数据指标体系,明确计算逻辑与业务归属,可提升沟通效率与决策质量。通过主题域划分、命名规范、数据建模与持续运营,让数据真正驱动业务发展。
一文讲清数据指标怎么搭建
|
8天前
|
数据采集 运维 监控
除了Kettle,这款国产ETL工具是否更胜一筹?
本文深度对比Kettle与国产ETL工具FineDataLink,从开发效率、实时同步、运维管理等维度解析差异。Kettle开源灵活但学习成本高,FDL在实时处理、低代码开发、调度监控等方面优势明显,更适合企业级应用,助力高效数据集成与管理。
除了Kettle,这款国产ETL工具是否更胜一筹?
|
5天前
|
人工智能 Java 关系型数据库
基于springboot的画品交流系统
本项目构建基于Java+Vue+SpringBoot+MySQL的画品交流系统,旨在解决传统艺术交易信息不透明、流通受限等问题,融合区块链与AI技术,实现画品展示、交易、鉴赏与社交一体化,推动艺术数字化转型与文化传播。