Нужно протестировать десктопное приложение для ноутбуков apple какие ос ты выберешь
Приложение «Диагностика Apple», ранее известное как Apple Hardware Test, может проверить компьютер Mac на наличие проблем с оборудованием.
Если вы считаете, что у вашего компьютера Mac может быть аппаратная проблема, с помощью приложения «Диагностика Apple» можно определить, какой аппаратный компонент неисправен. Приложение «Диагностика Apple» также предлагает решения и помогает обратиться за помощью в службу поддержки Apple.
Подготовка компьютера Mac
- Выключите компьютер Mac.
- Отключите все внешние устройства, кроме клавиатуры, мыши, монитора, соединения Ethernet (если применимо) и подключения к сети переменного тока.
- Убедитесь, что компьютер Mac находится на жесткой, ровной, устойчивой, хорошо вентилируемой рабочей поверхности.
Запуск приложения «Диагностика Apple»
Процессор Apple
- Включите компьютер Mac и во время его запуска продолжайте удерживать нажатой кнопку питания.
- Отпустите кнопку, когда появится окно параметров запуска со значком шестеренки и надписью «Параметры».
- На клавиатуре нажмите Command (⌘)-D.
Процессор Intel
- Включите компьютер Mac, затем во время его запуска сразу на клавиатуре нажмите и удерживайте клавишу D.
- Отпустите клавишу, когда появится индикатор выполнения или запрос выбора языка.
Просмотр результатов тестирования
Приложение «Диагностика Apple» показывает индикатор выполнения, пока проверяет компьютер Mac:
По завершении тестирования приложение «Диагностика Apple» отображает результаты, включая один или несколько справочных кодов. Узнайте о справочных кодах приложения «Диагностика Apple».
Чтобы повторить тестирование, щелкните «Запустите проверку снова» или нажмите клавиши Command-R.
Чтобы перезагрузить компьютер Mac, нажмите «Перезагрузить» или клавишу R.
Чтобы выключить, нажмите «Выключить» или клавишу S.
Чтобы получить информацию об обслуживании и вариантах поддержки, убедитесь, что компьютер Mac подключен к Интернету, а затем щелкните «Начало работы» или нажмите Command-G. Компьютер Mac перезагрузится и откроет веб-страницу с дополнительной информацией. По завершении в меню Apple выберите пункт «Перезагрузить» или «Выключить».
Дополнительная информация
Если на компьютерах Mac с процессорами Intel не удается запустить приложение «Диагностика Apple» с помощью клавиши D, попробуйте следующие решения:
Передо мной два 13-дюймовых MacBook Pro, оба 2017 года. Они в базе — первый с Touch Bar, второй без. Вот их характеристики:
MacBook Pro с Touch Bar сверху, без — снизу
Понимаю, что модель с сенсорной полоской мощнее, но без понятия насколько. А ещё интересно, как оба справляются с нагрузкой: может их пора чистить от пыли или термопасту менять.
В этом материале собрал самые полезные приложения, которые помогут оценить производительность процессора и графического чипа, скорость хранилища, а ещё проверить загруженность.
Основные бенчмарки
Первые три приложения нужны для того, чтобы оценить производительность ключевых компонентов Mac с разных сторон. Это самые популярные бенчмарки, которые используют все.
1. Disk Speed Test — оценка скорости диска
На заднем плане скорость SSD MacBook Pro с Touch Bar, на переднем — без
Популярная утилита для оценки скорости работы диска на Mac. Её используют в подавляющем большинстве обзоров компьютеров Apple.
Приложение тестирует скорость записи и чтения файлов размером 1–5 ГБ. С маленькими документами не работает, поэтому не показывает реальную производительность при ежедневном использовании Mac.
Тем не менее, общую картинку работы диска точно показывает — все равно альтернатив нет.
Disk Speed Test показал, что в MacBook Pro с Touch Bar почти в два раза более быстрый SSD, чем в MacBook Pro без Touch Bar. До теста этим вопросом не интересовался, и он меня, честно, поразил.
2. Geekbench — тест работы процессора
Интерфейс Geekbench
Именно этим тестом проверяют скорость работы не только Mac, но и смартфонов. Он сохраняет результаты прямо на сайт, чтобы можно было быстро сравнить их с конкурентами — в этом его фишка.
Чтобы проверить производительность процессора, тест нагружает его парой десятков небольших задач — это занимает всего пару минут или даже меньше.
Оценка скорость процессора MacBook Pro с Touch Bar
MacBook Pro с Touch Bar набрал почти 4300 баллов в одноядерном тесте и почти 8400 в многоядерном. В принципе ничего удивительного.
Оценка скорость процессора MacBook Pro без Touch Bar
А вот MacBook Pro без Touch Bar меня поразил: 4500 и 9500 баллов соответственно — это при меньшей частоте работы процессора.
В нём используется Intel Core i5-7360U против Intel Core i5-7267U у модели с Touch Bar. Первый ощутимо выигрывает в производительности.
Что интересно при прочих равных i5-7360U ещё и более энергоэффективный — он потребляет 15 Вт против 28 Вт.
На момент релиза в начале 2017 оба процессора стоили около 300 баксов, и я не могу понять, почему Apple использовала более тугое решение в более дорогом и навороченном компьютере. Есть мысли?
3. Heaven и Valley — графические бенчмарки
Оценка в Valley для MacBook Pro с Touch Bar
Heaven и Valley — пара графических бенчмарков Unigine, лучше которых для оценки скорости работы GPU пока не придумали.
Оба показывают трёхмерный мир с тенями и другими сложными элементами, оценивают FPS, берут среднее значение и показывают в конце теста. Чем выше, тем круче.
Сверху оценка в Heaven для MacBook Pro с Touch Bar, снизу — без
MacBook Pro с Touch Bar в Heaven выиграл у модели без со значениями 32,9 и 23,8 соответственно. Разница внушительная.
Скорее всего, причина не только в самом графическом чипе, но и в троттлинге.
Дело в том, что в MacBook Pro без Touch Bar используется один кулер против двух у конкурента. Он не справляется с нагрузкой, поэтому частоту чипа приходится сбрасывать.
Дополнительные бенчмарки
Следующие четыре приложения нагрузят компьютер на 100% и покажут, как он справляется с экстренной ситуацией. Они необязательны, но также используются для оценки производительности.
4. Cinabench — большая нагрузка процессора
Оценка процессора в Cinabench для MacBook Pro с Touch Bar
С помощью этого теста можно нагрузить процессор на 100% и держать его в таком состоянии, пока он не закончится или даже дольше (это можно изменить в настройках).
Это даёт возможность проверить работу кулеров и оценить троттлинг системы, если такой имеется.
Для этого понадобится вспомогательный софт, о котором я расскажу в конце статьи.
Плюс, Cinabench показывает скорость работы процессора в баллах и предлагает сравнить её с конкурентами.
5. Blender Benchmark — загрузка видеочипа на 100%
Этот тест рендерит несколько трехмерных объектов и показывает время, которое это заняло у компьютера. Чем быстрее сработал, тем, соответственно, лучше.
Жаль, «турнирной» таблицы с результатами конкурентов в самой программе нет, но можно найти их в интернете и сравнить.
С помощью этого теста в теории можно понять, какой компьютер лучше справится с рендерингом видео после монтажа. Все, кто в этой теме, оценят.
6. Prime95 — стресс-тест для процессора
Стресс-тест процессора MacBook Pro с Touch Bar
Ещё один тестер для процессора. Он нагружает его математическими вычислениями на 100% и пытается выжать из него максимум.
Его также можно использовать для проверки кулеров и термопасты. Если процессор перегревается и начинает троттлить, нужно чистить пыль и менять засохшие расходники.
Подробнее об этом — в описании последнего приложения.
7. Count It — счётчик FPS для игр
Динамика FPS для стандартных шахмат на MacBook Pro с Touch Bar
Если пытаетесь играть на Mac, без этого приложения вообще не обойтись. Оно показывает текущие значения FPS прямо во время игры и даже составляет специальную диаграмму его изменения.
С помощью программы можно определить настройки качества графики в игре, чтобы она работала более менее сносно. Нужно стремиться к заветному числу 60 FPS.
Утилиты для диагностики
Дальше три дополнительных приложения, которые помогут оценить загруженность Mac, температуру, скорость вентиляторов и другие параметры железа.
8. Macs Fan Control — контроль скорости вращения кулеров
Оценка скорости работы кулеров MacBook Pro с Touch Bar
Крутая диагностическая утилита, которая показывает количество и скорость работы вентиляторов, а также температуру ключевых компонентов Mac.
Процессоры в моих MacBook Pro выдерживают до 100 градусов, но комфортно работают до 80–90 (данные про это можно найти в интернете по названию процессора).
Если кулеры не будут справляться с нагрузкой, процессор начнёт сбрасывать частоту.
9. iStat Menus — статистика железа для строки меню
Интерфейс настройки показателей iStat Menus
Многофункциональная программа, которая умеет считывать показатели со всех возможных датчиков компьютера и выводить их прямо в строке меню.
Она подойдёт, чтобы оценить температуру процессора и графического чипа, нагрузку по потокам. С помощью неё можно проверить, как кулеры справляются с температурой.
10. Intel Power Gadget — контроль основных показателей процессора
Показатели работы процессора в Intel Power Gadget во время нагрузки на MacBook Pro с Touch Bar
Моя любимая утилита, которую можно использовать вместе с бенчмарками и стресс-тестами выше по тексту.
Она показывает (сверху вниз) мощность, частоту, температуру и нагрузку на процессор. Если включить Prime95 или Cinabench, которые работают достаточно долго, можно понаблюдать за графиками.
Если при длительной нагрузке на процессор и его высоком нагреве, частота не падает (прямые линии параллельно оси), значит Mac не троттлит.
Если начал троттлить, чего не делал ранее, нужно чистить его и пробовать тест снова. Когда проблема в пыли, она проходит после чистки. Если не прошла, нужно менять термопасту.
Рекомендую тестировать процессор на троттлинг хотя бы раз в полгода — особенно при активной работе. Если начался, отправляйтесь в сервис на чистку.
(16 голосов, общий рейтинг: 4.38 из 5)В этой статье я расскажу, как протестировать производительность разных компонентов своего Mac: процессора, видеокарты и SSD. Результаты тестов помогут вам понять, что компьютер пора обслужить.
Влад Гороховский
Редактор. Пишу про софт и гаджеты, которые мне интересны. Делаю клавиатурный тренажер KeyKey для Mac.
Влад Гороховский
В этой статье я расскажу, как протестировать производительность разных компонентов своего Mac: процессора, видеокарты и SSD. Результаты тестов помогут вам понять, что компьютер пора обслужить: почистить систему охлаждения и заменить терпомасту. И, конечно же, сравнить производительность своего компьютера с другими моделями.
Во время тестов нужно мониторить состояние всех компонентов. Поэтому сначала я расскажу про три утилиты мониторинга: Intel Power Gadget, iStat Menus и TG Pro. А затем уже про свои любимые тестовые пакеты: Geekbench, Blender, Cinabench, Prime95, Haven, Vallay и Disk Speed Test.
Примеры тестов буду приводить на своих компьютерах: 12-дюймовом MacBook 2015-года и Хакинтоше. Вот краткие характеристики тестовых машин:
Тестовый MacBook 12 2015 года с процессором Intel Core M 1.1 ГГц MacBook Pro 13 2020 года с процессором i5-1038NG7 Хакинтош с процессором Intel Core i7-8700 3.2 ГГц
Intel Power Gadget
Mac-версия состоит из четырех разделов, которые выводят один или два графика одновременно. Сейчас я расскажу, что они означают и как их интерпретировать.
Power. В этом разделе видно мощность потребляемую процессором. Один график отвечает за мощность всех ядер, второй — за мощность ядер вместе со встроенной в процессор графикой.
По этим двум графикам можно увидеть Энергетический Троттлинг процессора (Power Throttling). Он происходит, если CPU еще находится в допустимом температурном режиме, но перегревается система подачи питания (VRM).
Если у вас Хакинтош, тот в этом разделе можно отслеживать изменения потребления мощности после разгона либо после понижения напряжения на процессоре (андервольтинг).
Визуализация троттлинга на моем MacBook 12: летом процессор быстро перегревается и система уже не может постоянно выдавать 6-8 Ватт, которые он потребляет. Зимой дела обстоят чуть получше
Frequency. В этом разделе видно частоты процессора и графического ядра. Если процессор хорошо охлаждается, то при 100% нагрузке вы будете наблюдать прямые линии. Для такой равномерной нагрузки хорошо подойдет Blender, о котором я расскажу чуть ниже.
Если при равномерной загрузке температура процессора поднимается до критической отметки, CPU автоматически понижает свою частоту, что называется Температурным Троттлингом (Thermal Trottling). Его будет видно на графике Frequency.
Спустя несколько минут нагрузки MacBook 12 уже не может поддерживать максимальную частоту 2 Ггц и троттлит до 1.3 ГГц
Temperature. На этом графике видно температуру всего процессора: температуру ядер и встроенного графического ядра. Увы, температуру по отдельным ядрам не видно.
Посмотреть критическую температуру своего процессора можно на сайте Intel. Для этого найдите точное название процессора в программе Geekbench и вбейте его в поиске на сайте. Например, для процессора Core M-5Y31 моего MacBook, критическая температура (TJUNCTION) равна 95°C.
Заметно, что процессор MacBook 12 начинает троттлить при 95°C
iStat Menus
Приложение тонко настраивается, так что вы можете вывести в верхнем меню Mac только те параметры, которые нужно. У меня это температура CPU, GPU, SSD и нагрузка на процессор по потокам. Клик на любой из пунктов откроет более подробную статистику, которую можно отсортировать по времени.
График изменение температуры видеоядра в iStat Menus Нагрузка на процессор по потокам
Во время тестов посматривайте на температуру процессора по ядрам. При хорошо нанесенной термопасте разброс температур должен быть несколько градусов. Если разница в температуре 5 и больше градусов, значит термопаста нанесена плохо: на каком-то участке её или вообще нет, или между процессором и радиатором попал воздух. Это частое явление, так как при сборке компьютера термопаста наносится на конвейере.
iStat Menus единственная платная программа из всех представленных. Пожалуй единственный её минус — невозможность записывать показатели датчиков в лог. Но при этом она «помнит» все показатели за час, день, неделю и месяц. Однозначно стоит своих денег.
TG Pro
Скриншот температур моего MacBook Pro 2020: при нагрузке ядра № 2 и № 4 быстро упираются в 100°С. Ядра № 1 и № 3 очень редко когда доходят до 90°С. В основном держаться на 85°С. Заводская термопаста нанесена очень плохо
Также TG Pro умеет регулировать скорость вращения вентиляторов, в зависимости от общей температуры процессора или его ядер. При помощи такой регулировки мне удалось повысить производительность MacBook Pro на 7%.
Новый MacBook Pro перегревается и троттлит. Нашел бюджетное решение При помощи настройки вентиляторов MacBook Pro мне удалось заставить процессор i5-1038NG7 работать на 200 МГц быстрее. Это увеличило его производительность на 7%. Рассказываю, как это сделать. Влад Гороховский Mac OS WorldGeekbench 5
Главное окно Geekbench: настраивать ничего не нужно, достаточно запустить тест
Что тестирует
В режиме тестирования CPU, Geekbench нагружает процессор двумя десятками небольших задач, вроде рендеринга PDF или распознавание лиц. Тестирует скорость обмена данными между процессором и оперативной памятью.
В тесте GPU нагружает видеосистему через фреймворки OpenCL и Metal. Это не игровой тест, а сугубо синтетический, состоящий из восьми мини тестов: физика частиц, скорость гауссовского размытия, уравнение гистограммы и т.п.
Какой результат
Тест процессора занимает максимум несколько минут. После чего Geekbench в баллах покажет скорость одного и всех ядер. С GPU та же ситуация, но на выходе лишь одно число.
Результаты теста Geekbench MacBook Pro с процессором i5-1038NG7
Для чего подходит
Для быстрого теста процессора, чтобы сравнить свои результаты с другими системами на macOS, Windows, Linux и даже iOS.
Не подходит
Для выявления перегрева и тротлинга процессоров. Несмотря на большое количество тестов, они очень коротки, чтобы нагружать процессор длительное время.
Blender Benchmark
Главное окно Blender Benchmark. Запуск теста сводится к нажатию оранжевой кнопки
Что тестирует
Программа рендерит одну из сцен: bmv27, classroom, barbershop, fishy_cat, koro и pavillon_barcelona. Первые две покоче, остальные — длиннее.
Рендеринг — процесс не быстрый, даже на мощных процессорах. Обычно тест займет от 20 минут.
Blender рендерит реальные 3D-сцены. На слабых компьютерах даже быстрый тест может занять более часа
Какой реузультат
После завершения теста вы увидите время рендеринга. Это и есть финальный результат. Увы, но чтобы сравнить его с другими компьютерами, придется гуглить.
MBP c процессором i5-1038NG7 проходит тест bmv27 за 9 минут
Для чего подходит
Программа отлично подходит для тестирования температуры, шума вентиляторов и способности компьютера держать максимальную нагрузку. Blender нагружает все ядра и потоки CPU на 100% и держит эту нагрузку, пока не закончится рендеринг.
Если ваш компьютер перегревается и начинает понижать частоту процессора, вы это увидите через Intel Power Gadget. Если же все хорошо, то линии будут практически прямыми.
У моего Хакинтоша хорошее охлаждение, поэтому частота и температура не меняются даже во время выполнения полного теста Blender
Не подходит
Blender не подходит для тестирования графической подсистемы в рендеринге. Такая функция в нем есть, но она полностью заточена под видеокарты Nvidia. Рендеринг на Radeon, которые использует Apple, займет больше времени, чем на процессоре. Так что даже и не пробуйте.
На слабых компьютерах тест может занять более часа. В этом случае лучше использовать Cinabench R20.
Cinabench R20
Вначале 2019-года Cinabench обновился до версии R20. Новая версия использует гораздо более объёмную и сложную тестовую сцену, чем R15. По словам разработчиков, для её рендера нужно в восемь раз больше вычислительной мощности и в четыре раза больше памяти. Поэтому результаты R15 и R20 нельзя сравнивать.
Рендеринг сцены в Cinabench. Квадратиками показаны все потоки процессора
Что тестирует
Cinabench по максимуму нагружает все ядра и потоки процессора. При этом визуально видно, как каждое ядро и поток рендерят свой собственный кусочек изображения.
Версия R20 более требовательная к процессору. Если раньше мой i7-8700 проходил тест R15 за 27 секунд, то на R20 уходит в три раза больше времени — полторы минуты. А вот MacBook Air 2013 справился с тестом за 11 минут.
Если вы хотите подержать систему под нагрузкой еще дольше, то в настройках R20 теперь можно указать минимальное время теста в секундах. В этом случае тест будет многократно повторяться, пока не закончится время.
Какой результат
Скорость процессора измеряется в баллах. Его производительность можно сразу сравнить с похожими процессорами на графике в левом нижнем углу. Глобальной базы результатов, как в Geekbench, здесь нет, но, результаты других людей легко нагуглить. Главное, обращайте внимание на версию Cinabench. Напомню, что R15 и R20 сравнивать нельзя.
i7-8700 в Cinabench R20 набирает 3462 балла. На сам тест ушло около полутора минут
Для чего подходит
Cinabench подойдет, чтобы сравнивать между собой производительность процессоров нескольких Mac. Особенно, если вы не хотите ждать по 20+ минут, как в случае с Blender.
Благодаря тому, что в R20 настраивается минимальное время теста, Cinabench подойдет для проверки нагрева, тротлинга и стабильности системы.
Не подходит
Из версии R20 убрали модуль тестирования OpenGL, поэтому видеокарту протестировать уже неполучится.
Prime95 v26.6
Программа имеет специфический интерфейс, поэтому требует небольших комментариев по использованию.
Что тестирует
Prime95 выполняет большое количество математических вычислений, хорошо нагружает L1 и L2 кэш процессора, систему питания и оперативную память.
Новые версии Prime95 используют инструкции процессора AVX, которые очень сильно повышают температуру и энергопотребление. Ребята из tomshardware рекомендуют выключить AVX через файл конфигурация, или просто использовать версию 26.6, в которых этих инструкций нет.
Легенда гласит, что приложений с AVX очень мало. Я сам пытался нагуглить программы, использующие эти инструкции, но ничего конкретного не нашел. Так что поверим порталу tomshardware и будем использовать Prime95 26.6.
Чтобы запустить тестирование в Prime95, нажмите на Option ▸ Turture Test. из меню. В появившемся окне выберите Samll FFTs , а затем Run .
Запуск стресс-теста в Prime95 — штука нетривиальная
Из своего опыта скажу, что Prime95 нагружает систему чуть больше, чем Blender. Воспринимайте этот тест как теоретически возможную пиковую нагрузку, которая в реальной жизни вряд ли произойдет. Если компьютер не перегревается в Prime95, значит система охлаждения работает отлично.
Prime95 нагружает систему до тех пор, пока вы его не выключите
Какой результ
Prime95 не дает никаких конечных результатов, он просто выполняет математические операции, пока вы не остановите тест. Чтобы наблюдать за показателями процессора во время теста используйте Intel Power Widget или iStat Menu.
Prime95 подходит
Исключительно для теста стабильности системы. Обычно под Windows Prime95 используют для нагрузки до отказа, когда разгоняют процессор или память. Если компьютер зависает или перезагружается, значит какой-то из компонентов работает нестабильно. А вот какой — придется выяснять самостоятельно.
Prime95 отлично подходит для тестирования стабильности Хакинтошей, особенно при разгоне или андервольтинге. Если у вас вызывают энтузиазм статьи типа Intel CPU’s Temperature Guide, то Prime95 вам понравится.
Не подходит
Интерфейс Prime95 не особо дружелюбен, к тому же для нормально тестирования надо знать, что и как нужно запустить. Если у вас обычный Mac, а не Хакинтош, то лучше используйте Blender.
Haven и Vallay
Что тестируют
Визуализация идет через фреймворк OpenGL. При этом можно выбрать разрешение картинки и уровень деталей. Оба теста зациклены, и будут крутится до тех пор, пока вы их не выключите. Короткий Бенчмарк можно запустить через соответствующий пункт меню.
Тест Valley немножко сложнее, поэтому на слабых машинах лучше запускать Heaven
Какой результ
Бенчмарк занимает несколько минут и по итогам выдаст вам средний FPS из количества набранных баллов. В Vallay, разрешении FullHD и максимальных настройках моя RX560 показала 912 балла и 21.8 FPS. В Haven — 623 балла, 24.7 FPS.
Результаты теста Heaven для видеокарты RX560
Единой базы результатов у обоих тестов нет. Но они весьма популярны, поэтому результаты других людей можно встретить в обзорах компьютеров.
Для чего подходят
Благодаря встроенному бенчмарку оба теста подойдут для сравнения производительность графических систем разных Mac. Либо для определения прироста производительности от замены видеокарты в Mac Pro или Хакинтош.
Также они идеально подходят для тестирования стабильности и исправности системы охлаждения графического ядра на системах с дискретной графикой: 15-дюймовых MacBook Pro и iMac 4k, 5k. Например, до и после чистки системы охлаждения и замены термопасты.
Не подходят
Оба теста отлично нагружают графику, но, как не крути, слабо отображают производительность в реальных играх. Тут лучше поставить любимую игру из Steam и погонять ее со счетчиком FPS.
Disk Speed Test
Что тестирует
Последовательную скорость записи и чтения файлов размером от 1 до 5 гигабайт. Размер файла можно выбрать в настройках. Тест крутится бесконечно, пока вы его не остановите.
Скорость записи и чтения диска Samsung 970 Evo 250 Гб, формат M.2
Для чего подходит
Подходит чтобы понять максимальную скорость накопителя при последовательном чтении или записи большого файла.
Поскольку тест бесконечный, то его также можно использовать для проверки охлаждения диска. Я использовал его для результатов «до» и «после», когда устанавливал радиатор на свой диск формата PCIe M.2.
Не подходит
Disk Speed Test не измеряет скорость чтения и записи мелких и средних файлов, поэтому не отображает производительность в реальной работе.
Count It
Count It также ведет лог FPS для каждой сессии, по которому удобно смотреть минимальные просадки. Например, вот запись моей игры в CS:GO на максимальных настройках в 2K. Видно, что переодически FPS падает до 40 кадров, хотя средний находится на уровне 93-х.
График FPS в CS:GO на максимальных настройках качества в разрешении 1440p
Если во время теста ваш Mac перегревается и троттлит, то ему пора сделать обслуживание: почистить систему охлаждения и поменять термопасту. Недавно я делал это для своих ноутбуков.
На рынке так много программных продуктов для тестирования, что может показаться, будто для всего найдется готовое решение и нет необходимости тратить время и усилия на разработку инструментов тестирования. На самом деле это не так. Мы в «ЛАНИТ Экспертизе» убедились в этом, когда появилась задача тестирования Desktop-приложений, и теперь делимся с вами опытом.
В отличие от автоматизации WEB, API или мобильных приложений, тестирование Desktop в некоторой степени – «экзотика», и на это есть несколько причин:
- Отсутствуют качественные Open source решения, наподобие Selenium для Web, а те, что есть, либо сильно устарели, либо неудобны в использовании. Иными словами, воспитывают в автоматизаторах смирение и обреченность.
- Коммерческие продукты хоть и обладают широким функционалом и удобством в использовании, стоят зачастую дороже, чем вся автоматизация и используют vendor lock-in бизнес-модель, которая также накладывает дополнительные затраты и ограничения (переобучение персонала, отсутствие возможности использовать существующие наработки и решения, полная зависимость от поставщика ПО и т.п.).
- Ввиду стремительного развития web-технологий, Desktop понемногу отмирает, что сильно сказывается на развитии и поддержке инструментов тестирования и наличии квалифицированных специалистов в этой области.
Обзор предлагаемых решений показал, что Open source продуктов не так уж много. Сначала мы испытали Winium – Automation framework for Windows platforms.
Winium – это фреймворк для тестирования Desktop Windows приложений на базе Selenium. Он обладает всеми основными требованиями, которые были необходимы для работы с предстоящим проектом:
- поддержка WinForms и WPF приложений;
- REST-протокол взаимодействия между тестами и тестируемым приложением;
- возможность взаимодействия с Selenium (а конкретно Java + Selenium).
Дальнейший анализ инструментов тестирования показал, что наиболее оптимальный вариант – это реализация своего инструмента. Имеющиеся продукты обладали теми или иными серьезными недостатками, а комбинировать несколько решений не представлялось возможным. Так как абсолютно все Open source решения использовали взаимодействие со стандартной библиотекой Windows Automation API, то было принято решение взять за основу ядро FlaUI Core, построенное на основе взаимодействия с данной библиотекой, и обладающее полным функционалом взаимодействия с элементами тестируемого приложения. Затем добавить поддержку Selenium REST API, аналогично Winium. Так родился проект FlaNium.
На данный момент в состав проекта входят пока только два компонента.
FlaNium.Desktop.Driver – основной компонент, представляющий из себя драйвер взаимодействия с тестируемым приложением посредством Windows Automation API и использующий протокол взаимодействия Selenium REST API.
FlaNium.WinAPI – Java-библиотека, расширяющая протокол Selenium REST API и добавляющая дополнительные возможности по настройке и взаимодействию с FlaNium драйвером. Также данная библиотека позволяет типизировать стандартный Selenium WebElement и привести его к компонентам тестируемого приложения, добавляя дополнительные методы взаимодействия, характерные определенному типу элемента.
Кто хоть немного сталкивался с тестированием, а особенно с тестированием Web-приложений знает, что такое Selenium WebDriver. Есть много информации про Selenium, поэтому в статье мы не будем рассматривать плюсы и минусы, а также особенности работы с Selenium, а рассмотрим лишь особенности работы с FlaNium драйвером.
Перед началом работы с FlaNium драйвером необходимо загрузить последнюю версию драйвера, а также прописать следующие зависимости в pom.xml:
Далее производим настройку и инициализацию драйвера:
После получения экземпляра FlaniumDriver можно осуществлять поиск контролов приложения и взаимодействовать с ними через стандартные методы библиотеки Selenium.
Есть возможность поиска элементов по XPath, Name, Id (AutomationId) и ClassName, а также поддерживаются пять параметров поиска с помощью XPath – AutomationId, Name, ClassName, HelpText, ControlType.
Для более комфортной работы лучше воспользоваться такими инструментами как FlaUInspect, UISpy и подобными, так как они значительно упрощают написание тестов приложения, позволяя визуально отобразить структуру и параметры элементов приложения. Данные инструменты также позволяют понять, как можно обратиться к различным элементам или какие паттерны поддерживает конкретный из них.
Благодаря расширению протокола Selenium есть возможность типизировать любой WebElement и получить дополнительные возможности для работы. Для этого необходимо создать экземпляр требуемого класса и передать WebElement в качестве параметра:
Рассмотрим на примере, для чего нужна типизация и что нам даёт расширение протокола Selenium. Возьмем для примера выбор значения из выпадающего списка:
На рисунке ниже изображено тестируемое приложение (слева) и инспектор (справа):
У нас есть элемент ComboBox, согласно инспектору, доступа к элементам списка у нас нет, чтобы его получить необходимо раскрыть список нажав на кнопку «Открыть».
После раскрытия списка мы получаем доступ ко всем вложенным элементам и можем осуществлять поиск и выбор необходимого элемента.
Вот так будет выглядеть код при использовании стандартных Selenium-методов:
А вот так будет выглядеть то же самое, но при использовании методов типизированных элементов библиотеки FlaNium.WinAPI:
Как мы видим, использование данных методов значительно упрощает взаимодействие и сокращает код. С полным списком поддерживаемых элементов и реализованных методов можно ознакомиться по ссылке.
Мы не изобретали ничего кардинально нового, но взяв в основу преимущества Winium и FlaUI, скомпоновали продукт с удобным универсальным интерфейсом и широкими возможностями взаимодействия с тестируемым приложением. Удалось объединить протокол Selenium REST и библиотеки Windows Automation API.
Давайте рассмотрим, чем же обязан FlaNium этим двум проектам:
На момент написания статьи драйвер уже внедрен в один из наших проектов и успешно работает. Вложив силы и время в разработку собственного драйвера, удалось значительно сократить время и потратить меньше усилий на создание фреймворка и его внедрение, а также сильно упростить написание тестов.
Поскольку драйвер использует универсальный протокол взаимодействия, стало возможным использовать уже имеющийся фреймворк тестирования с некоторыми изменениями. Была добавлена работа с элементами посредством библиотеки FlaNium.WinAPI и реализована логика работы с конкретным тестируемым приложением. Также удалось избежать сложностей при работе с элементами приложения, поскольку используется полноценная библиотека взаимодействия и не возникало ситуаций, когда нет доступа к какому-либо параметру элемента.
Кроме всего перечисленного, внедрение данного драйвера позволило отказаться от вендорского ПО для тестирования, сократив стоимость автоматизации и её поддержки на значительную сумму, а также унифицировать стек технологий и требования к квалификации автоматизаторов.
Мы не останавливаемся на достигнутом и продолжаем развивать данный проект. Помимо взаимодействия с приложениями посредством Windows API ведется разработка технологии взаимодействия с приложением «изнутри» посредством инжекта исполняемой библиотеки в код тестируемого приложения. Данная технология необходима, например, для полноценного тестирования Delphi приложений, чего нельзя добиться с помощью стандартного Windows API.
Читайте также: