【问题标题】:TeamCity fails to run iOS appium tests when auto-launchedTeamCity 自动启动时无法运行 iOS appium 测试
【发布时间】:2014-02-11 10:57:04
【问题描述】:

说明

我们在运行 Mavericks 的 Apple MacMini 上的 TeamCity 8 内的 cucumber 套件中使用 appium。问题是appium在登录时(通过Automator)从TeamCity运行时似乎无法与iOS模拟器交互。

我发现唯一可行的组合是在交互式会话中从 Terminal 运行以下命令:

sh /Applications/buildagent/bin/agent.sh start

什么不起作用?

  • ssh 会话中运行 agent.sh start
  • 使用 Automator 创建一个在登录时启动的 shell 脚本(macmini 设置为自动登录)

理论

我的理论是它与Preferences -> Security & Privacy -> Accessibility 有关。从终端启动时它起作用的唯一方法是将终端添加到此允许的应用程序列表中。我不确定我需要在此列表中添加什么才能使其在登录时自动运行。

任何帮助将不胜感激。

【问题讨论】:

  • Levi,你愿意接受我的回答吗?

标签: ios teamcity osx-mavericks appium teamcity-8.0


【解决方案1】:

如果没有交互式会话,许多 iOS 测试将无法运行。例如,使用 iOS 模拟器的单元测试将不起作用。

编辑:通过交互式会话,我的意思是必须从桌面启动 TeamCity 代理,而不是通过 SSH 会话。否则无法与模拟器通信。

【讨论】:

  • 我不确定您所说的交互式会话是什么意思。这个问题纯粹是关于让 Appium 访问模拟器
  • 交互式会话是指必须从桌面启动 TeamCity 代理,而不是通过 SSH 会话。否则什么都不能与模拟器通信。
  • @sheeptest 不知道你为什么不给我投票,OP 询问了模拟器,甚至提到了一个交互式会话。
  • 啊,我明白你的意思了。更新你的答案!
【解决方案2】:

你是对的,你需要允许 Appium 与 A​​utomator 交互。

解决方案straight from the documentation:

  • 如果您从 NPM 安装运行 Appium:sudo authorize_ios

  • 如果您从源代码运行 Appium:sudo grunt authorize

  • 如果您正在运行 Appium.app,您可以通过 GUI 授权 iOS。 第一次在 GUI 上单击“启动/运行”时会弹出此提示并尝试打开模拟器

【讨论】:

  • 我将不得不重温一遍;我已经有一段时间没有看过这个了。当时,我很确定我做了sudo authorize_ios 和两者的组合。同样从那时起,由于速度的原因,我们完全放弃了 Appium(现在直接使用工具,IIRC)。
  • 啊。好的。这对你有什么作用? (速度性能和总体可靠性在 1.X 中得到了很大改进——这也是我们非常关心的问题)
  • 实际上好多了。我不在执行此操作的团队中(只是不时出现以提供帮助),但其中一位团队成员编写了一个名为 cumber 的 gem,它直接使用仪器。它可能有一个页面对象包装器,但我知道测试套件在他们的体验中更快、更可靠。我知道,我们仍然从交互式会话开始套件。
  • 好。是的,我开始喜欢 Appium 的部分内容。最大的问题是它非常无证,而且使用起来有点挑剔。但它确实提供了一个不错的小 API 用于仪器。拥有 Selenium 的所有隐式等待命令等非常有帮助。我以前从未直接与 Instruments 合作过。我应该尝试的东西:)
猜你喜欢
  • 2014-03-23
  • 2015-05-13
  • 2016-08-03
  • 2021-05-20
  • 2017-02-04
  • 2017-11-07
  • 1970-01-01
  • 2014-10-02
  • 2016-02-05
相关资源
最近更新 更多