mabl-cli ノードパッケージを使用すると、JestなどのJavaScriptテストフレームワークでmablテストをローカルで実行できます。既存のJavaScriptベースのテストスイート内でCIパイプラインの一部としてmablテストを実行する場合は、このパッケージを使用してください。インストール、APIキー認証、使い始め方など、CI環境でのmablテスト実行に関するその他の実装については、CI環境内でのテストの実行に関する記事をご覧ください。
この記事は、createBrowserTestsRunner APIを使用したテストの実行に関するリファレンスです。
開始する前に
mabl CLIを初めて使用する場合は、CLIの概要のドキュメントを参照してください。
インストール
mabl-cliをプロジェクトの別の開発依存関係としてインストールします。
npm install @mablhq/mabl-cli@2.107.63 --save-devクイックスタート:単一テストの実行
ブラウザーテストを実行するには、createBrowserTestsRunner関数をテストファイルにインポートして、実行するテストスイートを定義します。
次の例では、ヘッドレスモードで単一のテストを実行し、失敗がないことをアサートします。この例をご自身のプロジェクトで使用するには、TEST-IDとENV-IDを、この実行で使用するそれぞれのIDに置き換えてください。
const {createBrowserTestsRunner} = require('@mablhq/mabl-cli');
describe('Run mabl tests locally', () => {
it('Run single test', async () => {
const mablTestRunner = await createBrowserTestsRunner({
testId: 'TEST-ID',
branchName: 'master',
environmentId: 'ENV-ID',
headless: true,
filterHttpRequests: false,
});
const result = await mablTestRunner.run();
expect(result.numFailedTests).toEqual(0);
expect(result.success).toEqual(true);
}, 600_000);
});import {
createBrowserTestsRunner,
TestRunConfig,
TestResults,
} from '@mablhq/mabl-cli';
describe('Run mabl tests locally', () => {
it('Run single test', async () => {
const testRunConfig: TestRunConfig = {
testId: 'TEST-ID',
branchName: 'master',
environmentId: 'ENV-ID',
headless: true,
filterHttpRequests: false,
};
const mablTestRunner = await createBrowserTestsRunner(testRunConfig);
const result: TestResults = await mablTestRunner.run();
expect(result.numFailedTests).toEqual(0);
expect(result.success).toEqual(true);
}, 600_000);
});このコード例では、createBrowserTestsRunner関数に対して非同期な呼び出しを行い、MablTestRunnerオブジェクトを作成しています。createBrowserTestsRunner関数には、実行するテストを示すテスト実行設定オプションが含まれています。テストを実行して結果を返すために、このコード例では、MablTestRunnerインスタンスで.run()を呼び出しています。
複数テストの実行
1回の呼び出しで複数のテストを実行するには、labelsIncludeを使用して、1つ以上のラベルに一致するすべてのテストを選択します。
次の例では、smoke というラベルの付いたすべてのテストを実行します。smoke をご自身のラベルに置き換え、ENV-ID を 正しいIDに置き換えてください。
const {createBrowserTestsRunner} = require('@mablhq/mabl-cli');
describe('Run mabl smoke tests', () => {
it('Run all smoke tests', async () => {
const mablTestRunner = await createBrowserTestsRunner({
labelsInclude: ['smoke'],
branchName: 'master',
environmentId: 'ENV-ID',
headless: true,
filterHttpRequests: false,
});
const result = await mablTestRunner.run();
expect(result.numFailedTests).toEqual(0);
expect(result.success).toEqual(true);
}, 600_000);
});import {
createBrowserTestsRunner,
TestRunConfig,
TestResults,
} from '@mablhq/mabl-cli';
describe('Run mabl smoke tests', () => {
it('Run all smoke tests', async () => {
const testRunConfig: TestRunConfig = {
labelsInclude: ['smoke'],
branchName: 'master',
environmentId: 'ENV-ID',
headless: true,
filterHttpRequests: false,
};
const mablTestRunner = await createBrowserTestsRunner(testRunConfig);
const result: TestResults = await mablTestRunner.run();
expect(result.numFailedTests).toEqual(0);
expect(result.success).toEqual(true);
}, 600_000);
});テスト実行設定
実行するテストを指定するには、次のいずれかのオプションが必要です:testId | runId | labelsInclude | fromPlanId。目的に合ったものを選択してください。
-
testId— IDで特定の単一テストを実行します。 -
runId— 特定の過去のテスト実行を再実行し、その実行の設定(環境、クレデンシャル、URL)を再利用します。 -
labelsInclude— 1つ以上のラベルに一致するすべてのテストを実行します。 -
fromPlanId— 特定のプランに属するすべてのテストを実行します。fromPlanIdオプションを使用したテストの実行は、mablクラウドでのプラン実行ではありません。ステージ、ブラウザ設定、共有変数などの高度なプラン設定は適用されません。
createBrowserTestsRunner関数で利用可能なすべてのtestRunConfigオプションを次の表に示します。
| オプション | タイプ | 説明 |
|---|---|---|
branchName |
文字列 | テストを実行するmablブランチの名前 |
branchChangesOnly |
ブール値 |
branchNameオプションとともに使用します。指定したブランチにないテストを除外します。デフォルト値はfalseです。 |
credentialsId |
文字列 | テストで使用するクレデンシャルのID |
environmentId |
文字列 | テストを実行するmabl環境。適切な環境変数と最新の検索情報がテストの実行に確実に使用されるようにする場合に指定します。注: 環境を設定することで、デフォルトのURLがオーバーライドされることはありません。URLをオーバーライドするには、urlオプションを使用します。 |
fromPlanId |
文字列 | 特定のプランに関連付けられたテストを実行します。 |
headless |
ブール値 | ブラウザーウィンドウを開かずに、バックグラウンドでテストを実行します。デフォルト値はfalseです。 |
labelsExclude |
配列 - 文字列 | スペース区切りのラベルのリストに一致するテストを除外します。 |
labelsInclude |
配列 - 文字列 | スペース区切りのラベルのリストに一致するテストを実行します。例: ['label1', 'label2']
|
testId |
文字列 | 実行するテストのID |
runId |
文字列 | 環境、クレデンシャル、URLなどの設定を取得するテスト実行のID。 |
url |
文字列 | テストを実行するURL |
basicAuthCredentialsId |
文字列 | テスト実行の基本認証で使用するクレデンシャルのID |
workspaceId |
文字列 | テストを実行するワークスペースのIDです。labelsIncludeを使用する場合は必須です。それ以外の場合は、複数のmablワークスペースに所属しているときにこのオプションを使用してください。 |
結果を返す
mablTestRunnerを定義した後、.run()関数を呼び出してすべてのテストを実行し、テスト結果を返します。時間はすべて、UNIXエポックからのミリ秒単位の時間です。
戻り値: TestResults
-
numFailedTests- 数値 -
numPassedTests- 数値 -
numSkippedTests- 数値 -
numTotalTests- 数値 -
testResults- 配列 -テスト結果-
status- 文字列 (passed | failed | skipped) -
errorMessage- 文字列 -
testName- 文字列 -
startTime- 数値 -
endTime- 数値
-
-
startTime- 数値 -
endTime- 数値 -
totalTimeSeconds- 数値- 合計テスト時間 (秒)
-
success- ブール値