利用Xcode Server实现bot持续集成
Posted 搜狗测试
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Xcode Server实现bot持续集成相关的知识,希望对你有一定的参考价值。
前言
之前小编在介绍了如何利用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;
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脚本并发送邮件报告。
也可以在创建bot完成后,在Report navigator界面,点击bot右键选edit bot进行触发配置,如下图小编设置的预集成触发器(Pre-IntegrationScript),实现的功能是在每次集成前对代码进行pod install操作而进行的预集成脚本。
以上,一个完整的bot集成及配置就创建完成了。
运行bot,查看结果
若手动集成,可直接在Report navigator界面,点击bot右键选Integrate就开始运行了。集成完成后,点击对应的Intergrate即可在右侧主界面看到集成执行整个scheme的相关数据。
点击Intergrate分支下的Tests,可以看到具体每个测试用例执行的结果和分析数据。点击Logs可以查看执行过程中输出的实时日志。
结束语
本文小编主要分享了基于Xcode Server的bot持续集成是什么,如何实现,最后简单介绍了如何运行持续集成及查看运行结果等内容,除此之外,bot持续集成还可以实现创建ipa上传到蒲公英等功能,有兴趣的同学可以去网上搜索学习~
以上是关于利用Xcode Server实现bot持续集成的主要内容,如果未能解决你的问题,请参考以下文章