Для некоторых моих проектов приложений iOS я хочу, чтобы мой CI-сервер мог сообщить о следующих свойствах:
- время запуска
- частота кадров
как график во времени, так и с "низкими отметками о воде", поэтому сборка выходит из строя, если измеренные результаты не соответствуют определенным критериям. Я уже нашел кое-что из того, что мне нужно.
- Сервер CI будет Jenkins.
- Я могу использовать Transporter Chief, чтобы получить встроенное приложение на iPad.
- Чтобы измерить время запуска, я мог найти продолжительность между запуском
main()
и оставитьapplication:didFinishLaunchingWithOptions:
. - Чтобы измерить частоту кадров, я могу положить
CADisplayLink
в приложение и попробовать его свойствоduration
. - Если эти тесты выводят JMeter XML, то Jenkins может отображать вывод через плагин Performance.
То, что я не разработал, - как мне вставлять эти тесты в мое приложение и запускать его на iPad? Как описано выше, я могу развернуть приложение на iPad, но тогда я не знаю, как я запустил его для сбора результатов тестов. Мои модульные тесты работают на симуляторе - я не хочу, чтобы тесты производительности были очевидными: -).
Я предполагаю, что есть решение, связанное с джейлбрейком iPad и управлением приложением через SSH, я бы предпочел не спускаться по этому маршруту, если это возможно. Если вы это сделали и можете объяснить, как это работает, мне все равно хотелось бы услышать об этом.