web-dev-qa-db-ja.com

Pythonからロボットフレームワークコンソールに書き込む

私はpythonを使用している初心者ですが、Pythonからロボットフレームワークコンソールにメッセージを出力する方法を教えてください。

13
Marcio125

python関数がロボットログまたはコンソールに情報を送信する方法はいくつかあります。これらはすべて、Robot Frameworkユーザーガイドの ロギング情報)というタイトルのセクションに記載されています。

最もクリーンな方法は、 logging API を使用することです。これにより、さまざまな種類のロギングに特化した関数が提供されます。たとえば、コンソールに情報を送信するには、logger.console(message)を使用します。

ロギングAPIの使用

このメソッドを使用するライブラリファイルは次のとおりです。

# 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

これはコンソールにのみ表示され、ログには表示されません。情報をログに表示したい場合は、ロガーメソッドinfowarndebug、または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を使用している場合は、他の手法のいずれかを使用する必要があります。

23
Bryan Oakley

あなたが求めているように聞こえるのは、テストの実行中にテストケースをコンソールに印刷できるようにライブラリを作成する方法です。

これは非常に簡単です。RF Manual under Logging Information にあります。短いバージョンでは、両方に表示される「警告」をログに記録できます。次のように、印刷ステートメントを使用して画面に記録します。

print "*WARN* This text will show up on the console."
5
FBerthold

このコマンドを使用して、ロボットコンソールに任意のメッセージまたはコンテンツを印刷できます。

from robot.libraries.BuiltIn import BuiltIn
BuiltIn().log_to_console("Message that needs to be printed")
0
akshaykadam_100