Как я заавтотестил счетчик сообщений. Часть 1.

Как я заавтотестил переписку между юзерами я писал тут

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

Когда к пользователю приходит новое сообщение, то счетчик этого сообщения увеличивается в нескольких местах, в сообщениях в левом верхнем углу, в сообщениях около самого контакта, счетчике сообщений в самой папке, где находится контакт, от которого пришло новое сообщение. См скрин:

 

Контакт с новыми сообщениями можно перенести из одной папки в другую. Переносим контакт 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();  //выходим 
}

А как подобные штуки заавтотестили вы в своих проектах? Поделитесь…

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.