最近在学android的其他自动化测试框架和工具,整理下笔记
1、框架或工具简介
百度cafe:
Cafe,A powerful test framework for Android named Case Automated Framework for Everyone.是一款来自百度QA部门的Android平台自动化测试框架,框架覆盖了Android自动化测试的各种需求,致力于实现跨进程测试、快速测试、深度测试,解决了Android自动化测试中的诸多难题,比如业界一直没有解决的跨进程测试问题。主要亮点如下:
百度MTC:
MTC是录制回放客户端,为Android开发者提供的自动化脚本测试工具,基于控件进行录制回放操作,使得测试准确性更可靠。主要功能如下:
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中的结果:
成功的
失败的
Android shell下的结果:
成功的
失败的