RobotFrameworkを使ってみる

RPA

1.RobotFrameworkとは
 Robot Frameworkは、RPA(ロボティック・プロセス・オートメーション)のテスト自動化ツールの一つです。表形式のテストデータ構文を使用するキーワード駆動テストフレームワークです。
 ノキアネットワークスで開発され、バージョン2.0は2008年6月24日にオープンソースソフトウェアとしてリリースされ、2024年6月にはバージョン7.0.1がリリースされています。

2.環境構築(Windows)
(1)Pythonのインストール
 Robot FrameworkはPythonで動作するため、まずPythonをインストールします。公式サイトから最新のPythonをダウンロードしてインストールします。

Python Releases for Windows
The official home of the Python Programming Language

python-3.12.5-amd64.exe

python –version
Python 3.12.5

(2)pipのインストール
 Pythonをインストールするとpip(Pythonのパッケージ管理ツール)が一緒にインストールされます。pipを使ってRobot Frameworkをインストールします。

>pip --version
pip 24.2 from C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\site-packages\pip (python 3.12)

(3)Robot Frameworkのインストール
コマンドラインで以下のコマンドを実行して、Robot Frameworkをインストールします。

>pip install robotframework
Collecting robotframework
  Using cached robotframework-7.0.1-py3-none-any.whl.metadata (7.5 kB)
Using cached robotframework-7.0.1-py3-none-any.whl (727 kB)
Installing collected packages: robotframework
Successfully installed robotframework-7.0.1

# 最新の安定バージョンにアップグレードします。
>pip  install  --upgrade  robotframework

(4)Robot Frameworkのインストール確認

>pip show robotframework
Name: robotframework
Version: 7.0.1
Summary: Generic automation framework for acceptance testing and robotic process automation (RPA)
Home-page: https://robotframework.org
Author: Pekka Klärck
Author-email: peke@eliga.fi
License: Apache License 2.0
Location: C:\Users\(UserName)\AppData\Local\Programs\Python\Python312\Lib\site-packages
Requires:
Required-by:

(5)必要なライブラリのインストール
 テストを行うためには、必要に応じて追加のライブラリをインストールします。
・SeleniumLibraryのインストール
 Seleniumを使ったWebテストを行う場合、SeleniumLibraryをインストールします。

> pip install robotframework-seleniumlibrary
:
Successfully installed robotframework-pythonlibcore-4.4.1 robotframework-seleniumlibrary-6.3.0
:
# インストールが完了したら、以下のコマンドを使用して、
# robotframework-seleniumlibraryが正しくインストールされたかを確
# 認します。

>pip show robotframework-seleniumlibrary
Name: robotframework-seleniumlibrary
Version: 6.3.0
Summary: Web testing library for Robot Framework
Home-page: https://github.com/robotframework/SeleniumLibrary
Author: Ed Manlove, Yuri Verweij, Lisa Crispin
Author-email: emanlove@verizon.net
License: Apache License 2.0
Location: C:\Users\(UserName)\AppData\Local\Programs\Python\Python312\Lib\site-packages
Requires: robotframework, robotframework-pythonlibcore, selenium
Required-by:

・Seleniumのインストール
 SeleniumLibraryを使用するためには、Selenium自体もインストールされている必要があります。以下のコマンドでインストールします。

> pip install selenium
#インストールの確認
#インストールが正常に完了したかどうかを確認するために、以下のコマン
#ドを実行して、SeleniumLibraryが正しくインストールされているか確認#します。
>pip show robotframework-seleniumlibrary

(6)PATH環境変数の設定
 Robot Frameworkをコマンドラインから実行するためには、PythonのスクリプトがインストールされているディレクトリがPATHに含まれている必要があります。Pythonのスクリプトがインストールされる通常のディレクトリは以下のようになります:
 (Pythonが入っている場所)
 C:\Users(UserName)\work>where python
 C:\Users(UserName)\AppData\Local\Programs\Python\Python312\python.exe
 C:\Users(UserName)\AppData\Local\Microsoft\WindowsApps\python.exe
 (pipが入っている場所)
 C:\Users(UserName)\work>where pip
 C:\Users(UserName)\AppData\Local\Programs\Python\Python312\Scripts\pip.exe
 C:\Users(UserName)\AppData\Local\Microsoft\WindowsApps\pip.exe

 pythonとpipが同じ場所にインストールされていることを確認します。

 環境設定pathに下記を追加する
 C:\Users(UserName)\AppData\Local\Programs\Python\Python312
 C:\Users(UserName)\AppData\Local\Microsoft\WindowsApps
 C:\Users(UserName)\AppData\Local\Programs\Python\Python312\Scripts
 C:\Users(UserName)\AppData\Local\Microsoft\WindowsApps

