Parse Robot Framework выводит xml - PullRequest
0 голосов
/ 11 января 2019

Среда Robot выдает выходной XML, который затем используется для создания отчетов HTML (с rebot), повторного запуска сбоев и т. Д.

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

Обеспечивает ли Robot Framework функциональность, позволяющую легко анализировать выходной файл XML, или мы просто используем стандартные библиотеки синтаксического анализа XML?

Ответы [ 2 ]

0 голосов
/ 12 января 2019

У меня была такая же проблема, как и у вас, и для меня использование интерфейса прослушивателя Robot Framework было наиболее удобным решением.

Метод output_file из API Listener версии 3 будет вызван, когда запись в выходной файл будет готова. Аргументом метода является абсолютный путь к выходному XML-файлу, и все это необходимо для создания любых новых отчетов.

Пример:

import os

"""Listener that parses the output XML when it is ready and creates a unique log."""

ROBOT_LISTENER_API_VERSION = 3

def output_file(path):
    # parse xml with etree or lxml
    log_dir = os.path.split(path)[0]
    print('Extra log: %s' % (log_dir + '\\extra.log'))

Консольный журнал выполнения теста:

D:\robot_framework>robot --listener my_listener.py my_test.robot
==============================================================================
My Test
==============================================================================
Some Test                                                             | PASS |
------------------------------------------------------------------------------
My Test                                                               | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Extra log: D:\robot_framework\extra.log
Output:  D:\robot_framework\output.xml
Log:     D:\robot_framework\log.html
Report:  D:\robot_framework\report.html

Дополнительный файл журнала указан среди выходных данных по умолчанию.

0 голосов
/ 12 января 2019

Хорошо, найдено 3 жизнеспособных ответа:

  1. Используйте DbBot и запросите созданную БД.
  2. Разбор файла XML напрямую. Использовать xml.etree.ElementTree довольно просто.
  3. Используйте Robot Framework ExecutionResult , который следует шаблону Visitor ResultVisitor , который мы должны расширить) и который позволяет вам делать то, что вам нужно в методе visit_test.

Закончился переход к варианту 3, так как он является частью Robot Framework и с меньшей вероятностью сломается (или его легче исправить), если формат XML-файла изменится.

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