Тестирование нагрузки Rest Api Zerocode tdd с сообщением об ошибке

Я автоматизирую свой rest API и ищу среду тестирования производительности для использования с моим junit5. Я наткнулся на zerocode tdd, но он не помогает, выдает ошибку, и все тесты проваливаются. Мой тестовый метод правильный и работает, когда он обычно вызывается junit jupiter. Когда я использую zerocodeLoadRunner для того же, он не работает.

    import org.jsmart.zerocode.core.domain.LoadWith;
    import org.jsmart.zerocode.core.domain.TestMapping;
    import org.jsmart.zerocode.core.runner.parallel.ZeroCodeLoadRunner;   
    import org.junit.runner.RunWith;

    @LoadWith("loadConfig.properties")

    @TestMapping(testClass = MyTest.class, testMethod = "myMethod")

    @RunWith(ZeroCodeLoadRunner.class)

    public class LoadTest  {

    }

Сообщение об ошибке, которое я получаю, выглядит следующим образом.

    2019-09-09 12:35:57,191 [main] ERROR org.jsmart.zerocode.core.runner.parallel.ZeroCodeLoadRunner - myPackage.LoadTest.myMethod Failed. See target/logs -or- junit granular failure report(csv) -or- fuzzy search and filter report(html) for details

Зависимость, используемая для этого, выглядит следующим образом

    <dependency>
        <groupId>org.jsmart</groupId>
        <artifactId>zerocode-tdd-jupiter</artifactId>
        <version>1.3.8</version>
    </dependency>

Я не хочу использовать какой-либо инструмент тестирования, поэтому я использую это.


person Abhishek pruthvi V M    schedule 09.09.2019    source источник
comment
Вы можете проверить gatling.io, это открытый исходный код, но довольно большой и мощный.   -  person Andronicus    schedule 09.09.2019
comment
LoadRunner или jMeter, тогда как JMeter является бесплатной программой LoadRunner — коммерческим инструментом.   -  person Dinesh Kondapaneni    schedule 09.09.2019
comment
Я не хочу использовать какой-либо инструмент. Я хочу включить его в свой набор тестов.   -  person Abhishek pruthvi V M    schedule 09.09.2019
comment
Привет, добро пожаловать в SO. Возможно, вам повезет получить ответ здесь, если вы будете придерживаться 1 вопроса за раз - я бы посоветовал вам обновить свой вопрос, чтобы спрашивать только о помощи с zerocode tdd, так как запрос рекомендаций по инструментам выходит за рамки вопросов по этому сайт.   -  person kenny_k    schedule 09.09.2019


Ответы (2)


Выполненная вами настройка работает для JUnit4 (но не для JUnit5, поскольку JUnit5 не поддерживает Runners). Для JUnit5 необходимо использовать следующее расширение нулевого кода.

@ExtendWith({ParallelLoadExtension.class})

Это JUnit5-Jupiter-Parallel-Load -Расширение содержит точные данные. Пожалуйста, попробуйте следующий способ:

e.g.

@LoadWith("load_generation.properties")
@ExtendWith({ParallelLoadExtension.class})
public class JUnit5LoadCommonLoadTest {

    @Test
    @DisplayName("testing parallel load for X, Y and Z scenarios")
    @TestMappings({
            @TestMapping(testClass = JUnit5Test.class, testMethod = "testX"),
            @TestMapping(testClass = JUnit5Test.class, testMethod = "testY"),
            @TestMapping(testClass = JUnit5MoreTest.class, testMethod = "testZ")
    })
    public void testLoad_xyz() {
        // This space remains empty
    }
}

Вы можете посетить этот Github JUnit5 Примеры загрузки для JUnit5 Jupiter нагрузочных тестов, а также способы их запуска через JUnit5 Suite.

person Sidd Gautama    schedule 23.09.2019
comment
Есть ли способ рандомизировать порядок методов тестовых отображений? - person Jas Ahluwalia; 25.10.2019
comment
@Jas, в load_generation.properties установите ramp.up.period.in.seconds=0, чтобы рандомизировать порядок. - person Sidd Gautama; 31.10.2019
comment
@Jas, не то, что я видел в этот момент. Вы можете использовать аннотацию Junits @Order в исходном тестовом файле, если вам нужен определенный порядок. - person Rhineb; 07.01.2021

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

Следует отметить, что в файле свойств, который я обнаружил, вам нужно установить секунды на 15-20% выше, чем потоки (т.е. потоки 20/секунды 25). Если вы этого не сделаете, я очень часто вижу сбои в тесте нулевого кода.

person Rhineb    schedule 07.01.2021