mastermindを使ってみる①

はじめに

github.com

mastermindとは

  • mitmproxyを利用した、mockサービス
  • URLごとやURL patternごとに定義する
  • ustwoという会社でつくられているらしい
  • MIT License

web開発で以下のような状況で利用できそうです。

  • フロントエンド開発で画像やCSSを本番環境のリクエストをローカルのファイルに書き換え
  • バックエンド開発で、APIの書き換えや状態の再現

▼もくじ

インストール方法

mastermind/install.md at master · ustwo/mastermind · GitHub

こちらを参考に、インストールします。

  1. Homebrewからインストール
  2. 証明書の設定

特に詰まることろはありませんでした。

実行

READMEを試しても上手くいかなかったので、
簡単にサンプルを作成してみた。cloneしてみてください。

https://github.com/mickey390/mastermind-sample

起動

$ cd mastermind-sample
$ sudo mastermind --config test.toml

rulesetごとの有効化/無効化

状態の遷移に関しては、下記が参考になる。

https://raw.githubusercontent.com/ustwo/mastermind/master/docs/schematics/driver-stateful.mmd.png

ブラウザで確認

今、localルールセットの中で、はてなのロゴの画像を ローカルPC上のファイルに差し替えるルールを書いた。

#local.yaml
- name: foo image
  url: http://www.hatena.ne.jp/images/portal/logo-portal-top2@2x.png
  request:
    skip: true
  response:
    body: ./bar.png

rulesetごとの有効化/無効化を参考に、、
localを無効の状態では、
はてなのロゴが表示されており。

localを有効の状態では、
別の画像が表示されている。

停止

ctrl + cで停止出来る場合と出来ない場合がある。その場合は、いまのところ↓で

sudo killall -9 mastermind && sudo proxyswitch --disable

https://github.com/ustwo/mastermind/issues/32

さいごに

今回はとりあえず動かせるところまで行けた。
もう少し掘り下げて使ってみたい。