Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Тест дроссельной заслонки

Автор вопроса: CrazyDogggОтветов: 3

Я запускаю testng в многопоточном режиме с @DataProvider(name = "blah", parallel = true)

Мои тесты вызывают производственную службу, и я хотел бы ограничить количество запросов в секунду. Есть ли способ дросселировать testng?

javatestng

Ответы

Ответ 1 · рейтинг 2 · assylias

Если вы не возражаете против импорта Guava или уже используете ее, вы можете просто ввести a RateLimiter. Другими словами, в вашем тесте вместо:

@Test public void test() { runYourTest(); }

вы делаете:

//10 tests per second, for example:
private static final RateLimiter rateLimiter = RateLimiter.create(10.0);

@Test(dataProvider="blah")
public void test() { rateLimiter.acquire(); runYourTest(); }

Ответ 2 · user2318564

Я бы сказал, что число тестовых потоков ограничено.
http://testng.org/doc/documentation-main.html#parallel-running
См. эту документацию, в которой объясняется, как это сделать как в XML, так и в @Annotation.

Ответ 3 · djangofan

Большинство людей используют для этого Browsermob Proxy с помощью команды PUT /proxy/[port]/limit API, но решение, предложенное @assylias тоже очень круто выглядит.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы