使用Sikuli实现UI自动化测试
一,需求
最近做RPA测试开发时发现一款好用的测试工具,名为Sikuli
二,Sikuli介绍
Sikuli(在墨西哥维乔印第安人的语言里是”上帝之眼”的意思)是由美国麻省理工学院开发的一种最新编程技术,使得编程人员可以使用截图替代代码,从而简化代码的编写流程。从它研究方向上看,是一种编程技术,但是该技术还可以用于进行大规模的程序测试,脚本程序编写使用的是python语言。
Sikuli官网
三,使用Sikuli
- 在官网下载IDE客户端
- 打开客户端,打开CMD窗口,输入以下命令即可打开,不需要安装
java -jar ./客户端名称
- 下面直接上代码,下面的代码实现了打开浏览器,输入网址并访问的功能
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
- 既然 Sikuli 支持 Python 语言,那么也可以运行在pycharm工具中
- 安装 Java8 并配置环境变量
- Sikuli 官网下载 sikulixapi-2.0.5.jar,在 classpath 中配置 sikulixapi-2.0.5.jar 的路径
- Python环境安装所需类库 jpype
- 运行代码
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")
使用Sikuli实现UI自动化测试相关推荐
- 网易Airtest跨平台的UI自动化测试框架
技术博文参考: https://www.cnblogs.com/sdcjc/p/14583847.html 一.Airtest project简介 AirtestIDE 是一个跨平台.多端(Win ...
- 基于图片识别的 UI 自动化测试工具 SikuliX
简介 SikuliX 是一款开源的 GUI自动化测试工具,它的前身是 Sikuli(上帝之眼).SikuliX 在设计上使用到了图片识别技术,会通过不停的对桌面进行截图,然后与预期图片进行比较来判断交 ...
- python个人自动化_GAD名人堂丨方李志专访 :于Python的UI自动化测试探索者
个人简介 方李志,UI自动化测试资深专家,腾讯游戏研发部品质管理深圳团队负责人,十五年来一直从事UI自动化测试研究与实施.开发过UI自动化测试框架.分布式自动化测试平台等,曾获得卓越研发质量铜奖.EV ...
- 从一次故障聊聊前端 UI 自动化测试
背景 事件的起因在于老板最近的两次"故障",一次去年的,一次最近.共同原因都是脚手架在发布平台发布打包时出错,导致线上应用白屏不可用. 最神奇的是,事后多次 Code Review ...
- 阿里p8呕心沥血整理出来的,APP UI自动化测试思路总结,速看
首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师.高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去.接下来,一 ...
- 网易UI自动化测试探索:Airtest+Poco
1. 自动化测试 自动化测试的目的,就是为了"更快更好"地发现产品问题,有效提升产品质量.目前比较主流的自动化测试包含单元测试自动化.接口自动化和UI自动化. 相比接口自动化测试来 ...
- UI自动化测试中的页面定位问题,年薪50W软件测试工程师为你解答
这几天有人问我,UI自动化测试中使用到的页面定位元素应该存放在哪里比较合适? 我想说的是,如果你使用的是PO设计模式设计测试用例的话,可以把定位元素存在每一个page页面或者单独存放在一个目录中,新键 ...
- Flutter UI自动化测试技术方案选型与探索
Flutter页面无法直接使用Native测试工具定位元素,给自动化测试带来很多不便.虽然Google官方推出了Flutter driver 和 Integration test,但是在实际使用中存在 ...
- 阿里疯传,手把手教你如何从0开始开展UI自动化测试?
如何进行一个Web项目的UI自动化测试,首先需要建立一个自动化测试团队.理想情况下,该团队由四个人组成,即测试和开发工程师.中高级自动化测试工程师和两名初级自动化工程师.在非理想情况下,可能只需要一个 ...
最新文章
- python反转字符串(简单方法)及简单的文件操作示例
- python编译为c_cython编译Python为c语言
- PHP开发环境MAMP for Windows
- 边缘化搭建 DotNet Core 2.1 自动化发布和部署(下)
- mysql 序列_MySql中序列的应用和总结
- CoreJava 笔记总结-第三章 Java的基本程序设计结构
- Linux模拟超级终端minicom(二)
- windows下mysql5.6安装
- ZLYZD团队第四周项目总结
- 基于腾讯云的Discuz论坛搭建
- 安装系统出现Winload.exe错误0xc000000e解决方法
- java 生成ai矢量图_AI利用自己的工具将位图转换为矢量图
- iOS宏定义的黑魔法 - 宏菜鸟起飞手册
- 【持续更新】1996-2022历代AMD Radeon桌面显卡列表,Radeon显卡发布日期
- Android CoordinatorLayout自定义Behavior实现依赖滚动布局
- 高盛vr/ar研究报告
- RxJS 6 —— Subscription
- matlab带下标的字母,matlab的特殊字符(上下标和希腊字母等)
- Linux防火墙操作命令,开放或关闭端口
- 正则表达式(参考百度词条)
热门文章
- 习题3-2 高速公路超速处罚
- windows下编译最新x264
- gitlab连接提示“Whoops,GitLab is taking too much time to respond”错误
- 浅谈sleep()和wait()
- 安全公司-Aqua Security
- mybatis的mapper.java_浅谈Mybatis通用Mapper使用方法_java - JAVA
- 第一大题、分析(共14小题,满分100分)
- Linux系统启动引导流程
- 《Java逍遥游记》
- SpringBoot+Vue实现简单用户管理平台第二篇(前端设计,接口对接)