对于我的一些 iOS 应用程序项目,我希望我的 CI 服务器能够报告以下属性:
- 启动时间
- 帧率
两者都是随时间变化的图表,并且带有“低水位标记”,因此如果测量结果不在特定标准内,则构建失败。我已经找到了一些我需要的东西。
- CI 服务器将是 Jenkins。
- 我可以使用Transporter Chief将构建的应用程序安装到 iPad 上。
- 为了测量启动时间,我可以找到启动
main()
和离开之间的持续时间application:didFinishLaunchingWithOptions:
。 - 要测量帧速率,我可以将 a放入应用程序并对其属性
CADisplayLink
进行采样。duration
- 如果这些测试输出 JMeter XML,那么 Jenkins 可以通过性能插件显示输出。
我没有解决的是,我应该如何将这些测试嵌入到我的应用程序中并在 iPad 上启动它?如上所述,我可以将应用程序部署到 iPad,但是我不知道如何启动它来收集测试结果。我的单元测试在模拟器上运行 - 我显然不想在那里运行性能测试:-)。
我想有一个解决方案涉及越狱 iPad 并通过 SSH 控制应用程序,如果可能的话,我宁愿不走那条路。如果你已经这样做了并且可以解释它是如何工作的,我仍然想听听它。