如何在java中使用sikuli进行自动化测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在java中使用sikuli进行自动化测试相关的知识,希望对你有一定的参考价值。
Sikuli 提供了一个简易的脚本开发环境。缺省界面由菜单栏、工具栏、侧边栏、编辑区、控制台和状态栏六部分组成,如图 1 所示。
工具栏中提供了两组共计 5 个常用工具按钮及文本搜索框:
屏幕截图(Take screenshot):点击该按钮,进入屏幕截图状态,拖拽辅助线选取需要截取的界面元素,释放鼠标左键的同时,自动将该截图插入到编辑区中光标当前位置。使用快捷键 Ctrl+Shift+2(Command+Shift+2)也可激活截图状态,以完成对于弹出菜单、下拉框一类的控件的实时截图。该快捷键亦可通过主菜单 File->Preferences 进行自定义。
插入图片(Insert image):除直接截图外,用户也可通过点击该按钮导入已有的 PNG 格式图片文件。
建立屏幕区域(Create region):点击该按钮,进入屏幕区域选择状态,拖拽定位十字线选取屏幕区域。释放鼠标左键,即可将当前选中区域的屏幕坐标信息插入到编辑区中。
运行(Run):点击执行当前脚本。快捷键为 Ctrl+R(Command+R)。
慢速运行(Run in slow motion):点击后以较慢的速度执行当前脚本,以红色圆形外框显式标识每一次图像查找定位动作,便于程序调试中进行焦点追踪。快捷键为 Ctrl+Alt+R(Command+Alt+R)。
左侧侧边栏中分类列出了部分常用函数,点击函数名可快速将其插入到编辑区,若该函数需截图作为参数,则自动转入屏幕截图状态。下方的状态栏可用于查看当前行号,与行首 Tab 缩进的层级 ( 列号 )。
参考技术A 首先不得不承认这是个牛逼的工具,之前看到我们有同事在用,脚本里可以直接贴图片。具体的使用教程建议可以看看这个ppt : http://wenku.baidu.com/link?url=8L9WJpXR6DJLr27lsb_mYqM4ZIXMwibsm0yU4YzZhtLVQ4fdDP2wgy2TdfYOjoIlI2i3nO-EKBr9jGKQ41idbk9me4ZsReke9H38ZI2_FsK也欢迎和我们聊聊测试相关的问题,微信公众号 搜狗测试~ 参考技术B 建议使用jython
Sikuli--基于像素的图像识别(JAVA)
package wincalc; import org.sikuli.script.Screen; public class SikuliDemo { // Sikuli是基于PC图像识别的自动化测试工具。 // 目前绝大多数GUI工具均需要依赖与程序类型进行特征识别(属性识别) // TestComplete/CodeUi/Selenium/Appium/UIautomatior/WatiR // 面对不同的程序类型,则无法有效大处理,SikuliX图像识别可以通吃 // Skuli对其他移动端的支持不够友好。对python的支持不友好,JPype // 图像识别匹配度和容错能力是其技术可用性的关键 public static void main(String[] args) throws Exception { // SikuliX提供大核心类 // 1、Region 界面部分区域识别,效率高 // 2、Screen 全屏识别,效率低 // 定义当前文件夹 String imgPath = System.getProperty("user.dir") + "/wincalc"; // 实例化Screen Screen s = new Screen(); // 启动win系统计算器 Runtime.getRuntime().exec("calc.exe"); // 暂停2秒 Thread.sleep(2000); // 点击事件 s.click(imgPath + "/3.png"); s.click(imgPath + "/+.png"); s.click(imgPath + "/5.png"); s.click(imgPath + "/=.png"); Thread.sleep(2000); // 判断结果 boolean test = s.exists(imgPath + "/8.png").isValid(); if (test) { s.click(imgPath + "/exit.png"); System.out.println("ok"); } else { System.out.println("no"); } } }
以上是关于如何在java中使用sikuli进行自动化测试的主要内容,如果未能解决你的问题,请参考以下文章