最近在学android的其余自动化测试框架和工具,整理下笔记java
一、框架或工具简介android
百度cafe:git
Cafe,A powerful test framework for Android named Case Automated Framework for Everyone.是一款来自百度QA部门的Android平台自动化测试框架,框架覆盖了Android自动化测试的各类需求,致力于实现跨进程测试、快速测试、深度测试,解决了Android自动化测试中的诸多难题,好比业界一直没有解决的跨进程测试问题。主要亮点以下:github
基于hook录制体系
遍历测试
跨app测试
pc agent设计
使用android漏洞提权
百度MTC:shell
MTC是录制回放客户端,为Android开发者提供的自动化脚本测试工具,基于控件进行录制回放操做,使得测试准确性更可靠。主要功能以下:app
录制脚本:既能够录制脚本又能够编辑脚本,支持单次录制多个脚本;
运行脚本:本地单机运行脚本,提供运行截图和运行日志;
提交至云测试:单次提交云端多机型回放,支持最多20min的脚本时长
二、安装和使用框架
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测试工程
三、编写代码
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();
................................
}
}
四、运行
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
五、查看测试结果
在eclipse的junit面板和Androidshell中,能够清楚的看到运行结果
eclipse中的结果:
成功的
失败的
Android shell下的结果:
成功的
失败的