Sikuli是什么?

下面是来自于官网的介绍:Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. Sikuli Script automates anything you see on the screen without internal API's support. You can programmatically control a web page, a Windows/Linux/Mac OS X desktop application, or even an iphone or android application running in a simulator or via VNC.

Sikuli是一种使用截图进行UI自动化测试的技术。Sikuli包括sikul脚本,基于Jython的API以及sikuli IDE。Sikuli可以实现任何你可以在显示器上看到ui对象的自动化,你可以通过编写一些代码来实现web 页面,window/linux/Mac OS X桌面应用、甚至是iphoneandroid模拟器的自动化测试。

实现sikuli+eclipse在安卓上的应用需要的相关软件和jar包:

1.sikulixsetup-1.1.0.jar/sikulixapi.jar(前者可以通过命令产生后者)

2.eclipse

3.小萝贝控机大师

4.一台安卓手机+数据线

5.安卓app的apk

第一步,首先讲一下,如何通过sikulixsetup-1.1.0.jar生成sikulixapi.jar包

sikulixsetup下载地址:
https://launchpad.net/sikuli/+download

  • 将jar包导入工程中;
  • 在cmd中运行该jar包。java -jar sikulixsetup-1.1.0.jar,则会出现如下图,选择相应选项后,启动会下载sikulixapi.jar。不然会报错:libs to export not found on above classpath: /sikulixlibs/mac/libs642.
  • 选择第二个
  • 启动后会有have fun的提示;
  • 在文件夹中找到下载的sikulixapi.jar包,导入到工程中。
  • 将apk放入项目的apps文件夹中,apps是后建的

第二步,将手机关联到电脑上

第三步,打开小萝贝控机大师,手机的界面可以在电脑上见得。

第四步,在eclipse中写代码,代码如下:

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Screen;

public class SikuliTest {
    /*@Before
    public void setUp() throws Exception{
 
        System.out.println("App is launched!");

}*/
    
    @Test
    
     public void addContact() throws FindFailed, InterruptedException{
        //获得电脑桌面屏幕内容
        Screen s = new Screen();
        //图片存储路径
        String imgpath="D:\\eclipse-jee-mars-2-win32-x86_64\\Appium_demo\\pics\\";
        //点击最小化,最小化eclipse
        s.click("D:\\eclipse-jee-mars-2-win32-x86_64\\Appium_demo\\pics\\min1.png");
        //找到桌面上控机大师中的图标
        s.find(imgpath+"Contect.png");
        s.click(imgpath+"Contect.png");
        
        Thread.sleep(1000);
        
        s.click(imgpath+"AddContact.png");
        
        Thread.sleep(1000);
        //输入contactname为some
        s.type(imgpath+"Contactname.png", "some");
        s.click(imgpath+"Contactemail.png");
        
        Thread.sleep(1000);
 
        s.type(imgpath+"Contactemail.png", "some@163.com");
        
        Thread.sleep(1000);
        
        s.click(imgpath+"save.png");
        
        System.out.println("App is done!");
    }
    
    @After

public void tearDown() throws Exception {

//此处可以添加关闭该程序的按钮click,在此没有写出

}

}

第五步,右键,选择run as--->junit test运行该程序

运用sikuli+eclipse对安卓app进行自动化测试完成了,很简单吧,但是sikuli的对于图片的辨识度比较低,所以要求点击的位置一定要精确截图,写的有些地方不是很详细,之后我再补充。

转载于:https://www.cnblogs.com/daphnezhu/p/daphnezhu.html

