Не удается произвести интеграцию Jenkins с Testrail

Всем привет. На проекте нужно было интегрировать Jenkins с Testrail. Суть заключается в том, что после прогонки тестов в Jenkins результаты отображаются в Testrail как будто был запущен TestRun и сохранены результаты. На этом теория заканчивается…)
Для этих целей “есть” плагин testrail-jenkins-plugin. Он есть на Github (GitHub - syl20bnr/testrail-jenkins-plugin: Integrate test results from Jenkins into TestRail). К сожалению, это единственное место где он есть. Инструкция на вышеупомянутой странице мне не помогла. В самом Jenkins в разделе установки плагинов такого плагина нету. В центральном репозитории плагинов Jenkins (Index of /download/plugins) его тоже нету. Как настроить интеграцию? У кого-то получалось это сделать? Или на данный момент это “істина за межами досяжного”?)

По плагину:
Клонировал отсюда GitHub - achikin/testrail-jenkins-plugin: Integrate test results from Jenkins into TestRail(merged into jenkins main repo) . Билдил руками. Добавлял в дженкинс руками. Пилил напильником - насколько я помню криво работает со статусами и что-то еще - уже не помню.

По тестрейлу: Все делается через API+“недо-биндинги” - http://docs.gurock.com/testrail-api2/start

По главному: На кой вообще портировать резалты в TMS- если их гораздо удобнее изучать в дженкинсе.

1 Like

Спасибо, vmaximv. Практически все настроил, но… При запуске кода, который должен обращаться к TestRail появляется ошибка TestRail API returned HTTP 404(“Unknown method ‘get_project’”). JSON импортировал. Ошибки не высвечиваются.

Не совсем понятно что есть “код” и что вы настроили.
ЗЫ: доступ к api у проекта в тестрейле включён?

Код, который подключается к Testrail, логинится и пытается получить имя проекта с указанным ID. Администратор Testrail включил доступ по API, но не для проекта, а для всего Testrail. А нужно конкретно для проекта открыть поступ API?

Вроде на весь сайт - точно не помню.
Предлагаю вам тренироваться на кошках на триале - TestRail – Orchestrate Testing. Elevate Quality.
И не стесняться показывать “код” - воспроизвести ваши проблемы по повествовательному тексту довольно затруднительно.

Порешал. Я вместо
APIClient client = new APIClient(“http:///index.php?/api/v2/”) писал
APIClient client = new APIClient(“http:///index.php?”)

И снова проблемы) В документации к API как-то не понятно описано использование метода add_results. Мне не понятна фраза “This method expects an array of test results (via the ‘results’ field, please see below).” Мой код:
Map data1 = new HashMap();
data1.put(“test_id”, 247959);
data1.put(“status_id”, 1);
data1.put(“comment”, “First test passed well”);
Map data2 = new HashMap();
data2.put(“test_id”, 247960);
data2.put(“status_id”, 1);
data2.put(“comment”, “Second test passed well”);
List list = new ArrayList();
list.add(data1);
list.add(data2);
List LIST = new ArrayList();
LIST.add(“results”);
LIST.add(list);
JSONObject c3 = (JSONObject) client2.sendPost(“add_results/1449”, LIST);
И в результате: Exception in thread “main” com.gurock.testrail.APIException: TestRail API returned HTTP 400(“Field :results is a required field.”)

А вы “погуляйте” по исходникам вышеупомянутого плагина - там можно “наковырять” много полезной информации: testrail-jenkins-plugin/TestRailClient.java at master · achikin/testrail-jenkins-plugin · GitHub

Хорошо, а что нужно сделать, чтобы после выполнения тестов в Jenkins запускался TestRun в Testrail и, собственно, проставлялись результаты. То есть, плагин я установил. С API разобрался. Я просто не понимаю механизм по которому это все должно работать. В инете нашел информацию как про плагин так и про TestRail API, а вот как оно все должно взаимодействовать…

У вас немного все смешалось : )

  1. В тестрейлом можно взаимодействовать только через API
  2. Плагин к дженкинсу использует API для взаимодействия между дже и тестрейлом - если вам достаточно функционала этого плагина, вам не надо “разбираться” с API.
  3. Если вам надо реализовать собственное взаимодействие между тестами и тестрейлом - то п.1

Вкраце плагин работает так: при каждом ране джобы парсит junit-овскую xml, стучится в TR, создает кейсы если их там нет, создает новый ран, ставит статусы,закрывает ран. И есть ненулевая вероятность, что такой флоу вам не подойдет.
Базовые настройки плагина сетаются в конфигурации дже. В джобе добавляете post-build action.

парни я не могу понять, как вы это собрали?! у меня билд фейл