我有一个可以像这样使用的 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
