Ускорьте тестирование Salesforce с помощью ИИ и автоматизации

Selenium

通过AI和自动化加速Salesforce测试

существуетпредыдущий постВ статье я даю несколько советов и рекомендаций по тестированию приложений Salesforce с помощью Selenium. Salesforce предоставляет гибкую среду разработки, которая позволяет разработчикам абстрактно определять свою бизнес-логику и элементы пользовательского интерфейса, чтобы Salesforce могла реализовать эти элементы на странице.

Эта гибкость достигается за счетАвтоматизация тестирования пользовательского интерфейсапо цене. Потому что разработчик не имеет прямого контроля над конечным контентом в браузере. Общеизвестно, что корпоративные приложения Salesforce сложно тестировать с помощью сред автоматизации с открытым исходным кодом, таких как Selenium.

Почему сложно тестировать Salesforce с Selenium?

Подводя итог проблемам, которые я обсуждал в своей предыдущей статье, приведем несколько причин, по которым тестирование приложений Salesforce с помощью Selenium сложно автоматизировать.

идентификатор динамического элемента

Идентификаторы элементов в приложении Salesforce выглядят очень странно, например, id="940:1376;a". Хуже того, идентификаторы меняются случайным образом между посещениями страниц. Это делает идентификаторы бесполезными для автоматизации тестирования.

Облачные корпоративные приложения работают медленно

Несмотря на свое название «Lightning», облачные корпоративные приложения Salesforce иногда могут работать довольно медленно. Инженеры по автоматизации тестирования знакомы с проблемами, связанными с медленным откликом приложений. Если тестовый сценарий попытается выполнить следующий шаг до того, как приложение будет готово, произойдет сбой.

Запоминание и повторная инициализация компонентов пользовательского интерфейса Lightning

Еще одна сложная проблема с автоматизацией тестирования пользовательского интерфейса заключается в том, что Salesforce запоминает, какие компоненты пользовательского интерфейса Lightning были открыты последними, и повторно инициализирует последнее известное состояние при входе в систему. Это означает, что исходный макет страницы, доступный для тестирования, изменяется на основе сохраненной истории.

Частые обновления программного обеспечения Salesforce

Пользовательский интерфейс Salesforce Lightning обновляется несколько раз в год. Каждое обновление может привести к сбою в автоматизации тестирования пользовательского интерфейса. В этом случае для правильной работы автоматизации тестирования при таком частом графике обновлений требуется самовосстановление на основе ИИ.

Я даю советы и методы решения этих проблем в этой статье (20.10.1). для решения этих задач. Хотя они отлично подходят для того, чтобы заставить Selenium работать с приложениями Salesforce, это все равно требует много работы. К счастью, есть несколько инструментов, которые могут помочь.

Расширьте возможности автоматизированного тестирования пользовательского интерфейса Selenium с помощью технологии искусственного интеллекта.

Parasoft Selenic эффективно автоматизирует создание тестов Selenium и упрощает обслуживание тестов. Selenic позволяет записывать взаимодействие с корпоративными приложениями Salesforce прямо в браузере. Затем легко создавайте тестовые классы Selenium, в которых используются все эти методы.

Интегрированный регистратор Parasoft Selenic обеспечивает выбор приложения, поэтому вы можете выбрать сбор атрибутов, специфичных для Salesforce, при записи действий пользовательского интерфейса. Затем Selenic включает эти атрибуты при создании тестов пользовательского интерфейса Selenium и использует методы искусственного интеллекта для самовосстановления тестов. Сломан из-за изменения локатора или состояния ожидания.

Но ждать. есть еще!

Вы также можете использовать тестирование API и виртуализацию сервисов, чтобы сделать тестирование Salesforce лучше, быстрее и дешевле. Давайте посмотрим, как Parasoft может помочь вам достичь всех трех целей.

Лучше протестируйте свое приложение Salesforce

Трудности с использованием автоматизации в приложениях Salesforce, как правило, приводят к плохому тестированию. Покрытие тестами может быть низким, а для увеличения покрытия требуется значительно больше работы. Чтобы лучше тестировать эти приложения, решения по автоматизации тестирования должны упростить создание и обслуживание тестов.

Selenic записывает взаимодействия с пользовательским интерфейсом во время выполнения приложения и использует это для создания повторно используемого теста Selenium. Используя подключаемый модуль ведения журналов для Chrome, Selenic перехватывает все взаимодействия с пользовательским интерфейсом во время выполнения приложения и использует объектную модель страницы Selenium для идентификации элементов, что улучшает возможность уникальной идентификации локаторов, несмотря на использование нетипичных идентификаторов в приложениях Salesforce.

