Последняя миля к надежной автоматизации тестирования

Наша основная цель в Gauge - избавиться от проблем при проведении приемочных испытаний.

Любопытный случай «нестандартного теста»

Когда дело доходит до обслуживания тестов, команды больше всего жалуются на «нестабильные тесты».

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

Тесты часто терпят неудачу, потому что они

  • Невозможно обработать изменения в структуре страницы (например, изменение HTML для рендеринга элемента) и / или
  • Ожидание появления элементов на странице (например, одностраничные приложения, в которых элементы меняются без перезагрузки страницы)

Таким образом, команды заканчивают тем, что получают «ненадежные наборы тестов» и игнорируют неудачные тесты, чтобы решить эту проблему.

Несомненно, есть лучший способ сделать тестирование более надежным.

Представляем Тайко

Мы создали Taiko, чтобы сделать автоматизацию браузера надежной.

Taiko - это бесплатный инструмент автоматизации браузера с открытым исходным кодом, созданный командой ThoughtWorks, стоящей за Gauge. Это библиотека Node.js для автоматизации браузера Chrome. Taiko создан специально для тестирования современных веб-приложений.

Taiko создает легко читаемые и поддерживаемые тесты JavaScript. Простой API, умные селекторы и неявное ожидание работают вместе для достижения единой цели - Больше никаких нестандартных тестов.

Борьба с «ненадежностью» с помощью Smart Selectors и API Taiko

Taiko Smart Selectors помогает тестировать веб-приложения вне зависимости от внутренней структуры страницы. Taiko тестирует веб-приложения как пользователь, а не как разработчик.

Например, вот фрагмент кода для Google для «автоматизации калибровочного тестирования» с использованием Selenium WebDriver.

var browser = new webdriver.
                 Builder().
                 usingServer().
                 withCapabilities({'browserName': 'chrome' }).
                 build();

browser.get('http://www.google.com');

// Uses HTML locators, elements, form submissions etc.
browser.findElement(webdriver.By.name('q')).sendKeys('gauge test automation');
browser.findElement(webdriver.By.name('btnG')).click();

по сравнению с тем же тестовым скриптом в Тайко.

openBrowser()
goto(“https://www.google.com”)

// API for testing like a user
write(‘gauge test automation’)
press(‘Enter’)

Как видите, в Taiko тестировщикам не нужно знать базовый код, что снижает вероятность сбоев теста при рефакторинге кода без изменения функциональности.

API Taiko распознает действия, которые запускают запрос XHR или получают динамический контент.

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

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

var browser = new webdriver.
                    Builder().
                    usingServer().
                    withCapabilities({'browserName': 'chrome' }).
                    build
browser.get('http://www.google.com')

function findGaugeLink() {
    return browser.findElements(webdriver.
                                By.css('[href="https://gauge.org"]')).
                                then((result) => result[0]);
}

browser.get('https://www.google.com');
browser.findElement(webdriver.By.name('q')).sendKeys('gauge test automation');
browser.findElement(webdriver.By.name('btnG')).click();
browser.wait(findGaugeLink, 2000).then((link) => link.click())

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

openBrowser()
goto(“https://www.google.com”)

write(‘gauge test automation’)
press(‘Enter’)
click(‘Open Source Test Automation Framework | Gauge’)

Taiko находится на стадии бета-тестирования, и мы хотим (простите за каламбур!) Оценить ваш опыт и возможности, которые делают автоматизацию тестирования восхитительной.

Мы будем рады вашим отзывам о Тайко, и вот как вы можете начать работу.

Начните с Gauge и Taiko

Использование Taiko с Gauge (которое продвигает многоразовые спецификации на основе уценки) минимизирует количество кода между спецификацией Gauge и тестовым скриптом Taiko.

Уменьшение объема кода уменьшает количество ошибок и упрощает обслуживание.

Taiko работает в Windows, MacOS и Linux.

Чтобы начать писать скрипты Taiko на JavaScript, в вашей системе должен быть установлен Node.js. После установки Node.js откройте приложение терминала (или PowerShell в случае Windows).

Установите Gauge и Taiko с помощью npm, а затем инициализируйте образец проекта с помощью

npm install -g @getgauge/cli

и инициализировать образец проекта, используя

gauge init js

После создания проекта вы можете запустить образец спецификации.

gauge run specs

Установить как отдельную библиотеку

Вы также можете установить Taiko как отдельную библиотеку, используя

npm install -g taiko

Теперь вы готовы начать пользоваться Taiko! Вы можете узнать больше об использовании Taiko из документации.

В Gauge мы стремимся сделать автоматизацию тестирования простой и легкой в ​​обслуживании. Если у вас есть какие-либо предложения по Gauge (улучшения, запросы функций и т. Д.), Обращайтесь к нам.