如何使用 python 将 robotframework 中的输出结果写入 dict 格式的 csv?

How to write the results from output in robotframework to csv in dict format using python?

我有一个机器人框架代码,其中有多个测试用例和结果。现在我需要使用 python 代码将这些结果以键值对的形式存储在 JSON 文件中。我该怎么做?

Pythoncode.py

def writeJson(data):
    with open("data_file.json", "w") as write_file:
       json.dump(data, write_file)


Robot Code.robot


  TC1
   ${output}=    TC1test
   ${dict1}=    Set Variable     ${output}
   ${value_cnt}=    Get Length    ${dict1}
   ${var}=    set variable    ${dict1}

   TC2
   ${output}=   TC2test
    ${dict3}=    set variable    ${output}
   ${cnt}=    Get Length    ${dict3}
   ${var}=    set variable    ${dict3}
         : FOR    ${item}    IN RANGE   0    ${cnt}
         \    ${var2}=    Set Variable     ${var['value']} 

   write data
   ${json} =      writeJson         ${var1}   \n  ${var2}

输出: datafile.json 只打印一个值

我在编码部分需要帮助,如何使用 python 或机器人框架代码来做到这一点。

我需要一些示例代码

首先,您甚至不需要使用 python 库来实现这一点。你可以 运行 像这样:

*** Settings ***
Library  Collections
Library  json
Library  OperatingSystem

*** Test Cases ***
Write data
   &{TESTS_DICT}=  Create Dictionary  FirstTestResults=PASS  SecondTestResult=FAIL
   ${JSON_CONTENT}=  json.dumps  ${TESTS_DICT}
   Create File  ${CURDIR}/data_file.json  content=${JSON_CONTENT}

如果您想使用自己的Python源文件写入文件,您可以执行以下操作:

Pythoncode.py:

import json

def writeJson(data):
    with open("data_file.json", "w") as write_file:
       json.dump(data, write_file)

main.robot:

*** Settings ***
Library  Pythoncode.py
Library  Collections

*** Test Cases ***
Write data
   &{TESTS_DICT}=  Create Dictionary  FirstTestResults=PASS  SecondTestResult=FAIL
   WriteJson         ${TESTS_DICT}

运行 main.robot 在任何一个示例中都会创建一个包含两个键值对的 json 文件 data_file.json。输出:

{"FirstTestResults": "PASS", "SecondTestResult": "FAIL"}