前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Xcode Server实现bot持续集成

利用Xcode Server实现bot持续集成

作者头像
用户5521279
发布2019-06-02 16:30:55
4.3K1
发布2019-06-02 16:30:55
举报
文章被收录于专栏:搜狗测试搜狗测试

前言

之前小编在基于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上传到蒲公英等功能,有兴趣的同学可以去网上搜索学习~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档