[英]Instantiating a class in Robot Framework
我有一個python API包裝器,我可以這樣使用:
from api.MyApi import *
client = MyApi(server)
users = client.user.get_users()
我想編寫一個使用它的測試庫,我可以在Robot Framework中使用它,但是我無法按照我想要的方式工作。 我嘗試了以下方法:
test.robot
*** 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
您可以擁有關鍵字文件和庫文件。
要創建一個庫文件,您需要創建一個類,然后在機器人框架腳本中調用它,然后在您的測試庫中,您應該創建在機器人框架中充當關鍵字的方法
例:
HelloWorld.py
class HelloWorld():
def Keyword_Robot(hello, world):
print(hello + " " + world)
Keyword.robot
*** Settings ***
Library HelloWorld.py
*** Test Cases ***
First custom Keyword
Keyword Robot "Hello" "World"
輸出:
Hello World
注意
這個關鍵字正在接受需要在自定義關鍵字后面的機器人框架內部傳遞的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.