Как проверить регистрацию аккаунта, если емейлы не могут повторяться

Всем привет,

есть задача написания тестов для регистрации, так как ,предположим, поле “email” не может повторяться, нужно придумать обходной путь :)))

я предполагаю создать какой-то файлик и подгружать его к определённым тестам

может кто-то подобным занимался , или есть идеи :slight_smile: буду очень благодарен :slight_smile:

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

<script> alert("XSS"); </script>

!"№;%:?*() и т.д.

можно ещё попробовать спец символы винды : Alt + …

Ну вы сами задаете вопрос и сами на него отвечаете :smile:

Я скажу так, вы сначала пробуйте делать, то что вам приходит в голову, а потом оптимизируйте код. С таким, подходом и опыт ваш подрастет.

А на счет идей, что можно сделать (если учитывать, что емейлы вы не проверяете фактически):

  1. Ваш вариант
  2. Рандомная генерация имени емейла + выполнять удаление аккаунта
  3. Рандомная генерация имени емейла + проверка наличия емейла в базе данных
  4. Использование сторонних сервисов http://www.databasetestdata.com/ http://www.generatedata.com/

спасибо,

можно поподробней про варианты 2-4 :))

  1. Скорее всего отпадёт, так как есть некоторые проблемы с удалением аккаунтов.
  2. Интересный вариант :slight_smile: но такая проверка врядли нужна для моей задачи.
  3. Вот это самое интересное :)) хотелось бы, если можно, увидеть пример

Вы не сказали самого главного - нужен валидный email, на который придет письмо с ссылкой на активацию, либо произвольный? Во втором случае Guid либо Timestamp вам в помощь.

да, спасибо, забыл уточнить , нужен набор и тех и тех :slight_smile: за совет, спасибо, гляну

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

Есть пару способов, как это можно сделать:

  1. Использовать <рандомное имя емейла>@mailinator.com http://mailinator.com/ позволяет вам создать любые емейлы и отправлять на них емейлы. Дальше, что нужно сделать так просто найти ваш емейл и посмотреть. Это можно сделать как руками так и автоматически через POP3
  2. Использовать внешний файл с данными. Заходим на какой-то из сервисов (например, http://www.generatedata.com/) , генерируем нужный файл руками, пишем код, который читает файл
  3. Я помню когда-то в интернете еще находил публичные вебсервисы, которые выдавали рандомные тестовые данные по запросу. Но сейчас названия проекта не помню. А смысл в том, что выполняешь http get запрос на определенный url, получаешь данные, используешь в тестах.

А на счет конкретных примеров, времени сейчас нет их писать. Попробуйте сами что-то сделать, а если не получиться, пишите. А на каком языке вы программируете?

На майлинаторе уже нету третьего попа B-)

Таки да, в описании сервиса уже нету об этом упоминания. Но я думаю, без проблем можно найти какую-то замену.

Зря так думаете. Это действительно проблемно. По крайней мере у меня не получилось.

Ну хорошо, надо будет попозже посмотреть. Может быть Вы и правы. Увидим :smile:

Добавил к описанию

Ну это уже совсем другие тесты. В этот топик лучше не писать все подряд. Если проблема\вопрос другой, тогда лучше создать новую тему.

ну почему другой вопрос? :slight_smile:

в принципе тот же…мне нужно, к примеру, сделать проверку эмейла, спецсимволы входят в категорию возможных вариантов…
и , если подгружать файлом, то можно их туда забить…

К примеру

   !"№@@#.net ; <script> alert("XSS"); </script>@<script> alert("XSS"); </script>.com ;

Потому что Code injection - это совсем другая тема, которая никак не коррелирует с названием вашего топика. Плюс вы смешиваете негативные и позитивные тесты - данные для которых тоже находятся по “разные стороны баррикад”.

В принципе другой. Совершенно.

Изначальный вопрос про то каким образом организовать проверку регистрации с использованием e-mail подтверждения.

Добавочный вопрос - про валидацию поля e-mail, где никаких подтверждений в принципе быть не должно.

Кстати, если кто-то понял в чём был основной вопрос, объясните пожалуйста подробнее? Имхо, у автора темы не получилось понятно сформулировать вопрос.

Поэтому, боюсь, что каждый прочитавший понял вопрос по-своему и не факт, что именно так, как хотел автор :smile:

Спасибо, я понял теперь как можно сделать,

буду юзать

генерировать случайный мейл, записывать его в метод, потом вызывать при регистрации

или ещё намного лучше :))))

    @FindBy(xpath = "//div[7]/div/div[2]/div/input")
    private WebElement email;

    public void setEmail()
    {
        element(email).type(randomString(5) + "_test" + "-test"  + "@test.com");
    }

  static final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    static Random rnd = new Random();

    String randomString( int len )
    {
        StringBuilder sb = new StringBuilder( len );
        for( int i = 0; i < len; i++ )
            sb.append( AB.charAt( rnd.nextInt(AB.length()) ) );
        return sb.toString();
    }

Лучше, но всегда есть не нулевая вероятность повторения.
Рандом коварная штука.

Согласен с @vmaximv. Рандом длиной 5 довольно мал, есть немалая вероятность (хоть и не такая большая) повторения.
Для унификации в данном случае вполне можно использовать timestamp, например. Тогда повторения не будет 100% (если только время на машине не отматывать)

2 лайка