使用Sikuli实现UI自动化测试

Sikuli-x---图片自动化工具的使用 1.Sikuli-x简介 Sikuli是识别和控制GUI组件进行UI自动化测试的技术,它是有MIT的研究人员开发进行设计的。Sikuli在墨西哥维乔印第安人(Huichol Indians)的语言里是上帝之眼的意思,Sikuli的工作模式与人眼一样,直接识别图像。 Sikuli-x是Sikuli的最新版本,支持Mac OS X、Windows 和 Linux 操作系统的自动化操作 Sikul... 阅读详情

一,需求

最近做RPA测试开发时发现一款好用的测试工具,名为Sikuli

二,Sikuli介绍

Sikuli(在墨西哥维乔印第安人的语言里是”上帝之眼”的意思)是由美国麻省理工学院开发的一种最新编程技术,使得编程人员可以使用截图替代代码,从而简化代码的编写流程。从它研究方向上看,是一种编程技术,但是该技术还可以用于进行大规模的程序测试,脚本程序编写使用的是python语言。

Sikuli官网

三,使用Sikuli

  1. 在官网下载IDE客户端
    在这里插入图片描述
  2. 打开客户端,打开CMD窗口,输入以下命令即可打开,不需要安装
java -jar ./客户端名称
  1. 下面直接上代码,下面的代码实现了打开浏览器,输入网址并访问的功能
find("1619052653788.png")
doubleClick("1619052653788.png")
wait("1618996045414.png")
click("AddressBar.png")
time.sleep(2)
type("a",Key.CTRL)
time.sleep(2)
type(Key.BACKSPACE)
time.sleep(2)
type("AddressBar.png","http://10.1.80.100:8080/qcbin/start_a.jsp")
time.sleep(2)

四,在pycharm工具使用Sikuli

  1. 既然 Sikuli 支持 Python 语言,那么也可以运行在pycharm工具中
  2. 安装 Java8 并配置环境变量
  3. Sikuli 官网下载 sikulixapi-2.0.5.jar,在 classpath 中配置 sikulixapi-2.0.5.jar 的路径
  4. Python环境安装所需类库 jpype
  5. 运行代码
import time
import win32api
import win32con
from jpype import *
import os
from jpype._jvmfinder import getDefaultJVMPath
from selenium import webdriver
# from utils.base import Base
from jpype._core import isJVMStarted, startJVM
ImageDir = os.path.dirname(os.path.abspath('.'))
ImagePath = ImageDir + '\\TestGuiMian'

#startJVM(r'C:\Program Files\Java\jre1.8.0_101\bin\server\jvm.dll', '-ea', r'-Djava.class.path=D:\sikuli\sikulixapi.jar')

Screen = JClass('org.sikuli.script.Screen')
screen = Screen()
Key = JClass('org.sikuli.script.Key')
key = Key()
screen.doubleClick(ImagePath+"\\GuiMian.png")
time.sleep(2)
# 单击
screen.click(ImagePath+"\\UserName2.png")
# 双击
screen.doubleClick(ImagePath+"\\UserName2.png")
# 右击
screen.rightClick(ImagePath+"\\UserName2.png")
# 拖拽到指定位置松手
screen.dragDrop(ImagePath+"\\IE.png",ImagePath+"\\Window.png")
# 悬停
screen.hover(ImagePath+"\\UserName2.png")
# 检查是否存在
screen.exists(ImagePath+"\\IE.png")
# 等待出现
screen.wait(ImagePath+"\\IE.png")
# 查找
screen.find()
# 查找页面所有的相似图片
screen.findAll()
PathList = screen.findAll(ImagePath+"\\QQ.png")
# print(a)
Count = 0
for Path in PathList:
    if Count == 1:
        screen.rightClick(Path)
    Count += 1

# 输入,可以配合键盘按键输入
type(Key.ENTER)
# 输入,一次性将字符串送入
paste("12345")
Selenium WebDriver自动化测试(扩展篇)--Sikuli实现自动化 真的?现在测试工程师的简历都很漂亮,漂亮到五花八门,如果不是找工作需要,结果一问,根本不是那么一回事儿;不是所有会使用的工具到自己手里就变成了掌握。前言:当下职场,互联网急速发展,各种技术也在日新月异,或者叫更新迭代,总之就是作为一个有思想的工程师,学习更多的技能傍身,稍微显得浮躁了,因为谁也不知道... 阅读详情

