Как автоматизировать диалог онлайн пользователей? (mobile)

Приветствую!

Столкнулась со следующей задачей: нужно для мобильных телефонов автоматизировать тест, проверяющий диалог двух пользователей. Типичные проверки: горит ли у собеседника значок “онлайн”, появляется ли у отправленных сообщений статус “прочитано”, т.е. авто-тест каким-то образом должен одновременно действовать за обоих собеседников. Как это можно реализовать?

Пока в голове только две идеи: покопаться в возможностях Selenium Grid (а я с этим инструментом очень плохо знакома, возможно он в моей ситуации может чем-то помочь) или использовать Sikuli - вывести на экран два мобильных эмулятора и действовать как “юзер справа” и “юзер слева”.

Это для мобильных устройств тесты или для веб приложения?

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

1 лайк

Спасибо большое! Это для мобильного native приложения. Уже опробовала предложенный вами способ - именно то, что нужно! Почему-то мне никогда не приходило в голову, что можно создать несколько драйверов :slight_smile:

1 лайк

Действительно два драйвера - эффективная и простая идея + я еще в свое время в testng конфиг файлах расставлял приоритеты для того, что бы test runner знал какие тесты нужно выполнить сейчас (на первом или втором драйвере). Еще есть вариант погуглить на тему octopus automation framework, кажется от uber - они создавали его специально для таких целей как можно догадаться, но по-моему настроить его будет очень сложно.

можно еще написать юзера-бота который всегда онлайн и отвечает на сообщения к себе

2 лайка

Не стоит выстраивать зависимости между тестами, это плохо говорят :smile:

Пометь как ответ моё сообщение :blush:

А по-моему, тестирование нужно разделять на части и тестировать их по отдельности. И проверять именно отправку сообщения и получение сообщения по отдельности. Статус о том, что пользователь “активен” все равно приходит от сервера и нужно именно убедиться, что если пришел от сервера флажок “true”, то отображается “Активен”, пришло “false” - не активен. И таким же образом проверять выставление статуса пользователя на сервере. Войти в приложение -> убедиться, что на сервере выставился нужный флаг (поле\параметр).
А для создания необходимых состояний манипулировать либо данными на сервере, либо через прокси.
Таким образом, не нужно будет два устройства, драйвера и тд. плюс мы делаем декомпозицию задачи. То есть, если в Вашем случае упадет тест, не понятно, что не работает, отправка сообщения с устройства, может серверная часть, а может получение сообщения другим устройством. В вышеуказанном случае можно будет однозначно сказать, какой модуль не работает.

4 лайка

Согласен на все 100%, больше так не делаю, так как больше практически не использую testng runner-ы, я был молод - мне нужны были автотесты)