Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

徹底ガイド:テストスクリプトでテスト自動化を実現する方法

本文では、テストスクリプトとは何かを説明した上、それを使ってテスト自動化を実現する方法を徹底的に解説します。

中村 拓也

中村 拓也

Updated on 11月 12, 2024

テスト自動化について

テスト自動化(Test Automation)は、ソフトウェア開発プロセスの一部として、テスト作業を自動化することを指します。従来の手動テストに比べて、テストケースの実行、結果の検証、テストデータの準備など、さまざまなテスト関連のタスクを自動化することで、効率性と品質の向上を図ります。

テスト自動化のメリット

テスト自動化は、ソフトウェアの品質を確保するために重要な役割を果たします。以下に、テスト自動化の主な利点をいくつか挙げます。

効率性の向上: テスト自動化により、テストケースを素早く繰り返し実行することが可能となります。手動で行う場合に比べてテストの実行時間が短縮され、効率性が向上します。

網羅性の向上: テスト自動化では、大量のテストケースを作成し、網羅的に実行することができます。手動でテストケースを繰り返し実行する場合に比べて漏れやヒューマンエラーが減り、より網羅的なテストが可能となります。

早期のバグ検出: テスト自動化は、開発プロセスの早い段階から実施することができます。バグを早期に検出し、修正することで、ソフトウェアの品質向上と開発コストの削減につながります。

再利用性の向上: テスト自動化では、作成したテストスクリプトやテストデータを再利用することができます。これにより、将来のバージョンや機能のテストにも効果的に活用することができます。

一般的に、テスト自動化は専用のテスト自動化ツールやフレームワークを使用して行われます。これらのツールやフレームワークは、テストケースの作成、実行、結果の検証などの自動化をサポートします。プログラミング言語やスクリプト言語を使用して、テストスクリプトを作成し、テストの自動化を実現します。

テストスクリプトとは

テストスクリプト(Test script)は、ソフトウェアのテストを自動化するために使用されるスクリプトやコードのことを指します。テストスクリプトは、テストケースを実行し、期待される結果と実際の結果を比較してテスト結果を判定するための手順や指示を含んでいます。テストスクリプトは通常、テスト自動化ツールやフレームワークによって使用される特定の言語で書かれます。プログラミング言語にはさまざまな選択肢がありますが、一般的にはテスト自動化ツールに組み込まれているスクリプト言語やスクリプト化されたインターフェースを使用することが多いです。具体的な例としては、SeleniumやRobot Frameworkなどがあります。

テストスクリプトは、以下のような要素で構成されることがあります。

  1. テストケースのセットアップ(Setup): テストの実行に必要な初期条件や環境を設定します。たとえば、データベースの接続やテストデータの準備などが含まれます。
  2. アクションの実行: テスト対象のソフトウェアやアプリケーション上で、特定のアクションや操作を実行します。たとえば、ボタンのクリック、入力の送信、ページの遷移などが含まれます。
  3. データの入力と出力: テストスクリプトは、テストデータを使用してテストを実行し、結果を取得します。入力データの準備やフォーマットの検証、出力結果の比較などが含まれます。
  4. アサーション(Assertion): テストスクリプトは、期待される結果と実際の結果を比較するアサーションステップを含みます。テストの合格または不合格を判定するために、条件や予想される結果を検証します。
  5. クリーンアップ(Cleanup): テストの実行後、テスト環境やデータのクリーンアップを行います。テストが終了した後に、ソフトウェアやシステムを元の状態に戻すための手順が含まれます。

テストスクリプトの例

次は、テスト自動化を実現できるテストスクリプトの実例で、テストスクリプトをどのように書くかを解説します。

もし、Pythonと Seleniumを組み合わせて利用することで、1つのページをテストします。テストの目的は、そのページ上の検索ボックスが正確に動作できるかどうかを検証することになります。そこで次のようにコーディングすることができます:

# 必要なライブラリーを導入
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# ブラウザの設定
browser = webdriver.Firefox()  # Firefoxブラウザ
# browser = webdriver.Chrome()  # Chromeブラウザ

# テストのウェブサイトを開く
browser.get("http://www.example.com")

# テストステップの設定
search_box = browser.find_element_by_name("q")
search_box.send_keys("Hello World")
search_box.send_keys(Keys.RETURN)

# テスト結果の検証(アサーション)
assert "No results found." not in browser.page_source

# ブラウザを閉じる
browser.close()

以上のようなコードは、同じなテスト目的なら何回でも繰り返し実行可能なので、実際に自動化のテストスクリプトになります。

Apidogはテストスクリプトを完璧にサポート

