Тестирование приложения Facebook Connect с использованием Selenium? - PullRequest
5 голосов
/ 13 января 2012

Есть ли у кого-нибудь опыт использования Selenium для автоматизации тестирования веб-приложения, использующего Facebook Connect для входа в систему?Какие-либо советы или методы, которые вы рекомендуете?

1 Ответ

1 голос
/ 15 января 2012

Зависит от того, что вы хотите сделать?

  1. Будете ли вы использовать реального реального пользователя Facebook (телефон проверен Facebook)?

    Самый безопасный и надежный, но очень сложный ( невозможный ) сбор «реальных» пользователей (телефон проверен FB).

    С точки зрения определения аспектов сведений о пользователе / ​​соединениях, таких как история образования, история работы, имя, возраст и т. Д. (Особенно если у вас нет доступа ко всем «реальным» учетным записям Facebook).

  2. Поддельные пользователи Facebook, созданные для тестирования приложения (не проверено Fb)?

    Вероятно, самый простой в настройке, так как все являются поддельными пользователями, проверка телефона (с FB) не требуется. Но идентификаторы электронной почты для всех пользователей должны быть созданы.

    Даже если информация о соединении может быть настроена по вашему вкусу. Один из главных недостатков (и это случилось со мной): если Fb обнаружит, что пользователь не является законным, FB заблокирует все учетные записи. Это сделало бы все ваши Fb специфичными для пользователя автоматизированными тестами бесполезными в мгновение ока. И вы ничего не можете сделать (если вы не планируете получить совершенно новое телефонное соединение для проверки этих учетных записей, ни номер Google, ни Skype, ни телефоны на основе IP. Разрешено очень строго FB). Также один номер может авторизовать только 1 аккаунт.

  3. Будете ли вы использовать API-интерфейсы Facebook для создания тестовых пользователей Fb?

    Вероятно, идеальный способ (по мнению FB) использовать Facebook connect для тестирования вашего приложения. нажмите здесь для получения документации о том, как его использовать.

    Это может показаться прямым, но у него есть свои недостатки (основные). Очень ненадежный, API возвращает ошибку 10-20% времени, а в остальное время очень медленно. Невозможно восстановить пароль тестового пользователя FB, если один раз потерян. Информация о соединении не может быть легко настроена. Требуется немало усилий, чтобы что-то настроить, не будучи уверенным, что это работает каждый раз.

Я лично выбрал второй вариант. Facebook определяет легитимность пользователя (я полагаю) на основе параллельных входов в систему через несколько ips. У меня есть селен RC, работающие на разных серверах, которые проводят эти тесты параллельно, что могло бы поднять красный флаг. Поэтому я просто планирую эти сценарии более организованно, чтобы избежать совпадений при входе в систему.

Я надеюсь, что в этом длинном объяснении вы найдете свой ответ. :)


Для реализации на Perl -

$sel->start();
$sel->open_ok("$URL");
$sel->set_speed("500");
$sel->click_ok("//img[\@alt='Facebook']",'User clicks on Facebook Login');
$sel->wait_for_pop_up_ok("", "30000",'Facebook Login Popup Loading');
$sel->select_pop_up("null");    
$sel->type_ok("email", "email\@email.com",'User enters Facebook credentials - Username');
$sel->type_ok("pass", "password",'User enters Facebook credentials - Password');
$sel->key_press("pass", "\\13",'User returns Facebook Login credentials');
$sel->select_window("null");
...