提问人:Kuelbiroe 提问时间:9/15/2023 更新时间:9/15/2023 访问量:89
如何将 python 对象从机器人框架测试用例传递到关键字?
How to pass a python object from a robot framework test case to a keyword?
问:
我是 Python 和机器人框架的新手。所以我可能会错过一些明显的东西。我有 .NET 编程经验,曾经使用实体/对象,我们将其用于数据库填充和 API 响应。我正在尝试对机器人框架中的测试做同样的事情,但遇到了以下问题。
我正在尝试将一个对象从机器人框架测试用例传递到一个关键字,尽管它说“[FAIL INSIDE] 正在解析变量 '${person.Id}' 失败:AttributeError: 'str' 对象没有属性 'Id'”
我在 person.py 文件中的代码:
from robot.libraries.BuiltIn import BuiltIn
class person(object):
#ROBOT_LIBRARY_SCOPE = 'GLOBAL'
def __init__(self):
self.Id='myId'
self.Name='Jack'
def set_id(self, Id):
self.Id=Id
def set_name(self, Name):
self.Name=Name
return self
def get_a_person(self):
return self
我在 .resource 文件中的代码:
*** Settings ***
Resource
Library person.py
*** Keywords ***
Get Person Entity
${person} Get A Person
RETURN ${person}
Insert person in database
[Arguments] ${person}
Execute Sql String INSERT INTO [Database].[dbo].[Person] (Id,Name) VALUES ('${person.Id}', '${person.Name}');
我在 .robot 文件中的代码:
*** Settings ***
Resource
Library person.py
*** Test Cases ***
1. My Example Test
${testPerson} Get Person Entity
${testPerson} Set Name Adam
Run Keywords Insert person in database person=${testPerson}
因此,在尝试将人员插入数据库时,它不起作用。当我将数据库中的插入人员更改为日志记录并尝试记录测试人员的姓名时,它正在工作。在调试过程中,我看到测试用例中的对象仍然是一个 person 对象。尽管当它被传递到资源文件时,该对象突然变成了一个字符串。
答: 暂无答案
评论
Run keywords
Run Keywords Insert person in database person=${testPerson}
Insert person in database person=${testPerson}
person= ${testPerson}