51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3692|回复: 5
打印 上一主题 下一主题

【转】sikuli+eclipse对于安卓app自动化测试的应用

[复制链接]
  • TA的每日心情
    无聊
    13 小时前
  • 签到天数: 937 天

    连续签到: 4 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2017-2-9 14:19:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    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的对于图片的辨识度比较低,所以要求点击的位置一定要精确截图,写的有些地方不是很详细,之后我再补充。
    转自:出处

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏6
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-8-15 04:05
  • 签到天数: 105 天

    连续签到: 2 天

    [LV.6]测试旅长

    4#
    发表于 2017-2-10 10:54:05 | 只看该作者
    前排     
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-25 22:53 , Processed in 0.082792 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表