Рабочий процесс создания тестов с помощью Selenic показан ниже. Взаимодействия приложений записываются в браузере вместе с соответствующими вызовами API (подробнее об этом позже) и превращаются в проекты Selenium Java в IDE.

四张屏幕截图顺时针从Salesforce应用开始,箭头指向Selenic记录,箭头指向Selenic IDE插件,最后一个箭头指向Selenium测试结果。

Тесты можно быстро и легко создавать из существующих тестовых сценариев и преобразовывать в тесты Selenium в среде IDE.

Что происходит, когда все меняется?

Тесты Selenium несколько хрупкие и очень быстро перестают работать при изменении приложения. Selenic помогает вам, обеспечивая самовосстановление этих сломанных тестов.

Selenic продолжает записывать взаимодействия при последующих запусках тестов, чтобы обнаруживать изменения с момента последней тестовой версии и обновлять тесты на основе обнаруженных различий, таких как неудачные локаторы и условия ожидания.

Selenic также отслеживает показатели производительности во время записи, что полезно для сравнительного анализа и устранения проблем с производительностью. Общий рабочий процесс самовосстановления Selenic показан ниже.

Selenic配置器启用自愈的屏幕截图,箭头向右指向修改Salesforce应用,向下箭头指向Selenic自愈报告。

Эвристика искусственного интеллекта Selenic диагностирует сбои теста и автоматически корректирует отсутствующие элементы, чтобы «исцелить» тест. Это работает непосредственно из IDE, как показано здесь, и одинаково хорошо работает в конвейере CI/CD. Рекомендации из наблюдаемых тестов можно импортировать в IDE и обновлять одним щелчком мыши.

Автоматическое создание в сочетании с самовосстановлением гарантирует, что тесты Selenium станут менее хрупкими и их будет легче поддерживать для приложений Salesforce. Это должно помочь командам значительно улучшить автоматизированное тестирование, поскольку они могут надежно документировать целые наборы тестов и повторно использовать их без традиционных проблем, которые мешают тестированию Selenium. Эти тесты с меньшей вероятностью сломаются из-за изменений пользовательского интерфейса и их легко поддерживать на протяжении всего жизненного цикла разработки.

Ускорение тестирования пользовательского интерфейса очень полезно, и рентабельность инвестиций в тестирование Selenium на уровне пользовательского интерфейса того стоит. Даже с этими улучшениями тестирование пользовательского интерфейса по-прежнему остается узким местом, а тестирование бизнес-логики на уровне API более эффективно.

Тестируйте свое приложение Salesforce быстрее

К счастью, при использовании Selenic для записи сценариев тестирования пользовательского интерфейса вы также можете использовать Parasoft SOAtest для записи происходящих взаимодействий с API. Эти записи, как и взаимодействия с пользовательским интерфейсом, можно повторно использовать, параметризовать и изменять для создания сценариев тестирования API.

SOAtest использует технологию искусственного интеллекта для анализа сложных шаблонов и локаторов трафика данных и их объединения в организованные тесты API. Затем эти тесты API можно применять к приложениям для проверки той же логики, но без взаимодействия с пользовательским интерфейсом. Это значительно сокращает накладные расходы на тестирование, а с некоторой настройкой тестирование API можно свести к минимальному взаимодействию, необходимому для тестирования конкретного варианта использования. Типичный рабочий процесс для тестирования API приложения Salesforce с помощью SOAtest показан ниже.

Salesforce 应用程序运行的屏幕截图,UI 执行时间为 32 秒 + 箭头指向 API 执行时间为 19s 的 SOAtest 记录,箭头指向执行时间为 6 秒的优化测试屏幕截图。

Метод проверки бизнес-логики на уровне тестового API такой же, как и в исходном тестовом примере пользовательского интерфейса, но время выполнения значительно сокращается. До 97%. Это означает, что время, необходимое для набора тестов, значительно сокращается, а также предоставляется возможность расширить тесты для проверки частей бизнес-логики, которые пропущены на уровне пользовательского интерфейса.

Тесты API SOAtest предназначены для повторного использования и параметризации по мере необходимости. Создавайте новые сценарии на основе исходных записей, добавляя при необходимости наборы данных, созданные тестировщиком, и автоматически сгенерированные данные. Теперь, расширив набор тестовых данных, можно получить полный набор тестов API из одной записи.

