51Testing软件测试论坛
标题:
android自动化测试CTS源码分析之一
[打印本页]
作者:
乐哈哈yoyo
时间:
2019-4-3 15:44
标题:
android自动化测试CTS源码分析之一
1, 概述
CTS(Compatibility Test Suite)全名兼容性测试,主要目的就是让Android设备开发商能够开发出兼容性更好的android设备。
本文的CTS源码基于android 5.1,和其他自动化测试指令一样,CTS测试命令也是通过脚本运行的。
CTS源码中的脚本路径: CTS/tools/tradefed-host/etc/ cts-tradefed
Linux环境中也是运行cts-tradefed脚本进行测试。
cts-tradefed脚本最后一行如下,
java $RDBG_FLAG \
-cp ${JAR_PATH} -DCTS_ROOT=${CTS_ROOT} com.android.cts.tradefed.command.CtsConsole "$@"
复制代码
2,main方法
main方法的流程图如下,
[attach]123687[/attach]
CtsConsole的main方法如下,
public static void main(String[] args) throws InterruptedException, ConfigurationException {
Console console = new CtsConsole(); // 构造CtsConsole对象
Console.startConsole(console, args); // 调用父类的startConsole方法
}
复制代码
CtsConsole继承于Console,而Console继承于Thread类。
startConsole方法如下,
public static void startConsole(Console console, String[] args)
throws InterruptedException, ConfigurationException
{
// 将命令参数复制到ArrayList中
List<String> nonGlobalArgs = GlobalConfiguration.createGlobalConfiguration(args);
console.setArgs(nonGlobalArgs); // 将命令参数保存在变量mMainArgs中
console.setCommandScheduler(GlobalConfiguration.getInstance().getCommandScheduler());
console.setDaemon(true);
console.start(); // 启动线程 调用run方法
console.awaitScheduler();
}
}
复制代码
CtsConsole的run方法如下
@Override
public void run() {
printLine(String.format("Android CTS %s", CtsBuildProvider.CTS_BUILD_VERSION));
super.run();
}
复制代码
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2