Перейти к содержимому

Фотография

Pytest + Testrail

pytest python testrail

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 QAPython

QAPython

    Новый участник

  • Members
  • Pip
  • 13 сообщений


Отправлено 08 августа 2017 - 13:16

Пробую интегрировать автотесты c Testrail с помощью плагина pytest-testrail. Вроде бы доках все просто описано, однако есть не совсем понятные моменты.

1) Файл .cfg должен находиться в корне проекта или в папке с тестами. 

2) Нужно ли какие-нибудь библиотеки подключать, кроме requests

3) Можно ли сделать так, чтобы плагин не формировал testrun, а уже в готовый просто вносил результаты тестов.

4) [TESTRUN]

     assignedto_id = 1  - это id testrun или чего-то еще? И почему нет буквы перед цифрой?

 

Может кто сталкивался с такой задачей, буду рад услышать любые подсказки

 
  • 0

#2 QAPython

QAPython

    Новый участник

  • Members
  • Pip
  • 13 сообщений


Отправлено 08 августа 2017 - 14:05

 "assignedto_id = 1  - это id testrun или чего-то еще? И почему нет буквы перед цифрой?"  Разобрался, это айдишка юзера. А вот, как отметить testrun_id не понятно пока.


  • 0

#3 QAPython

QAPython

    Новый участник

  • Members
  • Pip
  • 13 сообщений


Отправлено 09 августа 2017 - 12:52

Может кто-то работал просто с API TestRail? Если да, то подскажите пожалуйста, куда нужно поместить методы для изменения статуса тесткейсов в Тестрейл, чтобы не прописывать их в каждом тесте?


  • 0

#4 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 10 августа 2017 - 11:38

В conftest.py прописать хук:

def pytest_report_teststatus(report):
    ...

Статус будет в полях report.passed, report.failed, report.skipped.

Он вызывается 3 раза для каждого теста, надо проверять, что report.when == 'call'. Еще в report.when может стоять 'setup' и 'teardown', но их статусы не зависят от статуса выполнения теста.


  • 1

#5 QAPython

QAPython

    Новый участник

  • Members
  • Pip
  • 13 сообщений


Отправлено 10 августа 2017 - 12:02

Большое спасибо за ответ. Про conftest я так и думал. Однако, не могли бы Вы дать более развернутый ответ, так как работая с автотестами второй месяц не совсем понятно, а задача поставлена. Заранее благодарю за понимание


  • 0

#6 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 10 августа 2017 - 15:36

Большое спасибо за ответ. Про conftest я так и думал. Однако, не могли бы Вы дать более развернутый ответ, так как работая с автотестами второй месяц не совсем понятно, а задача поставлена. Заранее благодарю за понимание

C TestRail никогда не работал. Просто ответил, на вопрос "куда нужно поместить методы для изменения статуса". А методы эти напишете так, как нужно. Благо, к TestRail API есть нормальная документация и готовый питоновский клиент (только что погуглил). Не должно быть ничего сверхсложного.

 

Сложности могут возникнуть, когда вы будете сопоставлять тесктейсы в TestRail и питоновские тесты. Тут прежде чем что-то советовать, надо знать, в каком месте будет прописываться этот ID в тестах, и как вообще выглядят ID в TestRail. Может быть, там лейблы какие-то можно проставлять с именем автоматизированного теста и искать по ним. Мне попробовать не на чем. Легче всего, если можно будет искать тесты по имени тестовой функции/метода, его можно получить из report.nodeid.

 

Потом, куда проставлять результаты? Насколько я вижу по описанию API, там можно заводить разные катомные поля с результатами. В каком виде писать эти результаты? Есть ли поле под подробное описание ошибки?

 

Плюс есть ID тестового прогона. Это уже ваш внутренний организационный вопрос: вручную создавать или автоматически. И создаете ли вы их вообще. И как его заполнять: может быть, и тесты в прогон надо заносить по-одному по мере выполнения, тогда это надо в сетап-хук добавлять.

 

Так что, сложного ничего нет, надо просто продумать нюансы, и взять написать код под конкретный процесс.


  • 0

#7 QAPython

QAPython

    Новый участник

  • Members
  • Pip
  • 13 сообщений


Отправлено 14 августа 2017 - 08:03

Задача решена с помощью метода pytest_runtest_makereport в py.test и пару дополнительных методов. Еще раз спасибо за подсказки.


  • 0



Темы с аналогичным тегами pytest, python, testrail

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных