試験パラメータ
各試験ファイル、index.jsonで記述するパラメータについて説明します。
Scenario API
提供する関数
下記例のような形で、export [async functionとして宣言してください]
module.exports = async ( { params , root , page , frame , browser , actions , http , cdpsession , expect , context} )=>{ params // 実行中テストのパラメータ root // playwrightのpageまたはframeインスタンス page // playwrightのpageインスタンス frame // playwrightのframeインスタンス browser // playwrightのbrowserインスタンス actions // ユーティリティ関数 http // axiosのhttpモジュール cdpsession // playwrightのCDPセッションインスタンス(chromiumのみ) context // playwrightのcontextインスタンス expect // playwright(jest)のexpectモジュール
ユーティリティ関数’actions’の機能
actionsで提供する機能になります。
[async] actions.screenshot( msg|String , pageIndex|Number) ・・・ スクリーンショット取得 [async] actions.saveResults( key|String , value|Object,String,Number,Null ) ・・・ テストインスタンス(一時データ)の保存 [async] actions.logger( msg|String , [logLevel|String]) ・・・ ログ出力 [sync] actions.getResults( key|String ) ・・・ テストインスタンス(一時データ)の読込 [async] actions.getFilePath() ・・・ 実行中テストシナリオファイルパスの取得 [async] actions.getRoot( sec|Number ) ・・・ Pageインスタンスの取得。frameSelectorオプションを指定している場合、Frameインスタンスを取得 [sync] actions.getEvidenceDir() ・・・ エビデンスディレクトリパスの取得 [async] actions.setViewport( { width , height } ) ・・・ ウィンドウのViewportサイズ設定
'index.json’の設定パラメータ
index.jsonで記述する試験実行に必要なパラメータについて記述します。
Test scenario
シナリオ名を記述してください。
シナリオ名はindex.json
が格納されているディレクトリ名と一致させてください。
Test description
Test実行時のメモに使用。
Test params
実際の試験で使用するパラメータを記述してください。
下記に例を示します。
"params": { "url": "[URL_ApiFront]", "Username": "your_test_account_name", "password": "your_test_account_password", "query": {}, "dummy_user_1": { "create": [ { "expect_successed": false, "expect_gui_validation": true, "Name": { "value": "John", "id": "1" }, "Age":{ "value": "30", "id": "1" } }, ..... ], .... } }
Test Options
オプションを選択することで試験実行方式を変更することが可能です。
パラメータ | 設定例 | 概要 | 備考 |
---|---|---|---|
headless | TRUE | ヘッドレスフラグ | trueでの使用を推奨 |
devtools | FALSE | Chrome Developer tool Panel有効化フラグ | ※Chromeのみ有効 |
client | “chrome” | 起動ブラウザ | 他 firefox, webkit |
lang | “ja-JP” | 言語 | |
viewport/width | 1366 | 画面サイズ(横幅) | |
viewport/height | 768 | 画面サイズ(高さ) | |
slowMo | 10 | 実行遅延速度 | |
browserTimeout | 0 | ブラウザタイムアウト時間 | |
autoSnapshot | FALSE | 自動スナップショット | |
disableSnapshot | FALSE | 削除スナップショット | |
frameSelector | “casval-content-main” | フレームセレクター | 試験対象のフレーム名定義。対象環境にframeの設定がある場合、rootにframeを渡す。 |
reuseCount | -1 | playwrightリソース再利用数 | playwright実行時のリソース(Browser, page等)の再利用数を設定。 -1または未指定:初回動時のリソースを使用し続ける。 回数指定:指定した回数分試験を実行した後に、Playwrightリソースの開放、再作成を実施する。 試験が長くなる場合、こちらの利用を推奨(詳細はこちらで) |
initTests: [] | _login.js | 初回試験ファイル名(再帰用) | playwright実行時の初回実行E2E試験ファイル名を設定。 Playwrightリソースの開放、再作成時にログイン操作やURL遷移等のE2E試験実行時に必要な初期処理(依存関係等)を実施するための定義。 reuseCountで再利用数を指定した場合はE2E試験実行継続で必要となる。 空または未定義:試験対象の先頭ファイルを初回実行E2E試験ファイルとして利用。 ファイル指定:指定された対象ファイルを初回実行E2E試験ファイルとして利用。 |
パラメータ例:
"defaultOptions": { "lang": "en-US", "viewport": { "width": 1366, "height": 768, }, "headless": false, "devtools": false, "autoSnapshot": false, "snapshotQuality": 10, "frameSelector": "casval-content-main" }
Execute Options
FrontTesterで追加された実行オプションです。
パラメータ | 設定例 | 概要 | 備考 |
---|---|---|---|
setup | Object | 試験setupパラメータ | |
setup.path | ./_setup.js | setupで起動するjsファイルのpath指定 | pathは起動シナリオからの相対pathとしてください。 |
setup.params | Object | setupで起動するパラメータ | setup.jsファイル起動の際に必要なパラメータがあれば記述してください |
duplicateScenarios | Array | 試験ファイル複製用パラメータ | |
duplicateScenarios > Obj.scenario | 000_test.js | 複製したい試験ファイル名 | pathは起動シナリオからの相対pathとしてください。 |
duplicateScenarios > Obj.count | 1 | 複製数 | defalutは0(1回のみ実行)です。0回(スキップ)は設定できません。 |
executeOptionsパラメータ例:
"executeOptions":{ "setup":{ "path":"your/setup/path/from/_scenariodir.js", "params":{ "pattern":"create_single_Object_1" "error":false } }, "duplicateScenarios":[ { "scenario":"00_first.js", "count": 1 } ] }
setup
setupは試験ファイルソート後に起動され、試験実行前にTest params , Test optionsを上書きする機能です。
そのため下記の2点を実装することで、試験条件変更の都度index.jsonを書き換える必要がなく、setup.paramsの変更のみで試験条件の変更が可能になります。
- setup.paramsに試験条件/起動したいパラメータを用意
- setup.pathに指定したファイルで、setup.paramsに応じたパラメータ成形をするコード記述
💡 Tips 試験ファイルの変更とスキップについて
実行試験ファイル自体の変更やスキップ処理を追加することはできません。
試験ファイルのスキップは各ファイルの先頭に試験パラメータの有無等によってスキップするなどの処理を入れることを推奨します。
setup.pathで指定するファイルについて
ファイルはjsで記述し、引数はsetup.paramsで値のみ、returnは{params,options}
で渡してください。
なお、returnを指定しない場合は実行時に引き渡した起動パラメータとなります。
module.exports = async function custom_setup(setup_params) { let params = { // overwrite params } let options = { // overwrite options } /* return で実行パラメータ、起動オプションを上書き可能 null、空オプジェクトを返却した場合は、上書きは実施しません */ return {params ,options} };
duplicateScenarios
同一試験ファイルを複数回連続で実行可能になります。
試験パラメータの変更等は不可となります。
5.API
3.ディレクトリ構成