51Testing软件测试论坛

标题: 【转】sikuli+eclipse对于安卓app自动化测试的应用 [打印本页]

作者: lsekfe    时间: 2017-2-9 14:19
标题: 【转】sikuli+eclipse对于安卓app自动化测试的应用
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
第二步,将手机关联到电脑上
第三步,打开小萝贝控机大师,手机的界面可以在电脑上见得。
第四步,在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的对于图片的辨识度比较低,所以要求点击的位置一定要精确截图,写的有些地方不是很详细,之后我再补充。
转自:出处


作者: 梦想家    时间: 2017-2-9 15:09

作者: 清晨一缕阳光    时间: 2017-2-9 19:20

作者: 茬子    时间: 2017-2-10 10:54
前排     
作者: love00wanggang    时间: 2017-3-14 10:38
收费吗
作者: 余健    时间: 2017-9-3 00:17





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2