相关推荐

基于图像识别的自动化测试技术:Sikuli

总结来说,Sikuli是一个功能强大的基于图像识别的自动化测试工具,它可以帮助开发人员更轻松地编写自动化测试脚本,尤其是针对那些没有明确标题识符或属性的应用程序。请注意,Sikuli的图像识别过程是基于像素级别的匹配,因此在编写测试脚本时,需要选择具有足够独特性和可靠性的图像作为匹配对象。另外,由于图像匹配的性能受到多种因素的影响,如图像质量、分辨率等,建议在使用Sikuli进行自动化测试时,进行充分的测试和验证,以确保测试结果的准确性和可靠性。最后,我们定义了一个。安装完成后,我们可以开始编写测试脚本。

EiLisp的博客 753

自动化工具Sikulix介绍和使用教程

小结:SikuliX 脚本 (.sikuli) 是包含实现测试用例的 Python 源文件 (.py) 以及源文件使用的所有图像文件 (.png) 的文件夹。Sikuli 脚本中使用的所有图像路径都默认是 .sikuli 包中 .png 文件的路径。默认情况下,当在使用SikuliX IDE 保存时,SikuliX 脚本文件夹/目录与脚本同名。包含的脚本文件必须与文件夹同名。2. 解压缩文件后如图1,双击文件“RunSikuli2.05.bat”即可,如图2为SikuliX IDE-2.05的界面。

7389

开源网格划分软件-Gmsh二次开发教程 (4)网格生成与控制​

​本章将深入讲解Gmsh的网格生成技术,包括全局/局部网格控制、边界层生成、自适应细化等,并提供完整的代码示例。

ZQGG的博客 1472

sikuli:前端自动化操作神器【简单实用】

前端自动话操作应用很广泛,从网购秒杀活动实现自动化抢购,到区块链货币高频交易前端脚本编写(非合作交易所不提供api的情况下)。 自动化的流派分为2类,一类是对DOM对象进行解析的,这个是主流,但是受特定平台的限制,而且一定目标前端代码变了,自动化脚本一般都要重写。 另一个就是近年来出现的“非主流”--sikuli。它是通过类似图像识别的原理进行自动化操作的,不受目标前端代码修改的影响。 之前

郑泽洲的博客 1万+

Python实战:5分钟搞定VCF文件中每个样本的SNP统计(附bcftools安装指南)

本文介绍了三种高效统计VCF文件中每个样本SNP数量的Python方法,包括原生解析、结合bcftools的推荐方案以及使用PyVCF3专业库。特别推荐bcftools结合Python的方法,适用于中大型VCF文件,显著提升处理效率。文章还提供了bcftools安装指南和进阶统计技巧,帮助生物信息学分析人员快速完成SNP统计任务。

weixin_30555125的博客 494

Mac上IDEA的PlantUML插件报错‘找不到Graphviz’?手把手教你用Homebrew搞定(附阿里云镜像避坑)

本文详细解决了Mac上IDEA的PlantUML插件报错‘找不到Graphviz’的问题,通过Homebrew安装Graphviz并配置阿里云镜像源,特别针对Apple Silicon芯片用户提供了优化方案。文章还涵盖了IDEA中PlantUML插件的正确配置和常见问题排查,帮助开发者高效使用PlantUML进行UML图表设计。

weixin_42619742的博客 468

详解UI自动化测试辅助利器:Sikuli

序言 如果你在UI自动化测试中遇到如下问题,那么本文将会给你带来帮助: 做web自动化测试时,由于个别无法识别的元素而Block自动化测试进度。 苦恼于使用python脚本而无法调用sikuli来完成UI元素识别。 定义 Sikuli是由MIT(麻省理工学院)研究团队发布的一种图形化编程技术,使用Sikuli你只需要会写HelloWorld这种最基本的编程技能即可,用Sikuli不需要去写出一行行复杂的代码,而是用屏幕截图的方式,用截出来的图形元素组合出神奇的程序。 Sikuli官网:http:

liwenxiang629的博客 1680

告别混乱!在Unity中为Best MQTT v3设计清晰的服务层:配置、连接、订阅发布模块拆分指南

