Skip to main content
 首页 » 编程设计

python之在 Robot Framework 中实例化一个类

2025年05月04日21grandyang

我有一个可以像这样使用的 python API 包装器:

from api.MyApi import * 
 
client = MyApi(server) 
 
users = client.user.get_users() 

我想编写一个使用它的测试库,我可以在 Robot Framework 中使用它,但我无法让它按照我想要的方式工作。 我尝试了以下方法:

测试机器人

*** Settings *** 
Library  api.MyApi  ${SERVER}  WITH NAME  client 
 
*** Variables *** 
 
*** Keywords *** 
Get users 
    ${response}=  client.user.get_users() 
    Log  ${response.content}    
 
*** Test Cases *** 
Test: Test 1 
    Get users 

结果是

No keyword with name 'client.user.get_users()' found. 

如何创建和使用我的 API 客户端实例?

请您参考如下方法:

您不应尝试在机器人测试中直接使用您的 api 库,因为它并非设计为用作关键字库。

相反,创建您自己的关键字库可以调用 api 来完成工作。然后,不是在测试中创建 get keywords 关键字,而是在库中创建。

例如,创建一个名为“APIKeywords.py”的文件,它将与您的服务器建立连接。在其中,创建一个名为 get_users 的关键字,它使用连接来获取用户:

from api.MyApi import * 
 
class APIKeywords() : 
    ROBOT_LIBRARY_SCOPE = 'GLOBAL' 
 
    def __init__(self, server): 
        self.server = server 
        self.client = MyAPI(self.server) 
 
    def get_users(self): 
        return self.client.user.get_users() 

您可以像使用任何其他库一样使用此关键字库。例如:

*** Variable *** 
${SERVER}  localhost 
 
*** Settings *** 
Library  APIKeywords.py  ${SERVER}  WITH NAME  client 
 
*** Test cases *** 
Example  
    ${users}=  get users 

如果您想在调用关键字时显式使用client,您可以将最后一行更改为:

${users}=  client.get_users 

或

${users}=  client.get users