如何使用 Jenkins 运行 UIAutomation?

Posted

技术标签:

【中文标题】如何使用 Jenkins 运行 UIAutomation?【英文标题】:How to run UIAutomation using Jenkins? 【发布时间】:2012-10-04 21:27:12 【问题描述】:

我正在尝试将 Instruments UIAutomation 与 Jenkins 的 CI 结合起来。

在 Jenkins 项目的配置中,我定义了一个调用脚本:

sh buildAndTest.sh

它所做的就是调用 uitest

#!/bin/sh 
make uitest

uitest 在 Makefile 中定义,它调用 Instruments:

/usr/bin/instruments -t pathToTemplate/MyTemplate.tracetemplate  pathToSimulator/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/a_very_long_name/Main.app

此代码在终端中以及当我调用“make uitest”时有效。 Jenkins执行脚本时不起作用,控制台输出:

仪器使用错误:(空) 制作:* [uitest] 错误 254 构建步骤“执行 shell”将构建标记为失败 完成:失败

任何想法如何整合这两者?

【问题讨论】:

【参考方案1】:

我刚做了,有点痛。

第 1.1 步:使用 Xcode 插件和模拟器 SDK 构建您的应用

步骤 1.2:定义一个可读的构建目录

第 3 步:使用以下行添加 Shell 构建步骤:

instruments -t ~/Desktop/test1.tracetemplate __YOUR_BUILD_PATH__/_YOUR_APP_.app

为我工作。如果你有任何问题,请告诉我

【讨论】:

【参考方案2】:

确保 Jenkins 从代理以系统用户身份运行,并且系统已登录到桌面。如果桌面不可见,UI 自动化将失败。

【讨论】:

【参考方案3】:

另一个原因可能是你给出了各自的路径。如果有的话,用完整的限定路径替换它。

【讨论】:

以上是关于如何使用 Jenkins 运行 UIAutomation?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用jenkins设置每一天整点运行脚本

如何使用 Bamboo 或 jenkins 运行 ansible playbook

如何使用声明性 Jenkins 管道在同一节点上运行多个阶段?

ubuntu 中安装jenkins,基于docker运行jenkins

如何通过命令提示符和使用 Maven 的 jenkins 运行单个黄瓜功能文件?

如何使用变量名作为声明性Jenkins的参数运行ArtifactoryMavenBuild?