У нас есть сложное веб-приложение, которое использует много JavaScript вместе с XMPP и Rails-приложением. Это дошло до того, что нам нужно протестировать всю систему из конца в конец. Мы должны иметь возможность гарантировать, что различные задачи могут быть выполнены без ошибок, одной из таких задач было бы обсуждение сеанса чата 1 на 1 с другой стороной в системе. Поскольку все задачи нашего приложения позволяют пользователю взаимодействовать с пользователем, мы хотели бы иметь возможность имитировать это, одновременно управляя двумя браузерами, которые обмениваются данными через веб-приложение. Я подумывал использовать селен или watir и их функции ожидания, чтобы дождаться конкретных событий, прежде чем продолжить. Например:Управление несколькими браузерами, которые взаимодействуют друг с другом
- открытые браузеры 2 на нашем сайте
- браузер 1 ожидает вопрос будет опубликован
- браузер 2 публикует вопрос, то ждет предложение, чтобы получить
- браузер 1 видит вопрос, направляет предложение и ждет, чтобы он был принят
- браузер 2 видит предложение и принимает его, то ждет сеанса чата, чтобы начать
- и т.д ...
Я вижу, что такое тестирование становится довольно сложным, чтобы писать и поддерживать. Он будет опираться на конкретные элементы страницы, поэтому, если они будут изменены, тесты необходимо будет изменить. Также, если мы немного изменим поток приложения, костюм, вероятно, потребуется довольно сильно изменить.
Итак, мой вопрос: кто-нибудь пробовал такое тестирование? Если да, то какие инструменты вы бы предложили использовать и у вас есть какие-либо советы по написанию тестов?
Нам нужно будет управлять фактическими браузерами, а не без головы, и для этого необходимо будет интегрировать это с нашим CI, в настоящее время мы используем Sauce Labs и селен в рамках нашей установки CI.
На данный момент у нас есть обширные тесты, охватывающие каждую часть системы, приложение Rails, JavaScript и бот, который находится на нашем сервере XMPP ejabberd. До этого момента мы проводили ручные тесты, хотя мы, вероятно, не тестируем так широко, как должны быть. Одна из проблем, с которыми мы столкнулись, заключается в том, что во время ручного тестирования все пропущено, количество тестов для кросс-тестов растет довольно много, и это становится довольно сложной задачей, чтобы проверить все это во время QA, поскольку мы небольшая команда. Возможно, решение такое, как вы говорите, чтобы использовать наше приложение и использовать его вместо внутренней электронной почты и IM – JamieD