SOAtest API消息模式的屏幕截图指向数据源+数据生成器的屏幕截图指向新的API测试屏幕截图。

Воспользовавшись этими гибкими тестами API, мы можем тестировать больше приложений, потому что мы эффективно устранили зависимость от большинства тестов пользовательского интерфейса. Эта независимость означает, что тесты могут быстро масштабироваться и выполняться быстрее в плане разработки.

Конечно, тестирование API — это здорово, но все еще есть проблемы со средой выполнения тестов. Ни одна корпоративная система не является независимой от внешних служб и устаревших систем. Это часто бич тестировщиков, потому что они либо полностью исключают тестирование производственных систем, требуя разумной эмуляции в лаборатории, либо делают интеграционное тестирование чрезвычайно рискованным. Именно здесь виртуализация сервисов становится критически важной для разделения зависимостей этих производственных систем.

Протестируйте свое приложение Salesforce дешевле

Услуги виртуализации, предоставляемые такими инструментами, как Parasoft Virtualize, имеют решающее значение для отделения тестируемого приложения от сложных производственных сред. Мок-зависимости означают, что тестируемое приложение отделено от производственной среды.

Это обеспечивает полный контроль над данными, развертывание по запросу, а также возможность распараллелить и значительно ускорить тестирование без затрат на оплату API, лабораторий тестирования или нарушения работы производственных систем.

Менеджер среды Parasoft CTP может нарисовать тестовую среду для тестируемого приложения и при необходимости настроить фиктивные службы. Эти сервисы могут давать реалистичные ответы и поддерживать модели данных, имитирующие реальные сервисы.

CTP предоставляет модель данных для виртуализированных служб и возможность управлять наборами данных, связанными с этой моделью данных. Сложность виртуализированных сервисов масштабируется в соответствии с потребностями тестируемого приложения.

Parasoft CTP环境管理器的屏幕截图,显示了虚拟化服务的数据模型,并向下指向另外两个屏幕截图。Parasoft CTP数据模型+数据集编辑器。

Виртуализация сервисов упрощает и удешевляет интеграционное тестирование. Это также означает раннее тестирование. Вы можете перемещать API и интеграционные тесты левее, чем раньше.

Самое главное: улучшите сотрудничество между командами

Ключевым преимуществом автоматизации тестирования является возможность сбора данных и результатов во время выполнения теста. Parasoft DTP собирает и анализирует данные различных методов тестирования, используемых командами, для создания централизованного представления о качестве. Кроме того, он может сопоставлять эти результаты тестирования с пользовательскими историями в вашем инструменте управления требованиями, таком как Jira.

Возможность «связать точки» между вариантами использования, результатами тестирования, покрытием кода и общим состоянием имеет решающее значение для принятия обоснованных решений. Совместная работа в команде улучшается, так как все видят один и тот же источник правды о состоянии приложения и могут действовать на основе одной и той же информации по мере необходимости.

Salesforce Apps 仪表板的屏幕截图,以甜甜圈和饼状图和图表的形式显示测试趋势和覆盖率。

Эпилог

Автоматизация тестирования приложений Salesforce может быть обременительной. Тестирование пользовательского интерфейса с помощью Selenium возможно, но требует много времени без дополнительной помощи инструментов. Parasoft Selenic предоставляет именно ту помощь, которая необходима для того, чтобы сделать тестирование приложений Salesforce на основе Selenium практичным и улучшить результаты тестирования на основе пользовательского интерфейса.

Тестирование на основе пользовательского интерфейса важно, но это неэффективный способ проверки всей бизнес-логики приложения. Тестирование API ускоряет тестирование приложений, улучшая покрытие тестами.

Можно выполнить больше тестов за меньшее время, чем тестирование пользовательского интерфейса. Влияние тестирования API еще больше повышается за счет виртуализации служб, которая отделяет ваше приложение Salesforce от его сложной и дорогостоящей производственной среды. Мощная комбинация Parasoft SOAtest, Virtualize и CTP означает, что тестирование является более комплексным и может начинаться на более ранних этапах цикла разработки.

Наконец, совместная работа в команде также улучшается благодаря централизованному представлению о качестве за счет автоматизации тестирования на всех уровнях приложения. Parasoft DTP предоставляет важную информацию для принятия обоснованных решений и повышает способность организации сосредоточиться на инновациях.