51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2891|回复: 0
打印 上一主题 下一主题

[Appium] android自动化测试CTS源码分析之一

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-4-3 15:44:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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脚本最后一行如下,
  1. java $RDBG_FLAG \
  2.   -cp ${JAR_PATH} -DCTS_ROOT=${CTS_ROOT} com.android.cts.tradefed.command.CtsConsole "$@"
复制代码

2,main方法

main方法的流程图如下,

CtsConsole的main方法如下,
  1. public static void main(String[] args) throws InterruptedException, ConfigurationException {
  2.         Console console = new CtsConsole(); // 构造CtsConsole对象
  3.         Console.startConsole(console, args); // 调用父类的startConsole方法
  4.     }
复制代码

CtsConsole继承于Console,而Console继承于Thread类。

startConsole方法如下,
  1. public static void startConsole(Console console, String[] args)
  2.     throws InterruptedException, ConfigurationException
  3.   {
  4.     // 将命令参数复制到ArrayList中
  5.     List<String> nonGlobalArgs = GlobalConfiguration.createGlobalConfiguration(args);
  6.   
  7.     console.setArgs(nonGlobalArgs); // 将命令参数保存在变量mMainArgs中
  8.     console.setCommandScheduler(GlobalConfiguration.getInstance().getCommandScheduler());
  9.     console.setDaemon(true);
  10.     console.start(); // 启动线程 调用run方法

  11.     console.awaitScheduler();
  12.   }
  13. }
复制代码

CtsConsole的run方法如下
  1. @Override
  2.     public void run() {
  3.         printLine(String.format("Android CTS %s", CtsBuildProvider.CTS_BUILD_VERSION));
  4.         super.run();
  5.     }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-27 06:02 , Processed in 0.061714 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表