一,需求

最近做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")

使用Sikuli实现UI自动化测试相关推荐

  1. 网易Airtest跨平台的UI自动化测试框架

    技术博文参考:   https://www.cnblogs.com/sdcjc/p/14583847.html 一.Airtest project简介 AirtestIDE 是一个跨平台.多端(Win ...

  2. 基于图片识别的 UI 自动化测试工具 SikuliX

    简介 SikuliX 是一款开源的 GUI自动化测试工具,它的前身是 Sikuli(上帝之眼).SikuliX 在设计上使用到了图片识别技术,会通过不停的对桌面进行截图,然后与预期图片进行比较来判断交 ...

  3. python个人自动化_GAD名人堂丨方李志专访 :于Python的UI自动化测试探索者

    个人简介 方李志,UI自动化测试资深专家,腾讯游戏研发部品质管理深圳团队负责人,十五年来一直从事UI自动化测试研究与实施.开发过UI自动化测试框架.分布式自动化测试平台等,曾获得卓越研发质量铜奖.EV ...

  4. 从一次故障聊聊前端 UI 自动化测试

    背景 事件的起因在于老板最近的两次"故障",一次去年的,一次最近.共同原因都是脚手架在发布平台发布打包时出错,导致线上应用白屏不可用. 最神奇的是,事后多次 Code Review ...

  5. 阿里p8呕心沥血整理出来的,APP UI自动化测试思路总结,速看

    首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师.高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去.接下来,一 ...

  6. 网易UI自动化测试探索:Airtest+Poco

    1. 自动化测试 自动化测试的目的,就是为了"更快更好"地发现产品问题,有效提升产品质量.目前比较主流的自动化测试包含单元测试自动化.接口自动化和UI自动化. 相比接口自动化测试来 ...

  7. UI自动化测试中的页面定位问题,年薪50W软件测试工程师为你解答

    这几天有人问我,UI自动化测试中使用到的页面定位元素应该存放在哪里比较合适? 我想说的是,如果你使用的是PO设计模式设计测试用例的话,可以把定位元素存在每一个page页面或者单独存放在一个目录中,新键 ...

  8. Flutter UI自动化测试技术方案选型与探索

    Flutter页面无法直接使用Native测试工具定位元素,给自动化测试带来很多不便.虽然Google官方推出了Flutter driver 和 Integration test,但是在实际使用中存在 ...

  9. 阿里疯传,手把手教你如何从0开始开展UI自动化测试?

    如何进行一个Web项目的UI自动化测试,首先需要建立一个自动化测试团队.理想情况下,该团队由四个人组成,即测试和开发工程师.中高级自动化测试工程师和两名初级自动化工程师.在非理想情况下,可能只需要一个 ...

最新文章

  1. python反转字符串(简单方法)及简单的文件操作示例
  2. python编译为c_cython编译Python为c语言
  3. PHP开发环境MAMP for Windows
  4. 边缘化搭建 DotNet Core 2.1 自动化发布和部署(下)
  5. mysql 序列_MySql中序列的应用和总结
  6. CoreJava 笔记总结-第三章 Java的基本程序设计结构
  7. Linux模拟超级终端minicom(二)
  8. windows下mysql5.6安装
  9. ZLYZD团队第四周项目总结
  10. 基于腾讯云的Discuz论坛搭建
  11. 安装系统出现Winload.exe错误0xc000000e解决方法
  12. java 生成ai矢量图_AI利用自己的工具将位图转换为矢量图
  13. iOS宏定义的黑魔法 - 宏菜鸟起飞手册
  14. 【持续更新】1996-2022历代AMD Radeon桌面显卡列表,Radeon显卡发布日期
  15. Android CoordinatorLayout自定义Behavior实现依赖滚动布局
  16. 高盛vr/ar研究报告
  17. RxJS 6 —— Subscription
  18. matlab带下标的字母,matlab的特殊字符(上下标和希腊字母等)
  19. Linux防火墙操作命令,开放或关闭端口
  20. 正则表达式(参考百度词条)

热门文章

  1. 习题3-2 高速公路超速处罚
  2. windows下编译最新x264
  3. gitlab连接提示“Whoops,GitLab is taking too much time to respond”错误
  4. 浅谈sleep()和wait()
  5. 安全公司-Aqua Security
  6. mybatis的mapper.java_浅谈Mybatis通用Mapper使用方法_java - JAVA
  7. 第一大题、分析(共14小题,满分100分)
  8. Linux系统启动引导流程
  9. 《Java逍遥游记》
  10. SpringBoot+Vue实现简单用户管理平台第二篇(前端设计,接口对接)