Outline
T-DASHでは画面要素を簡単に取得でき、テスト自動化を実現することができる。
ただし、CANVASなどを用いたWEB画面では、要素を特定することが困難である。
その場合、画面上のx,y軸をベースに操作することでテスト自動化を実現することはできる。
ただし、座標軸でテストを行う場合、課題はある
- 画面解像度が異なる環境で動かなくなることがある
- ブラウザや、ブラウザのウィンドウサイズによって動かなくなることがある
- ちょっとしたUI変更で、座標を取り直す必要がある
このように、座標軸を用いることのデメリットを理解したうえで使う必要がある。
技術的な情報
pythonのライブラリ、PyAutoGUIを用いることで実現することができる
主な機能として
- マウスの操作を座標軸を指定して行うことができる
- ドラッグ&ドロップを再現することができる
- キーボード処理、スクリーンショット機能などもある
今回は、マウス操作を主に使用する。
T-DASH
カスタム動作
python ライブラリ
以下スクリプトをlib_pyautogui.pyのファイル名として保存する
@lib_pyautogui.py
#
# reference
# https://pyautogui.readthedocs.io/en/latest/index.html
#
#0,0 X increases -->
#+---------------------------+
#| | Y increases
#| | |
#| 1920 x 1080 screen | |
#| | V
#| |
#| |
#+---------------------------+ 1919, 1079
import pyautogui
import time
def move_mouse_to(str_x, str_y):
x = int(str_x)
y = int(str_y)
pyautogui.moveTo(x, y)
def click_mouse_left(str_x, str_y):
x = int(str_x)
y = int(str_y)
pyautogui.click(x, y)
def click_mouse_right(str_x, str_y):
x = int(str_x)
y = int(str_y)
pyautogui.click(x, y)
def click_mouse_double(str_x, str_y):
x = int(str_x)
y = int(str_y)
pyautogui.doubleClick(x, y)
def mouse_drag_to(str_x, str_y):
x = int(str_x)
y = int(str_y)
time.sleep(1)
pyautogui.dragTo(x, y, duration=1.0, button='left')
def mouse_scroll_wheel(str_v,):
v = int(str_v)
pyautogui.scroll(v)
①作成したpython scriptを自作ライブラリのフォルダに格納する
②配置後、Libraryの追加を行う
(lib_pyautogui.pyをフォームに入力し、⊕ボタンをクリックする)
robotframework library
以下設定ファイルを Custom.yamlで保存する
@Custom.yaml
ACT-CAT-CUSTOM-6a8a2f90-b3cc-44c4-aca3-23e8684421de:
action_category_name: Custom
icon: ''
color: '#0ad4bf'
custom_data:
file_name: custom
pip_list:
- pyautogui
library_list:
- lib_pyautogui.py
actions:
ACT-CUSTOM-ea69a8c7-f48f-45f5-9924-9e08ec786dd5:
action_name: マウス左クリック
action_type: operation
action_format: x=「設定値1」, y=「設定値2」をマウス左クリック
action_note: ''
action_args:
- value1
- value2
action_def:
- - click_mouse_left
- ${value1}
- ${value2}
ACT-CUSTOM-daa28828-c879-4aa4-878d-df856ccbbf5a:
action_name: マウス右クリック
action_type: operation
action_format: x=「設定値1」,y=「設定値2」でマウス右クリック
action_note: ''
action_args:
- value1
- value2
action_def:
- - click_mouse_right
- ${value1}
- ${value2}
ACT-CUSTOM-3148bab5-cde6-4be4-ae92-93d0c2109bd3:
action_name: マウスダブルクリック
action_type: operation
action_format: x=「設定値1」,y=「設定値2」でマウスダブルクリック
action_note: ''
action_args:
- value1
- value2
action_def:
- - click_mouse_double
- ${value1}
- ${value2}
ACT-CUSTOM-95e80531-00e6-46e5-b268-3d2c7751535b:
action_name: マウスを動かす
action_type: operation
action_format: x=「設定値1」,y=「設定値2」にマウスカーソルを動かす
action_note: ''
action_args:
- value1
- value2
action_def:
- - move_mouse_to
- ${value1}
- ${value2}
ACT-CUSTOM-bcd2fcda-3081-4474-93f6-f9ad4d7c98a1:
action_name: マウスでドラッグする
action_type: operation
action_format: 現在地からx=「設定値1」,y=「設定値2」にマウスドラッグする
action_note: ''
action_args:
- value1
- value2
action_def:
- - mouse_drag_to
- ${value1}
- ${value2}
ACT-CUSTOM-bcba6c5c-1a3e-4c22-a8ef-c7609ecee46e:
action_name: マウスのホイールをスクロールする
action_type: operation
action_format: マウスのホイールを「設定値1」だけスクロールする
action_note: ''
action_args:
- value1
action_def:
- - mouse_scroll_wheel
- ${value1}
次に、Custom.yamlをT-DASHの動作定義 -> カスタム動作 -> カスタム動作をインポート にてインポートし、実際にインポートされた設定内容を開く
以下のように、6つのマウス操作のカスタム関数が作成される。
テストケース
基本的に、マウス操作を行いたい座標軸x,yを引数に設定する。