TestNg запуск 10% тестов с рандомной выборкой

спасибо - я в своем проекте добавил инвентаризацию и нескольно способов (работающий и не работающийcapture_test_inventory

ваш IMHO какой то супер сложный объясните как оно делает свое случайное дело…спасибо еще раз

+1, это гораздо более лаконично. Можно даже без стримов. Только Collection.shuffle() + List.sublist()

1 лайк

IMethodInterceptor - коробочный интерфейс TestNG, который позволяет корректировать тестовый набор до непосредственного запуска. Вызывается он лишь единожды. Но этого достаточно, чтобы произвести все необходимые манипуляции.

На вход нам поступает список методов, которые собираются быть запущены.

shuffle - классический метод внутренностей самой Java, позволяющий перетасовать содержимое списка в произвольном порядке.

ceil - еще один метод стандартной библиотеки Math в Java. При помощи него мы берем 10% от размера коллекции, округляя в большую сторону.

Ну и при помощи стрима, мы лимитируем уже рандомизированный набор до 10% элементов. Хотя, как отметили выше, тоже самое можно было и через sublist сделать.

a как передать percenage в MethodInterceptor ? где когда он инициализируется ?

Да как угодно - константа, конфиг, sys props, env vars. Вариантов - море.

Как и любой другой слушатель TestNG - подключается в build файле, или конфиге. Код не упоминаю, поскольку не все интерфейсы можно подключать из кода.

Ну и ссылки я не просто так вставляю в сообщения.

спасибо - непривычно выглядит. я тоже нашел ссылкy с примерами . пока на мой взгляд многовато moving parts