簡體   English   中英

在Robot Framework中實例化一個類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM