t.me/atinfo_chat Telegram группа по автоматизации тестирования

Selenide. Повторение теста несколько раз

Теги: #<Tag:0x00007f748e5c3078> #<Tag:0x00007f748e5c2f38> #<Tag:0x00007f748e5c2e48> #<Tag:0x00007f748e5c2d58>

Здравствуйте. Необходимо сделать так, чтобы тест выполнялся n раз
Я делал это через аннотацию для @Test.
Вот пример.
Подскажите пожалуйста какие варианты возможны еще ? (без использования invocationCount)

import org.testng.annotations.Test;
import static com.codeborne.selenide.Selenide.*;

public class Google {
    @Test(invocationCount = 80)
    public void something() {
        open("http://google.com/");
        
        closeWebDriver();
        sleep(4000);
    }

}

вы тесты как запускать собираетесь?

а вообще селенид умеет тесты выполнять без закрытия браузера, зачем выключать его, да ещё и ждать 4 секунды?

А зачем вам другие варианты?

для общего развития

Цените пожалуйста время других. У гугла спрашивали?

спросил, гугл не дал ничего кроме invocationCount = 80
Ваш ответ имеет какое-то отношение к моему вопросу или это оффтоп ?

Я вижу ещё два способа:
https://testng.org/doc/documentation-main.html#annotationtransformers
https://testng.org/doc/documentation-main.html#running-testng-programmatically

Самый простой и надёжный вариант:

public class Google {
    @Test
    public void something() {
       for (int i = 0; i < 80; i++) {
        open("http://google.com/");       
        closeWebDriver();
        sleep(4000);
      }
    }
}
6 Симпатий

Странный вопрос! Зачем изобретать велосипед?

1 Симпатия

Спасибо, Андрей

Взять в цикл настолько примитивно, что практически никто не догадался так сделать… :slight_smile:

Хм… Ну вообще-то тест (то что обозначено аннотацией @Test) выполнится 1 раз :laughing:

верно, setup и teardown не будут работать, по сути это повторение логики, а не теста, мне почему то кажется автор хотел вычислять количество повторений тестов, поэтому ему и не подошел способ через атрибут

Андрей дал правильный пример
Количество “циклов” теста я задавал вручную через @Test(invocationCount = 80), но я не хочу его использовать. Было интересно, есть ли какие-то варианты, например может что то в Selenide встроенное, я новичок в автоматизации.
Но вот до цикла я не догадался. И это будет наилучшее решение.

Вопрос был “Повторение теста несколько раз”.
Тест не будет повторен несколько раз, всё это будет одним тестом.
Значит это не решение вовсе.
Но хозяин барин, конечно.

1 Симпатия

Чем вас не устраивает это решение?

И ещё вопрос, а причём тут selenide?