APIテストの自動化は、テストスクリプトによって実現されることができます。が、テストスクリプトを完璧にサポートできるAPIテストツールを選択する必要があります。Apidogには、テスト自動化の機能が備えて、そのUIも日本語されたので、本文では、Apidogを利用して、このような操作をやり遂げる手順を紹介します。

button

リクエストの作成

Apidogは、前処理と後処理操作をサポートするので、それを使ってリクエストを作成すると、前/後処理の「カスタムScript」を利用して、テストスクリプトをカスタマイズすることができます。

Apidogはテストスクリプトをサポート

Apidogのデフォルトスクリプトの言語は、JavaScriptです。

カスタムスクリプトの作成

ここで自分でコードを入力することもできますし、Apidogが提供してくれるスクリプトを使用することもできます。

Apidog内蔵のスクリプト

例えば:

// ステータスコードが200であるかどうかを検証
pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
      });
// bodyにString型が含まれるかどうかを検証
pm.test("Body matches string", function () {
        pm.expect(pm.response.text()).to.include("string_you_want_to_search");
      });
// Body jsonの検証
pm.test("Your test name", function () {
        var jsonData = pm.response.json();
        pm.expect(jsonData.value).to.eql(100);
      });
// body のString型の検証
pm.test("Body is correct", function () {
        pm.response.to.have.body("response_body_string");
      });
// bodyを編集
pm.response.setBody({});
// headerにはcontent-typeが含まれるかどうかを検証
pm.test("Content-Type is present", function () {
        pm.response.to.have.header("Content-Type");
      });
// 応答時間が200ms以内であるかどうかを顕彰
pm.test("Response time is less than 200ms", function () {
        pm.expect(pm.response.responseTime).to.be.below(200);
      });
// postリクエストが成功かどうかを検証
pm.test("Successful POST request", function () {
        pm.expect(pm.response.code).to.be.oneOf([201,202]);
      });

ここで検証(アサーション)の条件を複数設定することもできます。

Apidogで複数のスクリプトを条件に設定

例えば:ステータスコードが200、応答時間が200m秒未満といった2つの条件を設定します。

アサーション結果の表示
button

ApidogでAPIテストの自動化を実現する方法

Apidogは、APIのリクエストをグループ化にして、リクエストを一括送信してレスポンスを検証することにより、APIテストの自動化を簡単に実現することもできるので、作業時間と手間を大幅に節約できます。

ステップ⒈ プロジェクトを選択して、左側メニューから「自動テスト 」を選択して、「」ボタンをクリックして、「新規テストケース」を選択します。

Apidogで新規テストーケースを作成

ステップ⒉ここで新規テストケースの各項目を設定して、「確認」ボタンを押します。

新規テストケースの情報を入力

ステップ⒊ テストのステップを追加します。APIのテストケースから、APIからインポートすることもできますし、カスタムRequestを追加することもできます。また、必要に応じて、グループ、繰り返し、条件分岐、待ち時間などの項目を設定することも可能です。

テストステップの追加

ステップ⒋ 右側のメニューでテストの設定項目を自分のニーズに応じてカスタマイズすることができます。

テストの設定

ステップ⒌ 設定が終わると、「実行」ボタンをクリックして、テストを開始します。テストプロセスが設定したテストステップを順番に行い、テストプロセスが終わると、詳細のテストレポートが生成され、各リクエストの詳細情報も確認できます。

テストのレポートの取得
button
初心者必読!ApidogでのPOSTリクエスト作成法効果的な戦略

初心者必読!ApidogでのPOSTリクエスト作成法

Apidogを使用してPOSTリクエストを作成するプロセスは簡単で、API開発とテストを合理化する幅広い機能を提供します。初心者から経験豊富な開発者まで、Apidogは強力なツールとして役立ちます。

中村 拓也

10月 21, 2024

手動テスト完全解説:品質を保証する最後の砦効果的な戦略

手動テスト完全解説:品質を保証する最後の砦

手動テストはソフトウェアテストライフサイクルに欠かせない要素であり、アプリケーションの品質、使いやすさ、機能を保証します。自動化の利点がある一方で、手動テストは機械では得られない貴重な洞察と創造性を提供し、包括的なテスト戦略として重要です。

中村 拓也

10月 18, 2024

PostmanでHTTP 405 メソッドなしエラーを修正する方法効果的な戦略

PostmanでHTTP 405 メソッドなしエラーを修正する方法

HTTP 405エラーコードは、無効なAPIキーまたはアクセストークンを使用してサーバーにアクセスしようとすると発生します。この記事では、405エラーについて学び、それを修正する方法について、段階的に解説します。

中村 拓也

8月 11, 2024