Testim Docs JA

Tricentis Testim ユーザー制作日本語翻訳ドキュメント

ダウンロード検証

Testim Docs

Validate download ステップは専用の CLI ステップで、さまざまなファイル形式のダウンロード内容が期待通りであることを検証できます。各ファイル形式に関連するパラメーターをチェックできます。例:CSV ファイルの場合は行数と内容をチェック、画像ファイルの場合は画像タイプと寸法をチェック、MS PowerPoint の場合はスライド数とその内容をチェックできます。

前提条件

  • CLI アクションステップを含むテストをローカルで実行するには、次のコマンドを実行する必要があります:npm i -g @testim/testim-cli && testim connect(下記参照)。

Validate download ステップを含むテストにはファイル URL へのアクセスが必要です。これらのテストを実行するには、Testim Editor Chrome 拡張機能で Allow access to file URLs 権限を有効にする必要があります(下記参照)。

PDF ファイルの Validate download ステップを含むテストには、さらに 2 つの前提条件があります:

  • Chrome 67 以上を使用していること
  • Chrome ブラウザの PDF 設定が次のように設定されていることを確認してください:Download PDF files instead of automatically opening them in Chrome(下記参照)。

「Download PDFs」権限を有効にするには:

  1. Chrome ブラウザで、Chrome メニュー(右上の三点リーダー)をクリックします。
  2. Settings をクリックします。
  3. Privacy and security をクリックします。
  4. Site settings をクリックします。
  5. Additional content settings をクリックします。
  6. PDF documents をクリックします。
  7. default behavior で、Download PDFs option が選択されていることを確認します。

Chrome PDF 設定の手順アニメーション

CLI アクションステップを含むテストをローカルで実行するには:

  1. お使いのオペレーティングシステムの コマンドプロンプト ウィンドウを開きます。
  2. コマンドプロンプトで次のコマンドを入力します:npm i -g @testim/testim-cli && testim connect

コマンドプロンプトでの CLI 接続コマンド入力

  1. プロセスの実行が完了するまで待ちます。

CLI コマンド実行中の画面

Chrome ブラウザで PDF ファイルを自動的にダウンロードするように設定するには(開く代わりに):

  1. Chrome ブラウザで、Chrome メニュー(右上の三点リーダー)をクリックします。

Chrome メニューの表示

Chrome menu のオプションが表示されます。

  1. Settings をクリックします。

Chrome 設定画面

Chrome Settings ページが開きます。

  1. Privacy and security セクションまでスクロールし、Site Settings をクリックします。

プライバシーとセキュリティのサイト設定

  1. Additional content settings セクションまでスクロールします。セクションが展開されていない場合は、クリックして展開します。
  2. Additional content settings セクションで、PDF documents までスクロールしてクリックします。

追加のコンテンツ設定セクション

  1. Download PDF files instead of automatically opening them in Chrome トグルが有効(右側)になっていることを確認します。有効でない場合は、クリックして有効にします。

PDF ダウンロード設定のトグル

設定が有効になります。

Validate download ステップの追加

Validate download ステップを追加する一般的な手順は、ダウンロードするファイル形式(csv、jpg、ppt、doc、xls、image、pdf など)に関わらず同じです。コードとパラメーターは、ダウンロードするファイルの種類や検証したい属性に応じて変わります。以下の手順(CSV ファイルを例として)の後に、各ファイル形式のサンプルコードとパラメーターを示します。

Validate download ステップを追加するには:

  1. 検証を追加したい位置の (矢印記号)(または最終ステップの後の + 記号)にカーソルを合わせます。

テストステップの追加位置

  1. M」(Testim 定義済みステップ)をクリックします。
    Predefined steps メニューが開きます。

Testim 定義済みステップメニュー

  1. Validations をクリックします。
    Validations メニューが展開されます。

Validate download ステップの選択

  1. メニューをスクロールして Validate download を選択します。

Add Step ウィンドウが表示されます。

