Как я заавтотестил переписку между юзерами я писал тут
В этой статье я более или менее подробно расписал какой структуры написания автотестов я придерживаюсь. В этой статье, я хотел бы описать, как я заавтотестил работоспособность счетчика сообщений. Для начала я бы хотел в виде скриншетов показать и рассказать, как на сайте, который я тестирую, работают счетчики.
Когда к пользователю приходит новое сообщение, то счетчик этого сообщения увеличивается в нескольких местах, в сообщениях в левом верхнем углу, в сообщениях около самого контакта, счетчике сообщений в самой папке, где находится контакт, от которого пришло новое сообщение. См скрин:
Контакт с новыми сообщениями можно перенести из одной папки в другую. Переносим контакт sdfvsR из папки «Избранные» в папку «Тест»
См скрин
После переноса имеем следующее
Видим что в папке «Тест» стало 2 новых сообщения (было 1), в папке «Избранные» стало 2 новых сообщения (было 3), в папке «Общая папка» так и осталось 4 новых сообщения, так из этой папки и в эту папку мы никого не переносили. Также счетчик сообщений вверху показывает 8, так всего новых сообщений во всех папках будет 8.
Сейчас я попробую расписать как же я заавтотестил этот кейс.
Имеем следующий хелпер MessagesHelper, в котором реализованы все методы, касающиеся переписки. Об этом классе я писал в записи Как я заавтотестил переписку
В этом хелпере я реализовал следующие методы:
/*Получаю количество сообщений из «Сообщения» в левом верхнем углу*/
public int getCountersMessageOnAnketa(){
String textCountsMessageOnAnketa = findElement(By.cssSelector(«li.ui-usermenu-item a.item sup.alert.messages-counter»)).getText();
int intCountsMessageOnAnketa = Integer.parseInt(textCountsMessageOnAnketa);
return intCountsMessageOnAnketa;
}
/*Получаю количество сообщений из папки «Избранные»*/
public int getCountersFavoriteFolder(){
String textCountFavoriteFolder = findElement(By.cssSelector(«li.favorite div.unread b»)).getText();
int intCountFavoriteFolder = Integer.parseInt(textCountFavoriteFolder);
return intCountFavoriteFolder;
}
/*Получаю количество сообщений из папки «Общая папка»*/
public int getCountersGeneralFolder(){
String textCountGeneralFolder = findElement(By.cssSelector(«li.main.new-massage div.unread b»)).getText();
int intCountGeneralFolder = Integer.parseInt(textCountGeneralFolder);
return intCountGeneralFolder;
}
/*Получаю количество сообщений из папки «Тест»*/
public int getCountersTestFolder(){
String textCountTestFolder = findElement(By.cssSelector(«li.created div.unread b»)).getText();
int intCountTestFolder = Integer.parseInt(textCountTestFolder);
return intCountTestFolder;
}
/*Складываю количество сообщений со всех папок и возвращаю результат*/
public int getCountersFoldersOnAnketa() {
String textCountGeneralFolder = findElement(By.cssSelector(«li.main.new-massage div.unread b»)).getText();
String textCountFavoriteFolder = findElement(By.cssSelector(«li.favorite div.unread b»)).getText();
String textCountTestFolder = findElement(By.cssSelector(«li.created div.unread b»)).getText();
int intCountGeneralFolder = Integer.parseInt(textCountGeneralFolder);
int intCountFavoriteFolder = Integer.parseInt(textCountFavoriteFolder);
int intCountTestFolder = Integer.parseInt(textCountTestFolder);
int sumCountFolder = intCountGeneralFolder + intCountFavoriteFolder+intCountTestFolder;
return sumCountFolder;
}
Сам тест:
@Test
public void testIncrementAndDicrementCounters() throws Exception {
app.getAuthorizationHelper().openMambaUrl(); // открываем сайт
app.getAuthorizationHelper().loginMamba(«login», «password», «anketa id»); //авторизуемся
app.getMessagesHelper().clickOnMessageOnAnketa(); //кликаем на сообщения
int countersFavoriteFolder = app.getMessagesHelper().getCountersFavoriteFolder(); //получаю количество сообщений из папки «Избранные» и запоминаю результат
int countersTestFolder = app.getMessagesHelper().getCountersTestFolder(); //получаю количество сообщений из папки «Тест» и запоминаю результат
int countersGeneralFolder = app.getMessagesHelper().getCountersGeneralFolder();//получаю количество сообщений из «Общая папка» и запоминаю результат
int countMessageOnAnketa = app.getMessagesHelper().getCountersMessageOnAnketa();//получаю количество сообщений из «Сообщения» в левом верхнем углу и запоминаю результат
int countMessageAllFolder = app.getMessagesHelper().getCountersFoldersOnAnketa();/получаю количество сообщений из всех папок и запоминаю результат
/*Следующие методы переносят контакт Sdfvsd из папки «Избранные» в папку «Тест»*/
app.getMessagesHelper().clickFavouritesFolder();
app.getMessagesHelper().clickCheckBoxConatactSdfvsd();
app.getMessagesHelper().verifyLayerTransferContact();
app.getMessagesHelper().selectFolderOnTransferLayer(«Тест»);
app.getMessagesHelper().clickInputMove();
int newCountersGeneralFolder = app.getMessagesHelper().getCountersGeneralFolder();// снова получаю количество сообщений из «Общая папка» и запоминаю результат
int newCountersFavoriteFolder = app.getMessagesHelper().getCountersFavoriteFolder();// снова получаю количество сообщений из папки «Тест» и запоминаю результат
int newCounersTestFolder = app.getMessagesHelper().getCountersTestFolder();// снова получаю количество сообщений из папки «Избранные» и запоминаю результат
assertThat(newCountersGeneralFolder, equalTo(countersGeneralFolder)); //делаю сравнение, что количество сообщений в общей папке не изменилось
assertThat(newCountersFavoriteFolder, equalTo(countersFavoriteFolder-1)); //делаю сравнение что количество сообщений в папке «Избранные» уменьшилось на одно
assertThat(newCounersTestFolder, equalTo(counersTestFolder+1)); // делаю сравнение, что количество новых сообщений в папке «Тест» увеличилось на одно
assertThat(countMessageOnAnketa, equalTo(countMessageAllFolder)); делаю сравнение, что количество сообщений из «Сообщения» вверху равно количеству сообщений во всех папках
/*Следующие методы переносят контакт Sdfvsd из папки «Тест» в папку «Избранные»(возвращают тест к исходному состоянию)*/
app.getMessagesHelper().clickTestFolder();
app.getMessagesHelper().clickCheckBoxConatactSdfvsd();
app.getMessagesHelper().verifyLayerTransferContact();
app.getMessagesHelper().selectFolderOnTransferLayer(«Избранные»);
app.getMessagesHelper().clickInputMove();
/*По новой получаем количество сообщений из папок «Избранные» и «Тест»*/
int superNewCountersFavoriteFolder = app.getMessagesHelper().getCountersFavoriteFolder();
int superNewCounersTestFolder = app.getMessagesHelper().getCountersTestFolder();
/*Делаем новые сравнения (убеждаемся, что тест вернулся в исходное состояние */
assertThat(countersFavoriteFolder, equalTo(superNewCountersFavoriteFolder));
assertThat(counersTestFolder, equalTo(superNewCounersTestFolder));
assertThat(countMessageOnAnketa, equalTo(countMessageAllFolder));
app.getAuthorizationHelper().logOut(); //выходим
}
А как подобные штуки заавтотестили вы в своих проектах? Поделитесь…