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