使用 flow.ci 实现 Android 自动化测试与持续集成

在上篇文章——如何实现 Android 应用的持续部署中,我们使用的是 flow.ci + Github + fir.im 实现 Android 应用的持续部署。对于 Android 开发者,他们可能会在整个过程使用 Android 模拟器进行自动化测试。

所以,这次我们通过启动在 flow.ci 中的 Android 模拟器插件,同时将 connectedCheck 命令添加到构建插件的默认脚本中,以此来实现 Android 应用自动化测试与持续集成。

PS:如果您已经阅读过Android的持续部署指南,或者你已经知道 flow.ci 的基础操作,请直接跳到第 7 步:)

了解 flow.ci

flow.ci 是融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程。1 分钟即可完成开发测试环境搭建,开启第一个 Build。

flow.ci,我们把项目的开发工作流称为 flow ,每个 flow 由触发器插件构成。系统根据不同的语言和环境提供对应的 flow 模版,触发器和插件。Flow 的自定义非常简单,只需要 One-Click 即可添加你需要的插件。它可能是一个代码静态分析检测工具(比如 Eslint),可能是一个数据库(比如 Mysql/MongoDB/Redis),也可能是一个消息通知插件(比如 邮件/Slack)等。

更专注于代码,其他的琐事交给 flow.ci 自动化完成吧 :)

搭建 Android 自动化测试与持续部署

1.创建项目

2.关联代码仓库

3.选择要集成的项目

4.开始你的第一个 Flow


选择项目类型 Android ,开启默认的 flow 模板 ,包括 Intialize - Git Clone - Cache - Build 的流程。

5.选择 jdk 版本,单击创建项目

选择项目语言的版本,除了 Java for Android 外,flow.ci 提供 Node.js , Ruby , PHP , Python 的多语言、多版本的开发测试环境。

后续会支持更多语言。

6.点击“+”添加插件,自定义 flow

7.在插件列表中搜索 Android 模拟器插件 —— Android Emulator,选择添加

8.选择 Android SDK 版本与 Android CPU 类型

默认生成插件不包括测试用例执行命令,因此你需要做简单自定义脚本,以便正常运行测试。

9.点击“+”,从插件列表中选择添加自定义脚本插件。


然后,删除默认 flow 模板里的 Build 插件。

在自定义脚本插件中,添加“connectedCheck”命令或者自己定义的 gradle 命令(提示:绿框)。同时可以通过点击标题栏修改文字来重命名该插件。然后,点击保存。

10.Bingo!你的 Flow 已准备就绪。现在,提交代码开始 Build。

实现这套自动化流程之后,只需要开发新功能,提交代码即可。图为跑完整个自动化测试和持续集成的流程,健康的项目状态。


繁琐可循的任务就应该工具化自动化,这是程序员们的不懈追求。如果你也想体验 Android 应用的自动化测试与持续集成,来 http://flow.ci 首页提交申请,邀请码随后会发送到邮箱。

期待你的反馈。

Happy Building!
flow.ci team


firim
Fly It Remotely

fir.im是国内首家提供 App 测试托管分发服务的公司,提供两步发布测试应用的 fir.im, 崩溃分析 BugHD, ...

1.4k 声望
190 粉丝
0 条评论
推荐阅读
fir.im 持续集成技术实践
互联网时代,人人都在追求产品的快速响应、快速迭代和快速验证。不论是创业团队还是大中型企业,都在探索属于自己的敏捷开发、持续交付之道。fir.im 团队也在全面实施敏捷,并推出新持续集成服务— flow.ci ,以帮...

firim阅读 3.6k

程序员英语学习指南
动机为什么程序员要学习英语?工作:我们每天接触的代码都是英文的、包括很多技术文档也是英文的学习:最新最前沿的技术最开始都是只有English版本就业:学好英语让你的就业范围扩大到全球,而不只限于国内目标读...

九旬7阅读 699

安卓逆向之破解某成人APP播放次数限制
某成人水果APP非VIP用户存在播放次数限制,每天只能播放3次。超过3次需要购买VIP。 由于过于贫穷,于是抽空,对其安卓APP进行了逆向分析,最终成功破解了其播放次数限制。

悖论3阅读 1.5k评论 3

封面图
前端ui自动化测试sdk封装
前端业务场景中每次功能发布都会面临着相应的ui功能测试,因为前端业务的功能迭代之间往往存在显性或者隐性的关联性,每次上线某个功能迭代后,严格意义上也需要对整体功能进行回归,因此单靠人力的手工测试需要...

款冬2阅读 1.1k

这一次,解决Flutter Dialog的各种痛点!
4.0版本做了重大调整,迁移请参照: SmartDialog 3.x 迁移 4.0本文内容已更新,文中内容及其代码皆为4.0用法前言Q:你一生中闻过最臭的东西,是什么?A:我那早已腐烂的梦。兄弟萌!!!我又来了!这次,我能自信...

小呆呆6661阅读 3.5k

封面图
网易云音乐开源全链路埋点方案-曙光埋点(dawn)
网易云音乐开源了曙光埋点 dawn,一个跨多端的全链路埋点解决方案,旨在构造一个完美的数据理想国。曙光埋点创造性的提出了埋点虚拟树(VTree),并在此基础上实现了诸多能力,解决大前端侧埋点困难、精度差、不...

云音乐技术团队2阅读 437

封面图
uni-app中安卓包检查更新、新版本下载、下载进度条显示功能实现
如果想要做一个app的话,可以有很多种选择方案,uni-app是其中的一个性价比高一些(坑多一些)的方案。本文记录一下,uni-app打安卓包以后,需要检查并下载更新,且显示进度条的功能。

水冗水孚2阅读 815

fir.im是国内首家提供 App 测试托管分发服务的公司,提供两步发布测试应用的 fir.im, 崩溃分析 BugHD, ...

1.4k 声望
190 粉丝
宣传栏