Как добавить тестовые случаи в существующий тестовый запуск с API от Java до TestRail?

2

Я создал тестовый прогон в течение времени выполнения, и я хотел бы добавить тестовые примеры, пока они начинают выполнение. Тестовые примеры были созданы, если они уже не существуют. И этот тестовый пример следует добавить к существующему тестовому прогону с другими тестовыми примерами.

Я попытался использовать setCaseIds во время запуска и после обновления прогона, но это переопределяет существующий прогон. Я думаю, что ошибка setCaseIds, что я использую setCaseIds, но я не знаю, как это сделать.

Case mycase = new Case().setTitle("TEST TITLE").setSuiteId(suite.getId()).setSectionId(section.getId());
mycase = testRail.cases().add(mycase.getSectionId(), mycase, customCaseFields).execute();
final List<Integer> caseToAdd = new ArrayList();
caseToAdd.add(mycase.getId());
run.setCaseIds(caseToAdd);
run = testRail.runs().update(run).execute();
//The first test start the execution
.
.
.
// The first test case finish
// Now I create a new testcase to add
Case mySecondCase = new Case().setTitle("TEST TITLE").setSuiteId(suite.getId()).setSectionId(section.getId());
mycase = testRail.cases().add(mySecondCase.getSectionId(), mySecondCase, customCaseFields).execute();
// I repeat the prevous steps to add a new test case
final List<Integer> newCaseToAdd = new ArrayList();
newCaseToAdd.add(mySecondCase.getId());
    run.setCaseIds(newCaseToAdd);
    run = testRail.runs().update(run).execute();

Кто-нибудь знает, как это сделать? Заранее спасибо.

Теги:
selenium
automation
testrail

2 ответа

1
Лучший ответ

Я решил проблему с планетой и структурой ввода. Я сохраняю все тестовые примеры в списке, и этот список передается как параметр в функции entry.setCaseIds:

// First Test Case
Case mycase = new Case().setTitle("TEST TITLE").setSuiteId(suite.getId()).setSectionId(section.getId());
mycase = testRail.cases().add(mycase.getSectionId(), mycase, customCaseFields).execute();
// List for Test Cases
List<Integer> caseList = new ArrayList<>();
caseList.add(mycase.getId());
// Create new Entry and add the test cases
Entry entry = new Entry().setIncludeAll(false).setSuiteId(suite.getId()).setCaseIds(caseList);
entry = testRail.plans().addEntry(testPlan.getId(),entry).execute();
// Create the second test case
Case mycase2 = new Case().setTitle("TEST TITLE 2").setSuiteId(suite.getId()).setSectionId(section.getId());
mycase2 = testRail.cases().add(mycase.getSectionId(), mycase, customCaseFields).execute();
// Add the second test case to the list
caseList.add(mycase2.getId());
// Set in the Entry all the test cases and update the Entry
entry.setCaseIds(caseList);
testRail.plans().updateEntry(testPlan.getId(), entry).execute();

Для выполнения тестовых примеров вам нужен тестовый прогон:

run = entry.getRuns().get(0);
1

Вот что я смог найти:

  1. TestRail не поддерживает операцию добавления/добавления. Он поддерживает только операцию set/override. Это то, что происходит в вашем случае, когда вы вызываете setCaseIds два раза при одном запуске, он сохраняет только последний id (и это то, что вы обычно можете ожидать от set метода).
  2. Предлагаемое решение:

Run activeRun = testRail.runs().get(1234).execute(); List<Integer> testCaseIds = activeRun.getCaseIds() == null? new ArrayList<>(): new ArrayList<>(activeRun.getCaseIds()); testCaseIds.add(333); testRail.runs.update(activeRun.setCaseIds(testCaseIds)).execute();

Поэтому вместо того, чтобы просто устанавливать новый id (ы), вы берете существующие идентификаторы от запуска, добавляете к нему id и запускаете обновление.

источник: https://github.com/codepine/testrail-api-java-client/issues/24

  • 0
    Спасибо за ваш ответ @ Владимир-Ефимов. Я не могу поверить, что команда TestRail не поддерживает эту функцию, это невероятно. На мой взгляд, это базовый функционал.
  • 0
    @ j.barrio, если я не ошибаюсь, команда testrail-api-java-client не поддерживается командой TestRail. Это просто проект с открытым исходным кодом github.com/codepine/testrail-api-java-client . Таким образом, вы можете отправить вопрос с просьбой поддержать такую функцию, а затем отправить запрос на изменение с изменением;). Вот документы для официальных TR api docs.gurock.com/testrail-api2/reference-runs . На самом деле вы можете использовать его напрямую, но вам придется самостоятельно выполнить запрос auth + send.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню