利用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
目录
相关文章
|
3月前
|
Java 应用服务中间件
从Tomcat 9.X到Tomcat 10. X以上
如果您原来使用的是Tomcat 9.X,现在您要升级到Tomcat 10. X以上,需要做如下设置
154 0
|
3月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
235 6
|
7月前
|
人工智能 编解码 芯片
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
不会向ai提问,不知道怎么提问的 可以看看
20735 1
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
|
JavaScript 数据安全/隐私保护
vue3+element-plus权限控制实现(el-tree父子级不关联情况处理)
后台管理系统常见的权限控制需求,这里讲button实现交互细节处理, 取消选中子级menu/button,父级不关联取消; 选中/取消父级catalog/menu,子级全部选中/取消; 选中/取消部分子级menu/button,父级关联半选中状态(indeterminate=true);
716 2
|
3月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
3月前
|
机器学习/深度学习 人工智能 算法
一个大学生AI大赛题目
科研团队已经收集了一批货物的视觉图像数据,这些数据包含了货物的二维图像以及对应的真实形状标签。本体数据集包含2 个文件:gallery.csv 和queries.csv,以及对应的2个文件夹
143 23
|
3月前
|
安全 jenkins Java
Java、Python、C++支持jenkins和SonarQube(一)
Jenkins 是一个开源的 持续集成(CI)和持续交付(CD) 工具,用于自动化构建、测试和部署软件项目。它基于 Java 开发,支持跨平台运行,并拥有丰富的插件生态系统,可以灵活地扩展功能
263 5
|
3月前
|
测试技术
自动化测试登录后的功能
在自动化测试的时候,往往许多功能需要登录以后才可以进行操作的,在这里我介绍一种方法,在登录以后将Cookies信息存入本地文件,在测试登录以后操作的时候再从本地文件把信息调出来存入Cookies
73 4
|
5月前
|
存储 人工智能 自然语言处理
DeepSeek R1+Ollama+Cherry Studio实现本地知识库的搭建
本文介绍了如何使用Ollama和CherryStudio搭建本地知识库,涵盖核心组件介绍、硬件与软件准备、模型部署流程及知识库构建方法。通过配置DeepSeek R1模型、嵌入模型和Cherry Studio平台,实现本地化自然语言处理与知识检索功能。
1799 0
|
数据可视化 Python
【100天精通Python】Day65:Python可视化_Matplotlib3D绘图mplot3d,绘制3D散点图、3D线图和3D条形图,示例+代码
【100天精通Python】Day65:Python可视化_Matplotlib3D绘图mplot3d,绘制3D散点图、3D线图和3D条形图,示例+代码
979 0

热门文章

最新文章