3.RobotFramewaorkの使い方
3.1 テスト(その1)
 SeleniumLibraryは、Robot Frameworkのテストスクリプト内でWebブラウザを操作するためのキーワードを提供します。SeleniumLibraryで定義されているキーワードを使ってテストケースを作成します。キーワードを含むSeleniumLibraryの詳細なドキュメントは、SeleniumLibraryの公式ドキュメントで、すべてのキーワードのリストと、それぞれのキーワードの使用方法が詳しく説明されています。

(1)sample.robotファイル

*** Settings ***
Library    SeleniumLibrary

*** Variables ***
${URL}    http://localhost/dashboard/

*** Test Cases ***
Example Test
    Open Browser    ${URL}    chrome
    Title Should Be    Welcome to XAMPP
    Close Browser


(2)テストの実行

> robot sample.robot

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <!-- Always force latest IE rendering engine or request Chrome Frame -->
    <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <!-- Use title if it's in the page YAML frontmatter -->
    <title>Welcome to XAMPP</title>

3.2 テスト(その2)
 SeleniumLibraryを使用して、さまざまなWebアプリケーションの自動テストを行うことができます。下記のいくつかのテストシナリオについてテストします。
・ページタイトルのテスト
 ページのタイトルが期待通りかどうかを確認します。
・要素の存在確認
 ページに特定の要素が存在するかどうかを確認します
・フォーム入力と送信
 フォームにデータを入力し、送信するテストです。
・リンクのナビゲーション
 特定のリンクをクリックして、正しいページに移動するかを確認します。
・ドロップダウンメニューの操作
 ドロップダウンメニューから項目を選択し、正しく選択されているかを確認します。
・スクリーンショットの取得
 テスト中にスクリーンショットを取得することで、エラーログやテスト結果を視覚的に記録できます。
・アラートの処理
 JavaScriptアラートや確認ダイアログを処理するテストです。
・ページのリダイレクト確認
 リンクやボタンをクリックした際に、期待したページにリダイレクトされるかを確認します。
・ファイルのアップロード
 フォームにファイルをアップロードするテストです。
・要素のテキスト検証
 特定の要素に表示されているテキストが期待通りかを確認します。

以上のテスト内容を含むrobotファイルを下記に示します。

「test_page.robot」
*** Settings ***
Library    SeleniumLibrary

*** Variables ***
${URL}    file:///C:\Users\\(UserName)\\work\\test_page.html

*** Test Cases ***

Test Page Title
    [Documentation]    Verify the title of the page is correct.
    Open Browser    ${URL}    chrome
    Title Should Be    Example Domain
    Close Browser

Test Element Presence
    [Documentation]    Verify that specific elements are present on the page.
    Open Browser    ${URL}    chrome
    Element Should Be Visible    css:#welcome-message
    Element Should Be Visible    css:#submit-button
    Close Browser

Test Form Submission
    [Documentation]    Fill out the form and verify the submission message.
    Open Browser    ${URL}    chrome
    Input Text    css:#name    John Doe
    Input Text    css:#email   johndoe@example.com
    Click Button  css:#submit-button
    Element Text Should Be    css:#welcome-message    Thank you for your submission!
    Close Browser

Test Dropdown Selection
    [Documentation]    Select an option from the dropdown menu and verify the selection.
    Open Browser    ${URL}    chrome
    Select From List By Value    css:#dropdown-id    value1
    List Selection Should Be     css:#dropdown-id    value1
    Close Browser

Test Link Navigation
    [Documentation]    Click on a link and verify the navigation.
    Open Browser    ${URL}    chrome
    Click Link    css:#redirect-link
    Location Should Be    http://localhost/dashboard/
    Close Browser

Test Alert Handling
    [Documentation]    Click the button to show an alert and handle it.
    Open Browser    ${URL}    chrome
    Click Button    css:#alert-button
    #Alert Should Be Present
    Sleep    5 seconds
    #Confirm Action
    Handle Alert
    Close Browser

