Приветствую!
Есть такая задача:
Тестирование регистрации на сайте. Использую gmail, так как там возможно создавать уникальные адреса вида почта+111@gmail.com, и все письма все равно будут приходить почта почта@gmail.com.
Хочу реализовать такую штуку: есть файл txt со значением “1”, его открыть, взять оттуда 1, добавить к “почта”, чтоб вышло почта+1@gmail.com, потом увеличить значение +1 (будет 2) и перезаписать это значение в файл txt для следующего теста регистрации.
Помогите, плиз, с чтением - записью файла txt. остальное уже есть
vmaximv
(vmaximv)
25.Ноябрь.2015 11:29:02
#2
Ваша “штука” с инкрементированием содержимого файла - есть костыль.
GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико (2128 или 3,4028×1038), что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, крайне мала.
«GUID» назыв...
Временна́я метка (также метка времени или timestamp с англ. — «временна́я печать») — это последовательность символов или закодированной информации, показывающей, когда произошло определённое событие. Обычно показывает дату и время (иногда с точностью до долей секунд).
Термин пришёл от сургучных печатей, используемых в офисах / на почте, чтобы отпечатать текущую дату (иногда и время) в подписи бумажных документов или записать, когда документ был принят. Типичные примеры метки времени — штемпель н...
bing278
(Roy Obenon)
25.Ноябрь.2015 11:33:12
#3
Ну и потом что заново 2 брать из файла и увеличивать? Чет я вообще логики не пойму
При следующем тестировании регистрации снова открываем файл, берем оттуда 2, делаем танец с бубном, увеличиваем +1 и записываем)
olyv
25.Ноябрь.2015 12:24:41
#5
+1, я бы остановился на timestamp
Кстати, мне одному кажется, что тему можно бы переименовать?
так и сделаю. переименовать как?
postmart
(Postmart)
25.Ноябрь.2015 12:50:21
#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)
Благодарю, именно то, что надо!!!
arturk
(Artur Korobeynyk)
25.Ноябрь.2015 13:36:49
#9
set /A /p num=<file.txt set /A num=num+1 set email=test+%num%@gmail.com echo %email% echo %num%>file.txt
Вот результаты:
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();
/**
Метод генерирующий случайный 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());
}
1 лайк
arturk
(Artur Korobeynyk)
26.Ноябрь.2015 08:40:19
#13
А, точно, перешел на тему с твиттера, тега джавы не заметил.
Еще есть RandomStringUtils от apache. Там таких вещей с генерацией рандомных вещей -куча
Да, проще всего генерировать через текущую дату + время, примерно у меня это выглядит так:
var d=new Date(); ‘gmail.address+’ + d.getDate()+((d.getMonth()+1))+d.getFullYear() + d.getTime()+’@gmail.com ’;
1 лайк
Artyom
01.Декабрь.2015 18:07:48
#16
Я делал вот так
import org.apache.commons.lang3.RandomStringUtils;
String email = "mail"+RandomStringUtils.randomNumeric(length) + "@gmail.com";
1 лайк