Как сделать отчеты динамически категоризированными в robot Framework?

#python #python-2.7 #robotframework

#python #python-2.7 #robotframework

Вопрос:

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

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

Ответ №1:

После запуска теста вы не можете изменить расположение выходных данных. Ваше единственное решение — использовать опцию командной строки.

Ответ №2:

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

Например, в приведенном ниже плагине Maven robotframework тег «outputDirectory» имеет местоположение, в котором будут храниться результаты робота. Это местоположение имеет временную метку, из-за чего каждый запуск робота будет генерировать отчет в другом каталоге.

 <plugin>
    <groupId>org.robotframework</groupId>
    <artifactId>robotframework-maven-plugin</artifactId>
    <version>1.4.7</version>
    <executions>
        <execution>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <testCasesDirectory>
            ....
        </testCasesDirectory>
        <variableFiles>
            <variableFiles>....</variableFiles>
        </variableFiles>
        <outputDirectory>/myloca/reports/${maven.build.timestamp}/</outputDirectory>
        <libdoc/>
        <testdoc/>
    </configuration>
</plugin>
  

Комментарии:

1. Хорошо, я попробую, но у меня есть вопрос: как только этот плагин будет добавлен, должен ли я пропустить параметр outputDirectory во время выполнения тестов?

2. Да, если вы предоставляете параметр как часть вызова командной строки. Я бы рекомендовал удалить его.

Ответ №3:

Вы можете использовать скрипт для генерации аргументов командной строки для Robot Framework, используя файлы аргументов чтения из стандартных функций ввода.

Чтобы создать папку для отчетов на основе некоторой логики, например, назвать папку текущим временем и установить ее в качестве выходного каталога, можно сделать что-то вроде этого:

 import datetime
import os

time = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")

dirpath = str(time)

if not os.path.exists(dirpath):
    os.makedirs(dirpath)

print('--outputdir '   dirpath)
  

Вы должны выполнить свои тесты, такие как:

 python OutputDirArgumentFile.py | robot --argumentfile STDIN my_test.robot