利用Robotium进行安卓自动化测试

一、什么是Robotium
Robotium是一款类似Selenium但面向Android端的开源自动化测试框架,既支持测试Native应用,也支持Hybrid应用(混合开发),兼具Native APP良好的用户交互体验的优势以及Web APP跨平台、易变更的又是;既支持黑盒形式的自动化测试,也支持白盒形式的自动化测试。通过Robotium用户可以编写出更强大健壮的UI自动化测试用例,并可以应用在功能测试、系统测试、用户验收测试等多种测试场景中。
Robotium的优势:
(1)、同时支持Native应用和Hybrid应用
(2)、由于是基于Instrumentation的测试,测试代码运行与被测应用所在的进程,控件识别与模拟UI事件都可以快速执行,因此测试用例执行速度更快。
(3)、由于是通过在运行时识别控件而非通过固定坐标的方式,因此测试用例可以更健壮。
(4)、由于支持黑盒方式,不需要深入了解被测应用即可开展测试,因此编写用例花费的时间可以更少。
(5)、由于可以通过Maven、Gradle或者Ant运行测试用例,因此可以很好的作为持续集成的一部分。
Robotium的缺点:
(1)、由于是基于Instrumentation的事件发送,因此无法跨应用。
(2)、代码运行在被测进程,可能影响被测进程的内存、CPU占用,若用于性能监控数据会有误差。

二、开发环境搭建(基于Eclipse)
1、新建工程选择Android Test Project
新建工程

2、建立项目名称后关联你要被测的项目(原谅我万恶的马赛克)
这里写图片描述

3、target SDK版本要与被测项目相同,点击Finish
这里写图片描述

4、在测试工程中引入Robotium的jar包
这里写链接内容

5、创建一个测试类继承ActivityInstrumentationTestCase2并且创建构造方法
这里写图片描述
ps:MainActivity是你要测试的Activity,需要将被测项目的Activity手动import到测试工程

6、一个简单的测试用例代码

public class Test extends ActivityInstrumentationTestCase2<MainActivity> {
    private Solo solo;

    public Test() {
        super(MainActivity.class);
    }

    @Override
    protected void setUp() throws Exception {
        // 测试开始时调用
        // super.setUp();
        // 初始化solo对象
        solo = new Solo(getInstrumentation(), getActivity());
    }

    /***
     * @throws Exception
     *             这个方法名称随机取,是用来进行测试用例的方法
     */
    public void testCase() throws Exception {
        // 获取到被测Activity的UI控件,我这里以获取一个Button和点击为例
        Button button = (Button) solo.getView(R.id.btn_register);
        solo.clickOnView(button);
    }

    @Override
    protected void tearDown() throws Exception {
        // 测试结束时调用
        // super.tearDown();
        solo.finishOpenedActivities();
    }
}

7、如果测试通过
这里写图片描述
会显示绿条,测试未通过会显示红色进度并会报相应的Log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值