私はpythonを使用している初心者ですが、Pythonからロボットフレームワークコンソールにメッセージを出力する方法を教えてください。
python関数がロボットログまたはコンソールに情報を送信する方法はいくつかあります。これらはすべて、Robot Frameworkユーザーガイドの ロギング情報)というタイトルのセクションに記載されています。 。
最もクリーンな方法は、 logging API を使用することです。これにより、さまざまな種類のロギングに特化した関数が提供されます。たとえば、コンソールに情報を送信するには、logger.console(message)
を使用します。
このメソッドを使用するライブラリファイルは次のとおりです。
# ExampleKeywords.py
from robot.api import logger
def write_to_console(s):
logger.console(s)
このライブラリは、次の方法で使用できます。
*** Settings ***
| Library | ExampleKeywords.py
*** Test Cases ***
| Use a custom keyword to write to the console
| | Write to console | Hello, world
これはコンソールにのみ表示され、ログには表示されません。情報をログに表示したい場合は、ロガーメソッドinfo
、warn
、debug
、またはtrace
を使用できます。エラーをログに記録するには、単に例外をスローします。
カスタムキーワードがログに情報を送信する方法は他にもあります。たとえば、BuiltInライブラリへの参照を取得し、次のように log または log to console キーワードを直接呼び出すことができます。
from robot.libraries.BuiltIn import BuiltIn
def write_to_console(s):
BuiltIn().log_to_console("Hello, world")
最後に、printステートメントを使用して(コンソールだけでなく)ログに情報を書き込むことができます。文字列の前に*<level>*
を付けると、ログレベルに影響を与えることができます。たとえば、警告を出力するには、次のようにします。
print "*WARN* Danger Will Robinson"
APIを使用することは、間違いなく、キーワードから情報をログに記録するための最良の方法です。ただし、これはRobot Framework 2.6以降でのみ使用できるかなり新しいAPIであるため、古いバージョンのRobotを使用している場合は、他の手法のいずれかを使用する必要があります。
あなたが求めているように聞こえるのは、テストの実行中にテストケースをコンソールに印刷できるようにライブラリを作成する方法です。
これは非常に簡単です。RF Manual under Logging Information にあります。短いバージョンでは、両方に表示される「警告」をログに記録できます。次のように、印刷ステートメントを使用して画面に記録します。
print "*WARN* This text will show up on the console."
このコマンドを使用して、ロボットコンソールに任意のメッセージまたはコンテンツを印刷できます。
from robot.libraries.BuiltIn import BuiltIn
BuiltIn().log_to_console("Message that needs to be printed")