追加された Validate download ステップ

  1. Name the new step フィールドに、このステップの名前を入力します。
  2. このステップをこのテストまたは他のテストで再利用可能な共有ステップにする場合は、Shared step の横のチェックボックスを選択したまま(デフォルト)にし、Select shared step フォルダーリストからこのステップを保存するフォルダーを選択します。そうでない場合は、チェックボックスの選択を解除します。
    共有ステップの詳細については Groups を参照してください。
  3. Create Step をクリックします。
    function エディターが開き、右側に Properties パネルが表示されます。

Validate download エディター画面

  1. Properties パネルの Description に必要なら説明を入力します(既定: “Run download validation”)。
  2. 次の手順で必要なパラメーターを定義します:
    Properties パネルで + PARAMS ボタンをクリックします。
    JS parameter: JavaScript パラメーターを追加する場合は、ドロップダウンリストから JS を選択し、JavaScript パラメーターを入力します。
    Package parameter: NPM パッケージ変数を追加する場合は、ドロップダウンリストから Package を選択し、パッケージ変数を入力します。

パラメーター編集のアニメーション

d. 追加した項目は “param” または “packageVariable” といった既定名になります。わかりやすい名前にするには edit アイコンから変更してください。

パラメーター設定画面

  1. function エディターにコードを記述します。定義したパラメーターはコード内から参照できます。

npm パッケージのインストールコード例

  1. ステップが失敗した場合の動作を指定するには、Properties パネルの When this step fails の下矢印をクリックし、希望するオプションを選択します。オプション: Mark error & stopMark error & continueMark warning & continue
  2. このステップの実行条件を制御するには、Properties パネルの When to run step の下矢印をクリックし、希望するオプションを選択します。詳細については、Conditions を参照してください。
  3. デフォルトのタイムアウト設定(30000ms)を上書きするには、Properties パネルの Override timeout ボタンをクリックし、希望するタイムアウト値を入力します。
  4. 左上の戻る矢印でエディターに戻ります。

CSV ファイル検証のコード例

ステップが作成されます。

Validate download ステップの作成完了

Validate download の例

CSV ファイル

Validate download ステップで、行数や内容など CSV の高度な検証ができます。
以下の例では、CSV の行数が 237 行で、A1 セルに "JURISDICTION NAME" が含まれることを検証します。

Excel ファイル検証用パッケージのインストール

Example Code:

const csvStr = fileBuffer.toString("utf8");
return csv({
noheader: true,
output: "csv"
})
.fromString(csvStr)
.then(csvRow => {
// Number of rows in CSV
console.log("Number of rows in CSV: ", csvRow.length);
// Value in csvRow[0][0] in CSV
console.log("Value in csvRow[0][0] in CSV: ", csvRow[0][0]);
if (csvRow.length !== parseInt(expectedNumOfRows)) {
return Promise.reject(
new Error(`Number of rows doesn't match ${csvRow.length}`)
);
}
if (csvRow[0][0] !== expectedText) {
return Promise.reject(
new Error(`Failed to find expected text ${csvRow[0][0]}`)
);
}
});

Example Parameters:

Name Type Value
csv Package [csvtojson@2.0.8]
expectedNumOfRows JavaScript '237'
expectedText JavaScript 'JURISDICTION NAME'

画像ファイル

Validate download ステップで、画像タイプや寸法など画像の高度な検証ができます。
以下の例では、ダウンロードした画像ファイルの名前が yellow-cat-cartoon-style-clipart、ファイル形式が jpg、寸法が 573(幅)X 600(高さ)であることをチェックします。

Excel ファイル検証のコード例

Example Code:

var dimensions = sizeOf(fileBuffer);
var { width, height, type } = dimensions;
console.log('Image dimensions', JSON.stringify(dimensions));
return (
width === parseInt(expectedWidth) &&
height === parseInt(expectedHeight) &&
type === expectedImageType &&
fileName.includes(expectedName)
);

Example Parameters:

Name Type Value
sizeOf Package [image-size@0.6.3]
expectedName JavaScript 'yellow-cat-cartoon-style-clipart'
expectedImageType JavaScript 'jpg'
expectedWidth JavaScript '573'
expectedHeight JavaScript '600'

