0.1.4 • Published 3 months ago

ctrn v0.1.4

Weekly downloads
-
License
MIT
Repository
-
Last release
3 months ago

Continuous Testing wRapper for NodeJS

概要

継続試験を簡易に実施するためのテストラッパー
試験実施の際には以下のようなフローを使用することが多いため、
その反復実行を容易にすることを目的とする

  1. テストデータ準備 (DB投入)
  2. 試験実施
  3. 結果取得 (DB, ログ)
  4. 結果判定

使用方法

必要ファイル を用意し、以下の手順で実行する

npm install ctrn
npm run ctrn [config.yml]

必要ファイル

  1. config.yml 設定方法
  2. 実行ファイル
  3. env.json 設定方法

config.yml 作成方法

config.ymlという形式で処理シナリオを定義する
以下のフォーマットに記載される処理を上から実施するため、実行するシナリオの通りに羅列する

config.yml 記載フォーマット

[処理名]:
  process: [機能名]
  args:
    [引数名]: [値]
概要
処理名実行する処理の名前を設定
機能名機能 にある機能名を記載
引数名機能 にある機能に使用する引数を指定
該当引数に設定する設定値を記載

機能

Dump - DBダンプ取得

機能概要

データベース内 該当テーブルに存在するデータを取得、CSVとして出力する

Example

dump:
  process: dump
  args:
    tables: 
      - [table]
      - [table]
    out_path: [path]

引数

引数名概要入力型デフォルト値設定可能値必須
tables取得テーブル名リスト, 文字列--
out_path出力先パス文字列-※1

※1: 実際には出力先パス配下にテーブル名.csvの形式で出力されます

Echo - ログ出力

機能概要

引数に指定した値をログに出力する

Example

echo:
  process: echo
  args:
    [key]: [value]

引数

引数名概要入力型デフォルト値設定可能値必須
key出力キ―文字列--
value出力値文字列--

Explore Log - ログ収集

機能概要

対象区間におけるログを取得する
AWS CloudWatch / Datadog Logs を対象

Example

explore_log:
  process: explore_log
  args:
    application: [application]
    from: [from]
    to: [to]
    query: [query]
    out_path: [path]

引数

引数名概要入力型デフォルト値設定可能値必須
application取得対象アプリケーション名文字列--
from取得区間 From日時--
to取得区間 To日時--
query取得条件日時--
out_path取得ログ出力先日時-※1

※1: 出力パス配下に log_typefromto.log の形式で出力されます

Export - 変数設定

機能概要

引数に指定した値をユーザ設定変数として設定する

Example

export:
  process: export
  args:
    [key]: [value]

引数

引数名概要入力型デフォルト値設定可能値必須
keyユーザ設定変数名文字列--
value設定値文字列--

Insert - DBデータ投入

機能概要

該当テーブルにデータを投入する
投入する対象のデータはCSV形式で指定する

Example

insert:
  process: insert
  args:
    in_dir: [path]

引数

引数名概要入力型デフォルト値設定可能値必須
in_dir取得データディレクトリ文字列-※1

※1: ディレクトリ配下 table.csvを取得し、該当テーブルに登録します

MatchCSV - CSV突合

機能概要

期待値と実績値のCSV間突合を行い、期待値通りの結果が得られていることを確認する

Example

match_csv:
  process: match_csv
  args:
    expect_path: [path]
    actual_path: [path]
    out_path: [path]
    check_type: [check_type]

引数

引数名概要入力型デフォルト値設定可能値必須
expect_path期待値データパス文字列-※1
actual_path実績値データパス文字列-※1
out_path結果出力パス文字列-※1
check_type比較文字列-complete / contain ※2

※1: CSVファイル名、もしくはディレクトリ名を指定します
ディレクトリ指定の場合には配下の同一CSVファイル間を突合します
※2: completeの場合、入出力の行数一致まで確認する / containの場合、実績値データ内に期待値がすべて含まれることを確認する

一致確認条件

以下条件を満たす場合に突合OKとなる

期待値・実績値がディレクトリ指定の場合
  1. 期待値ディレクトリ内に存在するファイルに該当する実績値データが存在する
    ファイル名が期待値・実績値で一致すること
  2. 各期待値ファイルに関して以下を満たすこと
    1. 期待値ファイル内各行について該当カラムが実績値ファイル内に存在するすること
    2. 期待値ファイル内に存在しないカラムについては任意値をとる
    3. check_typeがcompleteの場合、期待値ファイル内各行がすべて実績値ファイルに存在し、余剰な行が存在しないこと
期待値・実績値がファイル指定の場合
  1. 指定された期待値ファイルに関して以下を満たすこと
    1. 期待値ファイル内各行について該当カラムが実績値ファイル内に存在するすること
    2. 期待値ファイル内に存在しないカラムについては任意値をとる
    3. check_typeがcompleteの場合、期待値ファイル内各行がすべて実績値ファイルに存在し、余剰な行が存在しないこと

Send Request - APIリクエスト送信

機能概要

ツールを用いてのAPIリクエスト送信を実施する Newman(Postman)での実行形式をサポートする

Example

send_request:
  process: send_request
  args:
    request_json: [path]
    out_dir: [path]

引数

引数名概要入力型デフォルト値設定可能値必須
request_jsonAPI実行リクエストjson文字列-※1
out_dir結果ファイル保管用ディレクトリ文字列-※1

※1: ディレクトリ配下に結果ファイルを配置します 実行結果はjson,html形式の2つで出力されます

Wait - 指定時間待機

機能概要

指定時間だけ実行待機をする
単位はMS

Example

wait:
  process: wait
  args:
    time: [time]

引数

引数名概要入力型デフォルト値設定可能値必須
time待機時間(ms)数値-0以上整数

環境変数

env.jsonを実行フォルダ直下に配置することで全体の環境変数を設定することが可能
設定できる変数の一覧は以下

API

{
    "api": {
        "request_type": "xxxx"
    }
}
変数名概要デフォルト値
request_typeAPIリクエストに使用するツール-

DB

{
    "db": {
        "db_type": "xxxx",
        "server": "xxxx",
        "port": "xxxx",
        "database": "xxxx",
        "user": "xxxx",
        "password": "xxxx"
    }
}
変数名概要デフォルト値
db_type接続先DB種別-
server接続先server URL-
port接続先DBポート番号-
database接続先DB名-
user接続ユーザー名-
password接続ユーザーパスワード-

Log

{
    "log": {
        "log_type": "xxxx"
    }
}
変数名概要デフォルト値
logログ取得の対象となるサービス-

AWS

{
    "aws": {
        "region": "xxxx",
        "access_key_id": "xxxx",
        "secret_access_key": "xxxx"
    }
}
変数名概要デフォルト値
regionアクセス先リージョン-
access_key_id使用IAMのアクセスキー-
secret_access_key使用IAMのシークレットキー-

DataDog

{
    "datadog": {
        "apikey": "xxxx",
        "applicationkey": "xxxx"
    }
}
変数名概要デフォルト値
apikeyDatadogアクセスキー-
applicationkeyDatadogアプリケーションキー-

変数設定

各パラメータには変数設定を行うことが可能
${変数名} という形式で記載すると
システム変数 および ユーザ設定変数 に設定されている変数の実値を埋め込むことができる

システム変数

変数名概要データ型
start_date処理実行時刻日時
now現在時刻日時

ユーザ設定変数

ユーザ設定 に従う

0.1.4

3 months ago

0.1.3

3 months ago

0.1.2

3 months ago

0.1.1

3 months ago

0.1.0

3 months ago