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的对于图片的辨识度比较低,所以要求点击的位置一定要精确截图,写的有些地方不是很详细,之后我再补充。

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

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

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

  2. 篇3 安卓app自动化测试-搞定界面元素

    篇3                 安卓app自动化测试-搞定界面元素 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),今天是<安卓app自动化测试>的第三 ...

  3. 篇4 安卓app自动化测试-Appium API进阶

    篇4                 安卓app自动化测试-Appium API进阶 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),今天是<安卓app自动化测试& ...

  4. 篇2 安卓app自动化测试-初识python调用appium

    篇2              安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...

  5. 安卓App自动化测试环境

    一.appium安装 1.nodejs依赖 2..net framework 3.Appium桌面程序安装 3.1.安装包获取 3.2.安装过程 二.Java_ jdk安装 1.Java_jdk版本说 ...

  6. Eclipse控制台输出信息的控制(引用其他人的博客)

    当你在Eclipse中 running/debugging一个应用程序的时候,有关该应用程序的运行调试信息及日志信息都会输出到控制台(console )显示,但是Eclipse只会显示最后一部分的日志 ...

  7. [编译] 6、开源两个简单且有用的安卓APP命令行开发工具和nRF51822命令行开发工具

    星期四, 27. 九月 2018 12:00上午 - BEAUTIFULZZZZ 一.前言 前几天给大家介绍了如何手动搭建安卓APP命令行开发环境和nRF51822命令行开发环境,中秋这几天我把上面篇 ...

  8. 老李分享:android app自动化测试工具合集

    老李分享:android app自动化测试工具合集   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...

  9. APP自动化测试的环境配置

    什么是Appium? 第三方自动化框架(工具),扩充了selenium webdriver 协议,在原有的基础上添加了移动端测试API selenium webdriver 指定了客户端到服务端的协议 ...

随机推荐

  1. 剑指offer——53字符流中第一个只出现一次的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  2. leetcode.数组.16最接近的三数之和-java

    1. 具体题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案 ...

  3. leetcode.字符串.5最长回文子串-Java

    1. 具体题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" ...

  4. .net 委托 +lamda表达式

    1.委托与类同级 想当于定义了一个类型 如 delegate int Sum(int a, int b);// 在声明类之前声明 2.这里可以在类里写个函数 public int sumAB(int ...

  5. java-day25

    . 标签学习:         1. 文件标签:构成html最基本的标签             * html:html文档的根标签             * head:头标签.用于指定html文档 ...

  6. 小程序onclick的写法?

    bindtap="bindAction" 调用bindAction函数即可

  7. Bribing FIPA

    Bribing FIPA 给出多棵有n个节点的有根树,第i个节点有一个权值\(a_i\),定义一个点能控制的点为其所有的子节点和它自己,询问选出若干个点的最少的权值之和,并且能够控制大于等于m个点,\ ...

  8. SpringCloud服务消费有哪几种方式?

    一.使用LoadBalancerClient LoadBalancerClient接口的命名中,可以看出这是一个负载均衡客户端的抽象定义,spring提供了一个实现 org.springframewo ...

  9. 使用node搭建服务时,服务可以启动,但是无法访问

    一开始搭建的是没有问题,能够正常启动和访问,然后吃了个饭回来就变成只能启动,浏览器访问不了了. 说真的,这是一个常识问题.使用node搭建服务访问本地文件,服务搭建的没有问题,能够正常启动.但是在浏览 ...

  10. 6361. 【NOIP2019模拟2019.9.18】鲳数

    题目 题目大意 给你一个区间\([l,r]\),求这个区间内每个整数的十进制上从高位到低位的逆序对个数之和. 思考历程 一开始就知道这是个数位DP-- 结果一直都没有调出来,心态崩了-- 正解 先讲讲 ...