本文详细介绍了如何在Unity中使用Best MQTT v3插件构建清晰的服务层架构,包括配置管理、连接服务、订阅管理和发布服务的模块化拆分。通过解耦设计、事件驱动和接口抽象,提升代码可维护性和可测试性,适用于物联网和实时通信开发场景。

weixin_30576827的博客 357

sikuli python java_Python3与Sikuli的UI自动化测试之路

背景:项目需要在微信端小程序覆盖UI自动化测试,使用appium成本太高,故考虑可否使用sikuli来做。调研:问题:Sikuli使用的是java编写,python无法直接调用其api解决方法:JPype。JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足。安装方法:pip install JPype实例'''...

weixin_39979489的博客 252

5个必知的脑网络图论指标:从聚类系数到小世界特性(附BCT工具包使用指南)

本文深度解析脑网络图论分析中五个核心指标:聚类系数、特征路径长度、全局效率、局部效率及节点效率,并详解其计算与解读。结合Brain Connectivity Toolbox工具包,提供从实战计算、常见报错解决到小世界特性统计检验的完整指南,帮助研究者跨越理论与实操鸿沟,让连接矩阵数据真正服务于神经科学研究。

blue42的博客 925

从零到一破解Uber实时行程API:逆向工程与高并发爬虫实战

在数据采集领域,Uber的实时行程数据始终处于“传说级”难度。动态令牌系统- 每30秒轮换的Bearer Token证书固定(Certificate Pinning)- 阻止中间人攻击请求签名算法- 基于时间戳+用户设备的HMAC-SHA256行为分析- 鼠标轨迹、请求间隔的机器学习模型全链路加密- GraphQL端点的payload加密目录前言:为什么Uber爬虫被称为“地狱难度”?第一章:环境准备与法律边界1.1 技术栈选择(2026年最新)1.2 法律免责声明。

2201_76125261的博客 892

python和按键精灵自动化测试_高级版按键精灵,同时也是UI自动化测试的好帮手 - SIKULI...

一个具有一定规模的网络服务在新版本的上线前,一定会进行详细的 QA 测试,但目前的测试工具大多是以代码的测试为主,只有少数的工具能够支持 UI 上的测试,而 SIKULI 便是自动化 UI 测试的好帮手。为什么我们需要自动化测试?曾经开发过网志或者是软件的朋友都会知道,在软件正式发布之前进行测试是相当重要的,除了要避免软件出现错误当机的状况之外,也须要确定各项操作流程是否如同预期。然而,许多网络创...

weixin_39628380的博客 756

OpenClaw实战系列·进阶特辑02:多智能体协同——打造企业级AI中台

**企业级AI中台面临多Agent协同的挑战,本文提出基于多智能体协同的解决方案。通过分析单Agent的局限性(上下文溢出、专业度稀释等)和多Agent的核心优势(任务专注度、故障隔离等),提出三种协作架构模式(指挥型、联邦型、点对点型),并强调人格化设计的重要性。文章详细介绍Agent间通讯机制(同步/异步会话、文件系统协作)和"身脑分离"的解耦架构设计,提供可落地的企业级AI中台实施方案。

PeterPan的博客 493

Sikuli——Using Screenshots for GUI Automation and Testing

随着浏览器的不断更新,如今的website不再像过去一样只支持IE6了,用户体验促使现在的网站对美工(或好听点叫做UED)的要求越来越高,那么通过对OS/Browers的metrics,兼容性的测试需求变得重要起来。前面有介绍过WaitN和selenium主要是用来对功能的自动化测试,那么UI方面的测试,除了手工测试每个浏览器和操作系统的排列组合还有更好的方法么,Sikuli的出现,多少能够解决一...

weixin_33711647的博客 140

qiankun 主子应用部署教程(Nginx 小白版)

本地开发:不用 Nginx,直接localhost:端口即可。本地模拟线上:用hosts + Nginx + 自定义域名,效果和生产接近。线上部署主应用只要配置 history 模式子应用必须支持 CORS + history + 缓存能跑是因为默认 server 兜底,但推荐写真实域名。主应用 vs 子应用的 Nginx 配置区别为什么本地和线上表现不一样history 模式 + 跨域的最佳实践。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 998

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【亲测免费】 探索Sikuli Robot Framework Library:自动化UI测试的新利器

探索Sikuli Robot Framework Library:自动化UI测试的新利器 在软件开发的世界中,自动化测试是确保产品质量和稳定性的关键环节。今天,我们将深入探讨一个强大的开源项目——Sikuli Robot Framework Library,它为UI测试带来了革命性的变化。 项目介绍 Sikuli Robot Framework Library是一个专为Robot Framewor...

gitblog_00554的博客 762

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Sikuli -web页面自动化测试工具

简介 Sikuli(在墨西哥维乔印第安人的语言里是”上帝之眼”的意思)是由美国麻省理工学院开发的一种最新编程技术,使得编程人员可以使用截图替代代码,从而简化代码的编写流程。从它研究方向上看,是一种编程技术,但是该技术还可以用于进行大规模的程序测试,脚本程序编写使用的是python语言。他不需要去写出一行行代码,而是用屏幕截图的方式,用截出来的图形元素组合出神奇的程序。 Sikuli 可以采

我的E家 7420

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Mac下的UI自动化测试 (一)

在我看来,实现UI自动化测试的过程一向都是令人快乐的事情,而维护它们就是跟噩梦一样了,尤其是对每次CI产生的build进行BVT测试,由于开发不会告诉你任何UI的变化,那么你拿到的测试结果就势必会一片红了。但是对于界面相对稳定的项目,有大量回归测试需要进行的项目,实现UI自动化的投资回报率还是很高的。 最近我实现了公司一个产品在Mac OSX上的UI自动化测试,下面就把具体的细节写出来。 首先...

weixin_34059951的博客 528

MacApp自动化测试之常用工具简介

由于需要本地设备上安装客户端,故而需要关注安装/卸载及资源的占用,安装/卸载主要是了解安装/卸载过程可能出现的各种各样的问题,并尝试不同的方法验证可能出现的各种异常情况及程序自身处理的能力,保证安装/卸载的正确运行。MacApp指的是运行在MacOS系统上的应用程序,其安装包多以dmg程序为主。MacApp作为一种单机或Client-Server架构的应用程序,测试时可以将重点放在功能测试、用户界面测试、兼容性测试、配置测试、交互测试上,交互测试着重考虑与MacOS系统、MacBook硬件设备上的交互。

2401_85696278的博客 412

UI自动化测试中图片断言描述

Airtest图片处理及断言补充:Airtest提供了多种图片处理和断言的方法,如多图查找、局部截图、局部识图和两图对比等。

OKCRW的博客 444

三类自动化测试技术学习

来源与极客学院视频教程。 TDD 测试驱动开发 根据测试用例,编写测试脚本,然后为了让测试脚本跑通而去开发代码。 代码自动化测试:多应用于测试服务端接口 界面自动化测试:使用一些工具去模仿用户操作界面。更符合黑盒测试习惯。 利用代码或工具模拟键盘和鼠标的操作。 界面自动化测试核心是:对象识别和操作。 1、利用sikuli ide(基于图像识别的自动化测试工具)

zh26622的专栏 685

图像识别在测试中的应用

提起ui自动化大家首先想到的就是基于控件的自动化,比如常见的xpath、id、css选择器等手段进行元素定位并进行结果判断。但是在实际应用中,无论是web端还是移动端,仍有很多时候需要根据页面内容、页面中的图像进行定位及判定,是这些手段所达不到的,这里我们来介绍一下关于图像识别在测试中的应用。在具体进行讲解之前先介绍一下图像识别在测试中能够想到的引用场景:l  测试过程中,通过对待测软件进行屏幕截...

4219

网易Airtest简介

Airtest简介:(目前已经开源)   项目地址:http://airtest.netease.com/  快速上手教程:http://airtest.netease.com/tutorial/Tutorial.html  IDE快速上手教程:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/1_quick_start.html     ...

我只是一个小QA的博客 6331

Airtest入门第一章--下载安装

一、Airtest的简介   Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。   另外,A...

秃秃的测试 1472
上一篇: 使用selenium打开带有证书的网页
下一篇: CentOS离线安装Python环境和第三方库
西门一刀
博客等级 码龄7年 1万+粉丝 183原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西门一刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值