Как передать несколько параметров из скрипта робота в python

#python #robotframework

#python #robotframework

Вопрос:

Мое требование — обновить структуру 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?

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

1. Это буквально ваш код? В конце строки отсутствует двоеточие def , а в теле строки def нет правильного отступа. Вы должны получать ошибки импорта в этом файле.

2. Спасибо, похоже, ошибка типа — исправлена

Ответ №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
"""
  

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

1. Но мне нужно вызвать его из скрипта робота?

2. является ли скрипт робота python или bash? для запуска этого скрипта вы можете использовать аргумент строки cmd (данные робота), чтобы передать значения этому скрипту и сохранить дампы

3. Спасибо — проблема заключалась в том, что мы не можем использовать print в скрипте python при вызове из robot

4. вы можете использовать журнал «импорт журнала», чтобы проверить, что вы получили, и просмотреть его в режиме отладки или в файле журнала