LoginSignup
0
0

[T-DASH] APIのテストを混在したUIテスト自動化をする

Posted at

Outline

APIのテストを行う場合、SoapUIやPostManといった、APIに特化したテスト自動化ツールが存在する。
ただ、WebのUIと連携して、例えばデータ更新の結果をAPI経由で検証したいとき、APIを混在させてテストしたいケースもある。

T-DASHはUIのテストに強いテスト自動化ツールである。しかし、カスタム動作を用いることで、APIのテストを合わせて行うことが可能になる。

技術的な情報

robot frameworkのAPIを用いたテストを行うライブラリとして、RESTinstanceがある。このkeywordを用いて値の取得や更新、そしてAPIで取得した結果(多くはXMLかJSON)を検証することができる。

主に使うkeywordとして以下のものがある

種類 keyword 内容
リクエスト GET get形式でAPIにリクエストする
リクエスト POST post形式でAPIにリクエストする
検証 Object APIの結果のJSONに関する検証する
検証 Integer APIの結果で整数に関する検証する
検証 String APIの結果で文字列に関する検証する

テスト対象

楽天は、ユーザーが使えるウェブサービスとしてAPIを提供している。
今回、シンプルにトラベル施設検索の結果から検索結果数を変数として取り出し、テストケースにてつかうテストを想定する。
尚、楽天ウェブサービスを使う場合、menuのnew appから、application idを取得する必要がある。
APIでこのidが求められる。

APIの結果、bodyに以下JSONが出力される。
このJSONから、recordCountの値、下図の例では72を取り出す。

image.png

T-DASH

カスタム動作

API.yaml で、以下内容を保存する

ACT-CAT-CUSTOM-5ffd6219-579c-47d4-9325-75a203bc6888:
  action_category_name: API
  icon: ''
  color: '#b9d4b8'
  custom_data:
    file_name: API
    pip_list:
    - RESTinstance
    library_list:
    - REST
  actions:
    ACT-CUSTOM-1a0b0841-8c40-4242-9087-4fd06b2a065f:
      action_name: 楽天トラベル施設検索結果数
      action_type: operation
      action_format: 緯度,経度 =(「設定値1」,「設定値2」) 半径「設定値3」kmで検索
      action_note: ''
      action_args:
      - value1
      - value2
      - value3
      action_def:
      - - '${applicationId} = '
        - Set Variable
        - xxxxxxxxxx
      - - GET
        - https://app.rakuten.co.jp/services/api/Travel/SimpleHotelSearch/20170426?applicationId=${applicationId}&format=json&latitude=${value1}&longitude=${value2}&searchRadius=${value3}
      - - Integer
        - response status
        - '200'
      - - Object
        - response body
      - - ${json} =
        - Object
        - response body
        - required=["pagingInfo", "hotels"]
      - - '${recordCount} = '
        - Set Variable
        - ${json[0]['pagingInfo']['recordCount']}
      - - Log
        - search result count is ${recordCount}

次に、作成されたChromeOpti.yamlをT-DASHの動作定義 -> カスタム動作 -> カスタム動作をインポート にてインポートし、実際にインポートされた設定内容を開く

image.png

テストケース

カスタム動作を呼び出すと、APIをCALLし、検索結果数を取り出す。

image.png

カスタム動作の設定値1~3は以下のとおりである

引数 意味
設定値1 緯度
設定値2 経度
設定値3 半径 (km)
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