Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Генерация рандомного суфикса адреса для email регистрации

java
Теги: #<Tag:0x00007f7b705fd460>

(Vladimir Black) #1

Приветствую!
Есть такая задача:
Тестирование регистрации на сайте. Использую gmail, так как там возможно создавать уникальные адреса вида почта+111@gmail.com, и все письма все равно будут приходить почта почта@gmail.com.
Хочу реализовать такую штуку: есть файл txt со значением “1”, его открыть, взять оттуда 1, добавить к “почта”, чтоб вышло почта+1@gmail.com, потом увеличить значение +1 (будет 2) и перезаписать это значение в файл txt для следующего теста регистрации.

Помогите, плиз, с чтением - записью файла txt. остальное уже есть


(vmaximv) #2

Ваша “штука” с инкрементированием содержимого файла - есть костыль.



(Roy Obenon) #3

Ну и потом что заново 2 брать из файла и увеличивать? Чет я вообще логики не пойму


(Vladimir Black) #4

При следующем тестировании регистрации снова открываем файл, берем оттуда 2, делаем танец с бубном, увеличиваем +1 и записываем)


#5

+1, я бы остановился на timestamp

Кстати, мне одному кажется, что тему можно бы переименовать?


(Vladimir Black) #6

так и сделаю. переименовать как?


(Postmart) #7

у меня есть похожий тест: каждый час регистрируемся на сайте и потом проверяем, что регистрационное письмо дошло, нажимаем в письме по ссылкам и так же смотрим, сколько времени ушло на доставку письма.

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

вот пример на python для генерации вашего email address с добавлением текущего времени:

from datetime import datetime
from pytz import timezone
pst = timezone("US/Pacific")

def random_email():
    return "email+" + str(datetime.now(pst).strftime('%H%M%S')) + '@gmail.com'

и потом его селениуму отдаете

rndemail = random_email()
find_element_by_id("id_email").send_keys(rndemail)

(Vladimir Black) #8

Благодарю, именно то, что надо!!!


(Artur Korobeynyk) #9

set /A /p num=<file.txt set /A num=num+1 set email=test+%num%@gmail.com echo %email% echo %num%>file.txt


(vmaximv) #10

Прикольная у вас “java”.


(Vladimir Black) #11

Вот результаты:
public void regMethod () throws Exception {
DateFormat df = new SimpleDateFormat(“ddMMyyyyHHmmss”);
Date today = Calendar.getInstance().getTime();
String todayDate = df.format(today);
String newmail = “mailfortest+” + todayDate + "@gmail.com";
driver.findElement(By.xpath("//div[@id=‘ytLoginRegistration’]/div/input")).clear();
driver.findElement(By.xpath("//div[@id=‘ytLoginRegistration’]/div/input")).sendKeys(newmail);
driver.findElement(By.xpath("//div[@id=‘ytLoginRegistration’]/div/input[2]")).clear();
driver.findElement(By.xpath("//div[@id=‘ytLoginRegistration’]/div/input[2]")).sendKeys(“");//вводим пароль
driver.findElement(By.xpath("//div[@id=‘ytLoginRegistration’]/div/input[3]")).clear();
driver.findElement(By.xpath("//div[@id=‘ytLoginRegistration’]/div/input[3]")).sendKeys("
”);//повторяем пароль
driver.findElement(By.xpath("//button[@onclick=‘auth.onRegister();’]")).click();


(Женя Воронкин) #12

/**

  • Метод генерирующий случайный email (Java) - у меня так, может кому полезно будет =)
    */
    public static String randomEmail() {

    int length = 5;
    String name = “0123456789abcdefghijklmnopqrstuvwxyz”;
    String firstDomain = “0123456789abcdefghijklmnopqrstuvwxyz”;
    String secondDomain = “0123456789abcdefghijklmnopqrstuvwxyz”;

    String email = new String();

    StringBuilder sb = new StringBuilder(length);
    for (int i = 0; i < length; i++)
    sb.append(name.charAt(random.nextInt(name.length())));
    email += sb;

    sb = new StringBuilder(length);
    for (int i = 0; i < length; i++)

sb.append(firstDomain.charAt(random.nextInt(firstDomain.length())));
email += “@” + sb;

sb = new StringBuilder(length);
for (int i = 0; i < length; i++)

sb.append(secondDomain.charAt(random.nextInt(secondDomain.length())));
email += “.” + sb;

return email;

// пример - .SendKeys(randomEmail());

}


(Artur Korobeynyk) #13

А, точно, перешел на тему с твиттера, тега джавы не заметил.


(sidelnikovmike) #14

Еще есть RandomStringUtils от apache. Там таких вещей с генерацией рандомных вещей -куча


(Jamie Berry) #15

Да, проще всего генерировать через текущую дату + время, примерно у меня это выглядит так:
var d=new Date(); ‘gmail.address+’ + d.getDate()+((d.getMonth()+1))+d.getFullYear() + d.getTime()+’@gmail.com’;


#16

Я делал вот так

import org.apache.commons.lang3.RandomStringUtils;
String email = "mail"+RandomStringUtils.randomNumeric(length) + "@gmail.com";