【问题标题】:How to pass multiple parameters from robot script to python如何将多个参数从机器人脚本传递给python
【发布时间】:2019-04-16 22:47:44
【问题描述】:

我的要求是更新 JSON 结构,然后使用键值对将其写入文件。下面是我的 Python 脚本,基于我们将从机器人脚本收到的 TESTVER、TESTLVL 和 TESTGRP 的值,我们需要对其进行更新:

cmd = 
"""{
        "TESTVER": "v1",
        "TESTLVL": "Level1",
        "TESTGRP": "SET"
}"""

class myLib(object):
    def change_test_details(self, ver, lvl, grp):
        d = json.loads(cmd)
        d["TESTVER"] = ver
        d["TESTLVL"] = lvl
        d["TESTGRP"] = grp
        print(json.dumps(d, indent=2))

这是我的机器人脚本摘录:

test Suite to be selected and executed ${TEST}
    Log to Console   ${TEST}
    Change test details    "v1", "L1", "Get"

我不断收到“找不到名称为“更改测试详细信息”的关键字。” - 如何将多个参数从机器人传递到 Python 脚本?

【问题讨论】:

  • 这真的是你的代码吗?您在 def 行的末尾缺少一个冒号,并且 def 的正文没有正确缩进。您应该在此文件上遇到导入错误。
  • 谢谢 似乎是类型错误 - 已修复

标签: python robotframework


【解决方案1】:
cmd = """{
        "TESTVER": "v1",
        "TESTLVL": "Level1",
        "TESTGRP": "SET"
}"""

class myLib(object):
    def change_test_details(self, ver, lvl, grp,filename):
        d = json.loads(cmd)
        d["TESTVER"] = ver
        d["TESTLVL"] = lvl
        d["TESTGRP"] = grp
        with open(filename, 'w') as outfile:
            json.dump(d, outfile,indent=2)
        return 'Done'
x=myLib()
ver=1
lvl=1
grp=1
filename =r'file.json'
v=x.change_test_details(ver, lvl, grp,filename)
print(v)
"""
output

done
"""

【讨论】:

  • 但我需要从机器人脚本中调用它?
  • 机器人脚本是python还是bash?要运行此脚本,您可以执行 cmd 行参数(机器人数据)将值传递给此脚本并保存转储
  • 谢谢——问题是当从机器人调用时我们无法在 python 脚本中使用 print
  • 您可以使用 log `import logging' 来检查您得到的内容并在调试模式或日志文件中查看它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
  • 2021-01-15
  • 1970-01-01
相关资源
最近更新 更多