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