Отладка тестов API каратэ в Дженкинс - PullRequest
1 голос
/ 09 марта 2020

Это своего рода открытый вопрос / запрос (надеюсь, что это разрешено).

В моей команде мы используем тестирование API Каратэ для нашего проекта, который мы любим. Тесты просты в написании и достаточно понятны людям, не имеющим опыта программирования. Самая большая проблема, с которой мы сталкиваемся, заключается в том, что эти API-тесты имеют некоторую врожденную степень ненадежности (поскольку код, который мы тестируем, вызывает другие системы). При локальном запуске тестов на моей машине легко увидеть, где тест не удался. Однако мы также используем конвейер Jenkins, и когда тесты в Jenkins проваливаются, трудно понять, почему / как они провалились. По умолчанию мы получаем сообщение вроде этого:


com.company.api.OurKarateTests > [crossdock] Find Crossdock Location.[1:7] LPN is invalid FAILED

    com.intuit.karate.exception.KarateException

По сути, все, что нам говорит, это имя файла и начальная строка сценария, который не удался. Наш конвейер настроен так, что мы можем передать флаг debug и получить больше информации. Однако есть две проблемы с этим; одна из них заключается в том, что вы должны помнить об установке этого флага в каждом коммите, на котором вы хотите видеть информацию; другая причина в том, что у нас go не хватает информации слишком много (чтение файла всей сборки размером 24 МБ).

Мне нужны предложения по улучшению этого процесса, желательно без внесения изменений в конвейер Jenkins (другая команда управляет этим, и это, вероятно, займет много времени). Хотя, если изменение конвейера - единственный способ сделать это, я хотел бы знать это. Я готов «мыслить нестандартно» и развлекать неортодоксальные решения (например, публикация для слабой интеграции).

В настоящее время мы находимся на версии 0.9.3 по каратэ, но я, вероятно, планирую перейти на 0.9.5 как часть этих усилий. Я прочитал немного об изменениях. Будет ли "ExecutionHook" хорошим способом сделать это? Я немного поэкспериментирую с этим.

Столкнулись ли другие команды / разработчики с этой проблемой? Каковы были ваши решения? Опять же, мы действительно любим каратэ, просто борясь с интеграцией его в Дженкинс.

1 Ответ

1 голос
/ 09 марта 2020

Разве вы не используете библиотеку отчетов об огурцах, как описано здесь: https://github.com/intuit/karate/tree/master/karate-demo#example -отчет

Если вы это сделаете - вы получите HTML отчет со всеми траффиками c (и все, что вы print) выполняете в соответствии с этапами тестирования и, конечно, трассировками ошибок, и большинство команд считают, что этого достаточно для устранения неполадок сборки, нет необходимости копаться в журналах.

Попробуйте также обновить, потому что мы продолжаем пытаться улучшить полезность журналов, и вы можете увидеть улучшения, если вы потерпели неудачу в JS блоке или karate-config.js.

Иначе, да ExecutionHook было бы неплохо изучить, но я был бы очень удивлен, если бы отчет HTML не дал вам то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...