привет
есть тест - использующий предварительную авторизацию
задача - запустить тест многопоточно
есть 5 пар лог -пасс
подскажите как можно запустить тест например 100 -раз в 5 потоков и при этом чтобы одновременно не пересекались логины ?
Отправлено 04 ноября 2020 - 09:20
привет
есть тест - использующий предварительную авторизацию
задача - запустить тест многопоточно
есть 5 пар лог -пасс
подскажите как можно запустить тест например 100 -раз в 5 потоков и при этом чтобы одновременно не пересекались логины ?
Отправлено 21 ноября 2020 - 23:31
Здравствуйте :)
Слишко мало деталей для подсказки)
Если у вас веб автоматизация, то ваш драйвер должен бить заимплементирован как многопоточний - лучше всего обернуть его в ThreadLocal
https://docs.experit... Best Practices (Web Driver in individual test method using ThreadLocal) и https://www.youtube.com/watch?v=5wgusEV4uSQ (гуглила налету, но ви можете поискать видео получше)
Если у вас бек-енд (АРІ) автоматизация, то можна использовать UserPool -
public class UserPool { private static Map<Long, String> userIds = new HashMap<>(); public static String getUser() { long threadId = Thread.currentThread().getId(); if (!userIds.containsKey(threadId)) userIds.put(threadId, createIndividualUser()); return userIds.get(threadId); } // createIndividualUser() - должен создавать нового юзера и возвращать его уникальную Id
Ну, и конечно, лучше всего использовать TestNg (нежели jUnit, хотя в 5 версии много крутих фич) для таких целей. У него есть уже предусмоетрний @DataProvider(parallel = true), что позволяет запускать тести в паралели :)
Удачи вам!
Отправлено 21 ноября 2020 - 23:35
Ах да, еще зависит от вашей build tools - Gradle vs Maven. Но в целом подход схожий -
gradle clean test --tests com.your_test_project.testClass -DthreadCount=5 -Dparallel=methods
0 пользователей, 0 гостей, 0 анонимных