android自动化测试 cafe,Android自动化测试-cafe自动化测试框架学习(一)

cafe是百度开源的一套自动化测试框架,最近开始着手研究了一下,以下是一些总结,比较基础,就是说说环境搭建。

cafe官网地址:https://baiduqa.github.io/Cafe/

源码在gitHub上有,https://github.com/BaiduQA/Cafe

1、Cafe能做什么?

百度cafe.是一款来自百度QA部门的Android平台自动化测试框架,框架覆盖了Android自动化测试的各种需求,致力于实现跨进程测试、快速测试、深度测试,解决了Android自动化测试中的诸多难题,比如业界一直没有解决的跨进程测试问题。主要亮点如下:

基于hook录制体系

遍历测试(基于Monkey)

跨app测试(Robotium+AIDL)

pc agent设计

使用android漏洞提权

2、源码结构分析,去gitHub下载源码之后,解压之后文件结构如下:

0818b9ca8b590ca3270a3433284dd417.png

download:这里面放着cafe的各种版本,迄今为止,是更新到了3.1,把最新的版本的zip解压,可以得到cafe.jar, cafe-doc.jar(这两个jar包在后面的环境搭建需要加入Build Path), 还有Cafe-Setup.bat等文件,这个是在Cafe运行前需要运行一遍,另还有一个Cafe.apk,这个需要在被测机子上预先安装好。

testrunner: cafe的源码

tests:放一些Cafe的功能测试项目

testservice:同上

testuntils:一些公共工具类,Cafe-Setup.bat在这里也有。

tools:存放签名工具

3.cafe的使用(基于源码)

解压eclipse工具、安装JDK和Android SDK,并设置好环境变量

启动eclipse,File->Import->Android->Existing Android Code Into Workspace导入被测工程,此处以Robotium官网给的例子NotePad为被测工程。

File->New->Project->Android->Android Test Project新建测试工程,输入测试工程名称,Select Test Target选择前面导入的被测工程

导入cafe.jar,测试工程右击,选择Build Path->Configure Build Path…,在libraries页面点击Add External JARs,导入b下载的cafe.jar

新建测试类,在测试工程->src->测试类存放的包上右击,选择New->Java->Junit->Junit Test Case,在Name中输入Test Case的名称,选择Setup(),tearDown()和Constructor,点击完成

或者直接使用MTC录制(工具的文件夹下有详细的使用说明文档),录制完成后直接生成Eclipse测试工程

编写代码

package com.example.android.notepad.test;

import android.view.KeyEvent;

import android.widget.Button;

import com.baidu.cafe.CafeTestCase;

import com.baidu.cafe.local.Log;

public class CXQTestCafeCase extends CafeTestCase {

private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.example.android.notepad.NotesList";

private static final String TARGET_PACKAGE = "com.example.android.notepad";

private static Class> launcherActivityClass;

static {

try {

launcherActivityClass = Class

.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

@SuppressWarnings("unchecked")

public CXQTestCafeCase() {

super(TARGET_PACKAGE, launcherActivityClass);

}

protected void tearDown() throws Exception {

super.tearDown();

}

@Override

protected void setUp() throws Exception {

// TODO Auto-generated method stub

super.setUp();

}

public void test01() {local.clickLongOnScreen(100, 100);//其他的功能可以自己参照tests文件夹 }}

运行

PC连接模拟器或者设备,安装 Cafe.apk 、运行 cafe_setup.sh 或者 cafe_setup.bat(模拟器和设备没有安装和运行过的才需要),右击测试工程的测试类,选择Run As --> Run As Android JUnit Test运行;

查看测试结果   在eclipse的junit面板和Androidshell中,可以清楚的看到运行结果

0818b9ca8b590ca3270a3433284dd417.png

如果出错,可以自己排查一下Manifest.xml文件,正确的内容应该如下:

package="com.example.android.notepad.test"

android:versionCode="1"

android:versionName="1.0" >

android:name="android.test.InstrumentationTestRunner"

android:targetPackage="com.example.android.notepad" />

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

问题:

cafe能不能做无源码的测试?

签名怎么用?

现在还没用到签名,我猜测签名是不是用于无源码的测试下,因为robotium就是这么做的,而cafe是基于robotium开发的,还不清楚这个签名是用来干嘛的,如果有哪位大神用过,麻烦回复告诉我下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值