Summary - Jumeaux
Author: tadashi-aikawa
Description: Check difference between two responses of API.

コンテンツにスキップ

# Addons

Jumeauxではアドオンを利用して処理をカスタマイズすることができます。
アドオンは自作することも可能です。

## System structure

以下はJumeauxの処理を図で表したものです。
画像の青色の部分がアドオンレイヤーです。

## Add-on specifications

各アドオンレイヤーに属するアドオンの仕様は以下のページに記載しています。

アドオンレイヤー | アドオンレイヤーの概要
--- | ---
log2reqs | 任意のFormatをリクエスト形式に変換する
reqs2reqs | リクエスト形式を同し形式の別の値に変換する
res2res | APIレスポンスを判定前に変換する
res2dict | APIレスポンスを差分比較で利用するdictに変換する
judgement | dict同士を比較して判定ステータスを決定する
store_criterion | APIレスポンスを保存する基準を決定する
dump | APIレスポンスを保存前に加工する
did_challenge | 次のchallengeに移る前に処理をする
final | jumeauxの処理が完了する前に処理をする

## Configuration Definitions

アドオンを使用する場合は以下の定義に従って、設定ファイルに追加してください。

### Addons

Key | Type | Description | Example | Default
--- | --- | --- | --- | ---
log2reqs | Addon | log2reqsのアドオン |  |
reqs2reqs | (Addon[]) | reqs2reqsのアドオン |  |
res2res | (Addon[]) | res2resのアドオン |  |
res2dict | (Addon[]) | res2dictのアドオン |  |
judgement | (Addon[]) | judgementのアドオン |  |
store_criterion | (Addon[]) | store_criterionのアドオン |  |
dump | (Addon[]) | dumpのアドオン |  |
did_challenge | (Addon[]) | did_challengeのアドオン |  |
final | (Addon[]) | finalのアドオン |  |

### Addon

アドオン単位での設定です。

Key | Type | Description | Example | Default
--- | --- | --- | --- | ---
name | string | アドオン名称 | csv |
cls_name | (string) | 実行するクラス名 | YourExecutor | Executor
config | (Config) | アドオンの設定 |  |
include | (string) | 読み込む設定ファイルのパス |  |
tags | (string[]) | タグ |  |

## Configuration Examples

以下は設定の一例です。

    # final/notifyで通知手段にSlackを使う設定
    notifiers:
      jumeaux:
        type: slack
        version: 2

    addons:
      log2reqs:
        name: csv

      reqs2reqs:
        - name: shuffle
        - name: head
          config:
            size: 10

      final:
        - name: notify
          tags:
            - production
          config:
            notifies:
              - notifier: jumeaux
                message: "{{ title }} is Finish!! There are {{ summary.status.different }} diffs.."

この設定は以下のように動作します。

1. リクエストファイルをcsvと解釈してパースする
2. 1でパースした結果をシャッフルする
3. 2の結果 先頭10リクエストのみをテストする
4. `--skip-addon-tag production`が指定されていなければ最後にSlackで通知する

4つのアドオンが使用されており、仕様とconfigの定義は各アドオンページをご覧下さい。

- log2reqs/csv
- reqs2reqs/shuffle
- reqs2reqs/head
- final/notify