Test File Upload
    [Documentation]    Upload a file using the file upload input.
    Open Browser    ${URL}    chrome
    Choose File    css:#file-upload    C:\\Users\\(UserName)\\work\\file.txt
    # Optionally, add more checks or assertions here after uploading the file.
    Close Browser

Test Screenshot Capture
    [Documentation]    Take a screenshot of the page.
    Open Browser    ${URL}    chrome
    Capture Page Screenshot    screenshot.png
    Close Browser

(スクリプトの説明)
・Test Page Title:
 ページタイトルがExample Domainであることを確認します。

・Test Element Presence:
 #welcome-messageと#submit-buttonがページ上に表示されていることを確認します。

・Test Form Submission:
 名前とメールアドレスをフォームに入力し、Submitボタンをクリック後、メッセージがThank you for your submission!に変わることを確認します。

・Test Dropdown Selection:
 ドロップダウンメニューからOption 1(value1)を選択し、正しく選択されているかを確認します。

・Test Link Navigation:
 Redirect Linkをクリックし、https://localhost/dashboard/にリダイレクトされることを確認します。

・Test Alert Handling:
 Show Alertボタンをクリックし、JavaScriptアラートを確認して閉じます。

・Test File Upload:
 ファイル選択ボタンを使用して、指定されたファイルをアップロードします。

・Test Screenshot Capture:
 ページ全体のスクリーンショットを取得し、screenshot.pngという名前で保存します。

下記のコマンドを実行してテスト結果が得られます。

robot test_page.rob

4.Robot Frameworkの書式と仕様
 Robot Frameworkのテストケースやキーワードを書くための書式と仕様についての基本を以下に示します。

4.1 主な書式と仕様
(1)設定セクション(Settings)
目的: テストで使用するライブラリや変数、リソースなどを設定します。
書式:
*** Settings ***
Library SeleniumLibrary
Resource my_resource.robot
Variables my_variables.py

(2)変数セクション(Variables)
目的: テストで使用する変数を定義します。
書式:
*** Variables ***
${BASE_URL} https://example.com
${TIMEOUT} 10

(3)テストケースセクション(Test Cases)
目的: 実行するテストケースを定義します。各テストケースは、具体的なテストの手順を含みます。
書式:
*** Test Cases ***
Example Test Case
[Documentation] This is an example test case.
[Tags] example
Open Browser ${BASE_URL} chrome
Title Should Be Example Domain
Close Browser

(4)キーワードセクション(Keywords)
目的: カスタムキーワードを定義します。キーワードは複数のテストステップを1つの手順にまとめるために使用します。
書式:
*** Keywords ***
Example Keyword
[Documentation] This is an example keyword.
[Arguments] ${arg1} ${arg2}
Log ${arg1}
Log ${arg2}

(5)リソースセクション(Resources)
目的: 他のRobot Frameworkファイルやモジュールをインポートします。
書式:
*** Resources ***
Resource my_resource.robot

(6)主な書式の仕様
 コメント: # で始まる行はコメントです。
 キーワードの区切り: 行の先頭に***で囲まれたセクションタイトルを使います。
 キーワードの引数: 引数はスペースで区切られ、必要に応じて[Arguments]セクションで定義します。
 タグ: [Tags]を使ってテストケースにタグを付けることができます。

4.2 マニュアルとリファレンス
 Robot Frameworkの詳細な書式や仕様については、以下のリソースを参照できます:
(1)Robot Framework User Guide
 Robot Frameworkの公式ユーザーガイドです。基本的な書式、設定、キーワード、変数、テストケースの書き方など、詳細な情報が含まれています。

「Robot Framework User Guide Version 7.0.1」
https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html

(2)Robot Framework Keywords Documentation
 利用可能なキーワードやその使用方法について説明しています。

「Robot Framework documentation」
https://robotframework.org/robotframework/

(3)SeleniumLibrary Documentation
 SeleniumLibraryの使用方法や提供するキーワードの詳細なリファレンスです。
 これらのリソースを参考にすることで、Robot Frameworkの書式や仕様を詳しく理解し、テストスクリプトをより効果的に作成できます。

「SeleniumLibrary」
https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html

以上

タイトルとURLをコピーしました