Android 自动化测试框架-百度cafe

最近在学android的其他自动化测试框架和工具,整理下笔记

1、框架或工具简介

百度cafe:

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

    • 基于hook录制体系
    • 遍历测试
    • 跨app测试
    • pc agent设计
    • 使用android漏洞提权

百度MTC:

MTC是录制回放客户端,为Android开发者提供的自动化脚本测试工具,基于控件进行录制回放操作,使得测试准确性更可靠。主要功能如下:

    • 录制脚本:既可以录制脚本又可以编辑脚本,支持单次录制多个脚本;
    • 运行脚本:本地单机运行脚本,提供运行截图和运行日志;
    • 提交至云测试:单次提交云端多机型回放,支持最多20min的脚本时长

2、安装和使用

a、解压eclipse工具、安装JDK和Android SDK,并设置好环境变量,具体可参考http://wenku.baidu.com/link?url=KV8uJyk5sO29Q2EW34dn3Z3s3bDAdV8pPrzPZqYsfLrBQud6MskvvwjDlPW13z3WqJUfLVEASYRzud7coEVkfuGcZQ31mftHK6y5Dp_0CZm搭建好Android测试环境

b、在 https://github.com/BaiduQA/Cafe/tree/master/downloads 下载最新的café.jar、在http://mtc.baidu.com/?pname=replayhome下载MTC工具

c、启动eclipse,File->Import->Android->Existing Android Code Into Workspace导入被测工程

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

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

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

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

3、编写代码

package gf.king.app.test;
import java.util.ArrayList;
import com.baidu.cafe.CafeTestCase;

import android.annotation.SuppressLint;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;

@SuppressWarnings("rawtypes")
public class Testcase extends CafeTestCase {

private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "gf.king.app.InitWindow";
private static final String TARGET_PACKAGE = "gf.king.app";
private static Class<?> launcherActivityClass;
static {

try {

launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}


@SuppressWarnings("unchecked")
public Testcase() {

super(TARGET_PACKAGE, launcherActivityClass);

}


@Override
protected void setUp() throws Exception {

super.setUp();

}


@Override
protected void tearDown() {

super.tearDown();

}

//编写测试用例, 运行case前需要开启cafe_setup.bat或cafe_setup.sh

@SuppressLint("NewApi")
public void test_NewCase_0() {

//输入字符
local.enterText(0, "Cafe");//0表示第一个文本框
//长按
local.clickLongInList(1);
local.clickLongOnText("Cafe");
local.clickLongOnScreen(100, 100);
//点击文字(任何控件上的文字)
local.clickOnText("Cafe");
//获取控件
local.getCurrentViews(Button.class);
//获取logcat
String[] logs = remote.getLog();
//获取电量
remote.getBatteryLevel();
//获取亮度
remote.getScreenBrightness();

................................

}

}

4、运行

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

或者使用adb命令,D:\TDDOWNLOAD\Android_SDK\platform-tools>adb shell am instrument -e class gf.king.app.test.Testcase(测试类所在的包名+类名) -w gf.king.app.test(测试工程的package)/com.baidu.cafe.CafeTestRunner

5、查看测试结果

在eclipse的junit面板和Android shell中,可以清楚的看到运行结果

eclipse中的结果:

成功的

junit 成功的

失败的

eclipse运行失败

Android shell下的结果:

成功的


失败的

Adb下运行失败


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值