MS Excel ファイル

Validate download ステップで、シート数やシート名など Excel の高度な検証ができます。
以下の例では、シート数が 3、最初のシート名が “Example Test” であることを検証します。

PowerPoint 検証用パッケージのインストール

Example code:

const { SheetNames, Sheets } = XLSX.read(fileBuffer);
const sheet = SheetNames[0];
if (SheetNames.length !== parseInt(expectedNumOfSheets)) {
throw new Error(`Failed to validate: Number of sheets doesn't match "${expectedNumOfSheets}"`);
}
if (sheet !== expectedPageName) {
throw new Error(`Failed to validate: Sheet 1 name doesn't match "${expectedPageName}"`);
}

Example Parameters:

Name Type Value
XLSX Package [xlsx@0.14.1]
expectedNumOfSheets JavaScript '3'
expectedPageName JavaScript 'Example Test'

MS PowerPoint ファイル

Validate download ステップで、スライド数や内容など PowerPoint の高度な検証ができます。
以下の例では、ダウンロードした MS PowerPoint ファイルのスライド数が 9 で、最初のページに Department、2 ページ目に Location という単語が含まれていることをチェックします。

PowerPoint ファイル検証のコード例

Example code:

var zip = new JSZip(fileBuffer);
var doc = new Docxtemplater();
doc.loadZip(zip);
const slides = Object.keys(doc.zip.files).filter(
fileName =>
_.startsWith(fileName, "ppt/slides/") && _.endsWith(fileName, ".xml")
);
console.log("Num of slides:", slides.length);
if (slides.length !== parseInt(excpectedNumOfSlides)) {
return false;
}
expectedText = JSON.parse(expectedText);
expectedText.forEach(item => {
const { slideIndex, text } = item;
const slideText = doc.getFullText(slides[slideIndex]);
if (!slideText.includes(text)) {
throw new Error(`Failed to find ${text} in slide index: ${slideIndex}`);
}
});

Example Parameters:

Name Type Value
Docxtemplater Package [docxtemplater@3.9.5]
JSZip Package [jszip@2.*]
expectedText JavaScript :0,"text":"Department"},{"slideIndex":1,"text":"Location"}]
Package [lodash@4.17.11]
excpectedNumOfSlides JavaScript '9'

MS Word ファイル

Validate download ステップで、内容など Word の高度な検証ができます。
以下の例では、ダウンロードした Word に “Item A” というテキストが含まれることを検証します。

Word ファイル検証のコード例

Example code:

var zip = new JSZip(fileBuffer);
var doc = new Docxtemplater();
doc.loadZip(zip);
var docxText = doc.getFullText();
console.log('text:', docxText);
return docxText.includes(expectedText);

Example Parameters:

Name Type Value
Docxtemplater Package [docxtemplater@3.9.5]
JSZip Package [jszip@2.*]
expectedText JavaScript 'Item A'

PDF ファイル

Validate download ステップで、ページ数や内容など PDF の高度な検証ができます。

前提条件:

  • Chrome 67 以上を使用していること
  • Chrome の PDF 設定で Download PDF files instead of automatically opening them in Chrome を有効にしていること

以下の例では、PDF のページ数が 2、テキスト "A Simple PDF file" が含まれることを検証します。

PDF ファイル検証のコード例

Example code:

return pdf(fileBuffer).then((data) => {
const { numpages, text } = data;
// number of pages
console.log('numpages', numpages);
// PDF text
console.log('text', text);
if (numpages !== parseInt(expectedNumOfPages)) {
return Promise.reject(new Error(`Invalid number of pages: ${numpages}`));
}
if (!text.includes(expectedText)) {
return Promise.reject(new Error(`Invalid pdf text: ${text}`));
}
});

Example Parameters:

Name Type Value
pdf Package [pdf-parse@latest]
expectedNumOfPages JavaScript '2'

| expectedText | JavaScript | 'A Simple PDF File' |