sikuli+eclipse对于安卓app自动化测试的应用(第一次写博客,有些语言还不太专业,望海涵)...相关推荐

  1. 最近准备把安卓和java的知识再回顾一遍,顺便会写博客上!千变万化还都是源于基础,打扎实基础...

    最近准备把安卓和java的知识再回顾一遍,顺便会写博客上!千变万化还都是源于基础,打扎实基础,加油吧 距离去北京还有23天 转载于:https://www.cnblogs.com/AceIsSunsh ...

  2. 安卓开发笔记——打造属于自己的博客园APP(一)

    最近事情比较多,博客更新又落下了,平时有个习惯,喜欢睡前看看博客园里博友的文章,但一直感觉APP市场上下载下来的博客园客户端用起来并不是很舒服,近来发现博客园也有对外开放的数据接口,所以打算自己写个博 ...

  3. 安卓手机使用termux搭建centos7个人博客服务器

    安卓手机搭建centos7个人博客服务器 介绍 安卓termux下实现centos7搭建个人博客服务器 hexo-boot 是开源项目有兴趣的可以去gitee或者Githup获取源码自己打包编译 资源 ...

  4. python能开发安卓app吗_如何Python写一个安卓APP

    前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...

  5. app python搭建_Django搭建个人博客:创建并配置APP功能模块

    创建APP 在Django中的一个app代表一个功能模块.开发者可以将不同功能的模块放在不同的app中, 方便代码的复用.app就是项目的基石,因此开发博客的第一步就是创建新的app,用来实现跟文章相 ...

  6. 安卓app和iosapp开发有什么不同呢?-综合外链_郑州专业银行管理系统设计开发工具-北京百邦视觉科技有限公司...

    郑州专业银行管理系统设计开发工具 [jdfihsqw] Rushcrm客户管理系统是一款专业以客户管理为核心的CRM系统,客户管理模块拥有潜在客户.客户.联系人等功能模块,可快速.全面的记录与更新客户 ...

  7. phplivechat安卓app下载_PHP Live Chat Pro在线客服系统源码:即时聊天通迅源+手机app+教程...

    源码作者:未知 文件大小:4.53 MB 运行环境:php/mysql PHP Live Chat Pro在线客服系统源码介绍 在线客服系统为独立部署,不需要任何授权,基于PHP和MySQL ,能接入 ...

  8. 人脸识别 在线音乐,自己开发的一款不太成熟的安卓APP

    人脸识别 在线音乐,自己开发的一款不太成熟的安卓APP [声明] 欢迎转载,但请保留文章原始出处 第一次写博客,大家见谅 先附上最后成品图,虽然有些功能不是很成熟 人脸识别 首先是人脸识别功能,人脸识 ...

  9. C#使用Unity3D开发安卓app控制PLC,控制实验室灯光开关

    第一次写博客,之所以写,是用来记录以下自己的学习过程并总结一下学到的技能和各种小知识点,以免以后忘记可以查询. 这次做的东西呢,其实就是个App,这个App用来控制电灯的开关和窗帘的升降.当然这里不仅 ...

  10. Appium App自动化测试框架【一】

    本文为博主原创,未经许可严禁转载. 本文链接:https://blog.csdn.net/zyooooxie/article/details/113841107 2018年我开始在csdn写博客,最初 ...

最新文章

  1. MITRE:利用微生物组时间序列数据推断与宿主状态变化相关的特征
  2. 如何最小化云API升级造成的中断?
  3. linux mysql 5.7.12_Centos 6.7 安装 mysql 5.7.12详细介绍
  4. 2017春季华为实习生编程题
  5. HDU5178 pairs【二分法】【尺取法】
  6. AOP各种表达式,aspectj的关系
  7. 安卓APP_ 控件(9)—— PopupWindow弹窗
  8. CF788789(div1div2)
  9. 目标检测的二十年发展史—从传统方法到深度学
  10. 手把手教你如何在安卓平台上实现打电话发短信的功能
  11. MyEclipse项目无法自动编译解决方案
  12. python中凯撒密码_python实现凯撒密码、凯撒加解密算法
  13. 清微智能获近亿元天使轮融资,专注研发超低功耗芯片...
  14. w ndows7如何清理垃圾,Win7系统垃圾一键清理工具 一键清除windows7系统垃圾文件
  15. SketchUp的二次开发探索 (三)制作一个完整的插件
  16. Maya测量尺寸python脚本Mesh Resizer
  17. 如何利用github打造博客专属域名
  18. 少儿编程微课程10:使用画笔绘制正六边形
  19. 证明调和级数发散的方法
  20. 应用SerialPort实现串口扫码枪ST2200操作

热门文章

  1. **JAVA实习周记(第三周):哦**
  2. 斑马打印机linux驱动安装教程,win7系统安装斑马打印机驱动的操作方法
  3. ucinet计算聚类系数大于1怎么办_UCINET 6
  4. ENVI5.3 辐射校正相关操作
  5. 利用AWVS进行反制
  6. 网速慢?网线选对了吗?!网线类型对应带宽等详细参数
  7. 步进电机 迷你L298N 2路直流电机驱动模块 正反转 PWM调速 双H桥
  8. 《图书管理系统》—需求分析报告
  9. 数据结构课程设计——学生成绩管理系统
  10. 集成电路模拟版图入门-版图基础学习笔记(一)