利用Xcode Server实现bot持续集成

前言

之前小编在基于XCTest的iOS自动化测试介绍了如何利用Xcode工具编写UITest和UnitTest自动化测试用例,这次将为大家介绍编写好的测试用例如何利用Xcode Server进行持续集成,也就是实现不依赖于人工的自动执行集成测试。 什么是Xcode Server持续集成?为了有助于大家理解它的工作原理,先来看一张官网的图:

Xcode Server是配置在Mac端的一个服务器,在这个服务器上我们可以创建Bot自动执行机器人,软件应用程序在本地(Xcode development Macs)开发过程中,会将代码不断合并到git上(SCM Repository), Bot会在指定的时间将git上的代码拉取到Server上,并且执行需要的操作,例如pod install以及创建ipa上传到蒲公英等,执行完成之后会生成执行报告(Reports),如果有自动化测试的话,还会输出测试统计数据。

如何利用Xcode Server实现持续集成

了解什么是Xcode Server持续集成之后,下面小编将具体介绍如何利用Xcode Server实现持续集成。 在较早时候,自动化持续集成工具通常采用Jenkins FastLane等实现,从Xcode 9开始,Xcode Server被集成到了Xcode开发工具中,自动化执行就方便多了,在Mac 电脑上, 安装 Xcode,并启用这个功能,一个持续集成的服务器就搭建好了。 环境要求如下:1)macOS High Sierra 10.13.5及以上;2)Xcode 9.0及以上;3)项目需要使用 Git 进行版本控制,并且有一个可访问的远程仓库。 实现Xcode server持续集成很简单,只需要下面几个步骤: 1.启用 Xcode Server 1)启动Xcode,点击 Xcode 菜单: Xcode->XcodeServer。 2)在Server&Bots界面,将开关由OFF设置为ON, 输入系统账户密码, 选择一个用户作为 Xcode Server用户,然后continue等待完成,即成功启用Xcode Server。

3)设置超时时间。超过时间后就会自动取消,如果项目仓库较大并且网速较慢第一次拉取会很耗时,可以先设置长一点时间。

4)配置创建和查看bot权限的成员。

5)配置邮件通知。

2. 添加Xcode Server到Accounts中 1)点击菜单Xcode->Preference,Accounts页面点击左下角的“+”,选择Xcode Server,然后Continue;

2)选择一个你要连接的Server或者输入Server地址,点Next;

3)输入运行Xcode Server的系统账户名和密码,点Add;

4)在左侧边栏可以看到添加的Xcode Server;

3. 共享Schemes 开发程序时,当你创建了一个新的iOS或OS X项目,Xcode就创建一个包含执行以下操作的默认的scheme:分析,执行静态代码分析;测试,执行您实现的测试用例;归档,构建scheme构建的产品存档。要想Xcode Server对项目执行这些操作,您必须共享项目的scheme。 共享步骤: 1)在Xcode窗口,点击当前target,选择Manage Schemes;

2)选择你要共享的scheme,点击右边Shared列下方的对勾,然后close;

3)选择Source Control > Commit。 4)勾选Shared Data文件夹。 5)在输入栏中输入提交信息。 6)勾选Push to remote选项(如果您的项目由Git管理)。 7)单击”Commit Files and Push”按钮。 4. 创建Bot 共享scheme后,创建一个bot并进行配置来使用这个scheme执行集成测试。 1)打开包含定义自动化操作的scheme的Xcode项目,选择Product> Create Bot,为bot指定一个名称,选择之前启用的Xcode Server服务器,点Next。

2)选择一个仓库并点击Sign In来提供仓库的凭据,即使您已经在Xcode首选项中添加过,因为每个bot会在服务器上的钥匙串中保存一份自己的凭据。 当提示框弹出时输入您的身份验证凭据,然后点击OK。

3) 配置bot需要的属性:选择共享的scheme;勾选复选框来设置bot的操作(静态分析、测试和产品归档),然后单击Next。

设置bot集成执行的周期(可选择手动,也可选择自动周期执行如每天、每小时、每次提交等),以及构建之前是否需要clean项目。

4) 对于iOS应用,选择bot使用哪种设备或模拟器执行测试(指定的所有设备必须连接到服务器上才能完成测试操作),点击next;

5) 接下来定义Run Script构建阶段所需的任何环境变量,它们作为集成的一部分执行,或用于预集成和后集成触发器,然后单击Next;

6)触发器配置:bot可以配置为在集成前或集成后执行称为触发器的操作。一个触发器可以运行自定义shell脚本并发送邮件报告。 点击左下角“+”可选择触发操作方式:预集成触发器(Pre-Integration Script)、后集成触发器(Post-IntegrationScript)、新问题出现时邮件通知(New Issue Email)、定期汇总邮件报告(Periodic Email Report)。

也可以在创建bot完成后,在Report navigator界面,点击bot右键选edit bot进行触发配置,如下图小编设置的预集成触发器(Pre-IntegrationScript),实现的功能是在每次集成前对代码进行pod install操作而进行的预集成脚本。

以上,一个完整的bot集成及配置就创建完成了。

运行bot,查看结果

若手动集成,可直接在Report navigator界面,点击bot右键选Integrate就开始运行了。集成完成后,点击对应的Intergrate即可在右侧主界面看到集成执行整个scheme的相关数据。

点击Intergrate分支下的Tests,可以看到具体每个测试用例执行的结果和分析数据。点击Logs可以查看执行过程中输出的实时日志。

也可以从web浏览器监控bot,每次集成完成后,启用Xcode server时配置的具有bot集成查看权限的成员都可以通过访问bot网站,查看bot最新集成、历史集成的相关数据。其中bot网站地址可以通过Report navigator界面点击bot右键选View Bot in Browser查看。

结束语

本文小编主要分享了基于Xcode Server的bot持续集成是什么,如何实现,最后简单介绍了如何运行持续集成及查看运行结果等内容,除此之外,bot持续集成还可以实现创建ipa上传到蒲公英等功能,有兴趣的同学可以去网上搜索学习~

原文发布于微信公众号 - 搜狗测试(SogouQA)

原文发表时间:2019-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券