#java #spring-boot #testing #automated-tests #testng
Вопрос:
Я инженер-программист, и я не самый опытный в тестировании. Я хотел знать, есть ли какие-либо рамки тестирования в экосистеме Java, которые позволили бы мне делать некоторые вещи, как показано ниже:
- Запускайте набор автоматизированных тестов (интеграционных или сквозных) каждую ночь, например, в 1 час ночи по центральному времени.
- Запускайте тесты параллельно, чтобы я мог выполнять разные тесты одновременно (т. Е. Подключаться к API, гарантируя, что получу правильный ответ, в то время как параллельно выполняется другой тест, возможно, загрузка CSV в корзину AWS S3 и т. Д.. В идеале разные команды (agile) писали бы и добавляли тесты в этот набор, и он запускался бы каждую ночь параллельно автоматически.
- В идеале мне понадобится отчет о тестировании или, если я создам это приложение с нуля, я возьму ответ JSON и проанализирую список «ошибок» (массив), где я могу отправить эти данные на панель управления пользовательского интерфейса, в которой может быть указан компонент, если он прошел/не удался, и где ошибки, где (если таковые имеются), т. Е. «ошибки [http resp был 404 из Google API]
Я слышал о таких фреймворках, как Testng (я не верю, что Junit может запускать тесты параллельно). Я подумал, что если бы я написал это с нуля, тест запускался бы с помощью какого-либо задания Cron в приложении Spring Boot каждую ночь в 1 час ночи ИЛИ, в идеале, его можно было бы запускать вручную с помощью запроса POST к какой-либо конечной точке, т. Е.
http://localhost:8080/startTest
{
"testName": "ComponentATest",
}
Это позволит в дальнейшем инициировать проверку, если пользователь не хочет ждать автоматической задания cron, и он может вернуть ответ JSON с UUID для этого конкретного теста, который будет включать положения и результаты, так сказать, ответ на UUID 4c0e2626-21ec-4794-b201-1582591b24fd
, вы могли бы сделать еще один запрос POST на другую конечную точку и получить результаты теста, т. е.
http://localhost:8080/{uid}
{
"status": "RUNNING",
"testName": "ComponentATest",
"errors": [
]
}
существуют ли какие-либо рамки, которые могли бы легко достичь того, чего я обычно добиваюсь здесь? или мне лучше написать этот код с нуля?
Кроме того, будет ли управление потоками для параллельного/параллельного выполнения этих тестов, если писать это с нуля, лучшим/современным подходом?
Существуют ли какие-либо шаблоны проектирования, такие как шаблон наблюдателя или реактивная Java, которые позволили бы мне, возможно, выполнить какой-либо HTTP-запрос для конкретного теста и «подписаться» до тех пор, пока не придет ответ, журнал/сохранить результат?
Спасибо
Комментарии:
1. Похоже, вам нужно настроить службу непрерывной интеграции , такую как Дженкинс .