python - 如何使用python将robotframework中的输出结果以dict格式写入csv?
问题描述
我有一个机器人框架代码,它有多个带有结果的测试用例。现在我需要使用 python 代码将这些结果以键值对的形式存储在 JSON 文件中。我该怎么做?
Python代码.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 源文件写入文件,可以执行以下操作:
Python代码.py:
import json
def writeJson(data):
with open("data_file.json", "w") as write_file:
json.dump(data, write_file)
主机器人:
*** Settings ***
Library Pythoncode.py
Library Collections
*** Test Cases ***
Write data
&{TESTS_DICT}= Create Dictionary FirstTestResults=PASS SecondTestResult=FAIL
WriteJson ${TESTS_DICT}
main.robot
在任一示例中运行都会创建一个data_file.json
包含两个键值对的 json 文件。输出:
{"FirstTestResults": "PASS", "SecondTestResult": "FAIL"}
推荐阅读
- kubernetes - 用于调用 K8 api 的 Kubernetes 身份验证方法?
- javascript - 带有滚动但阻止编辑的HTML文本区域?
- mongodb - 在 mongo 中查找树层次结构
- c# - 在 C# 中为 200 000+ 行寻找快速数据库到对象映射器
- swiftui - 每次渲染正文时都会调用 SwiftUI Picker onReceive()
- python - 是否可以区分 Python 中具有相同变量的两个对象?
- json - jq 过滤内部数组元素但返回整个 JSON
- javascript - 无法读取未定义的属性“列”
- python - 如何在 Django 中添加显示下拉字段
- python - Databricks 连接 & PyCharm & 远程 SSH 连接