0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[OutSystems]BDDFramework Client SideのAPI実行

Posted at

最近追加された、OutSystemsのClient Actionに対してユニットテストを書けるモジュール、BDDFramework Client Side。
このモジュールにも、BDDFrameworkと同じREST APIが提供されていて、外部から自動実行させることができます。

確認環境

Personal Environment(Version 11.12.0 (Build 30002))
Service Studio (Version 11.11.9)
BDDFramework Client Side (Version 1.0.0)

REST APIでのテスト動作の仕組み

以下の図で操作の流れを説明します。
image.png

①:利用者が、TestRunner_APIモジュールにあるREST APIに実行をリクエスト
②:REST APIは、内部でTestRunner_Ext ExtensionにあるActionを起動
③:Actionは、PuppeteerSharpというライブラリを経由してChromiumをサーバー上で操作
④:渡されたパラメーターからテスト対象画面のURLを決定し、Chromiumに開くことでテストを実行する。実行が完了したことを検知すると、テストスイートのJavaScriptオブジェクトをJSONに変換する関数を実行して結果を取り出す

API実行方法

事前準備

BDDFrameworkClientSideをブラウザでプレビューすると、Welcome Screenが以下の通り開きます。
image.png

テストをAPI経由で実行するためには、この画面でChromiumをサーバーにインストールしておく必要があります。
インストール作業はボタンを押すだけ。背後で、必要なファイルのダウンロードと保存が行われます。

一度ダウンロードしておけば、Welcome画面の「Chromium Status」が「Chromium is correctly installed.」に変わるのでわかります。

API

Forgeからインストールしたアプリケーション内に、TestRunner_APIというモジュールがあります。
このモジュールのLogicタブ > Integrationsフォルダ > RESTの下に、

image.png

というAPI。
2つありますが、処理はほぼ同じ。ここでは、v2の方のインターフェースを見ていきます。

なんで出たばかりのモジュールにv1とv2の2バージョンのAPIがあるのかというと、(Client Sideではない)BDDFrameworkに合わせたものと思われます。

BDDFramework APIのバージョンの違いについては、以下を参照してください。
API V2

パラメータの確認

ここでは、動作確認に必要な分だけ見ていきます。

  • TestESpace:BDDFramework Client Sideを利用して作成した「テストケースを含むモジュール名」
  • TestSuiteScreen:上記モジュール内で、実行したい「テストスイート画面名」

必須なのは上記2つのみ。

APIのURLは、

https://OutSystems環境のホスト/TestRunner_API/rest/v2/BDDTestRunner/「テストケースを含むモジュール名」/「テストスイート画面名」

TestESpaceとTestSuiteScreen以外のパラメータはheader渡しであるため、HTTPリクエストのヘッダーに詰めて渡す。テストするときはPostmanとかFiddlerが便利ですね。API動作確認が目的であれば、指定不要です。

実行結果はJSONで返ってきます。テストスイート内での成功ケース数、失敗ケース数、各ケースのidやDescriptionなど。

PEでの動作について

API経由でのテスト実行は、Personal Environmentではサポートされていません。
ドキュメントによると、Chromiumをサーバーにインストールする権限がないためとのこと。

Chromiumのダウンロードは、TestRunner_Ext ExtensionのDownloadChromium Actionで行います。このActionはPuppeteerSharpを使っています。実はUltimatePDFという別のForgeコンポーネントもこれを使っていて、そちらはTempフォルダにダウンロードすることで権限問題を回避しているようです。つまり、この方法を取れば、BDDFramework Client SideをPersonal Environmentで実行することは不可能ではないことに。

関連

Client Action用のBDDFrameworkのチュートリアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?