Fusic Tech Blog

Fusion of Society, IT and Culture

mockmockでLINE Beaconのバックエンドをテストするためのプロジェクトを公開しました
2020/05/14

mockmockでLINE Beaconのバックエンドをテストするためのプロジェクトを公開しました

岡嵜です。
先日、LINE Beaconを使ったIoTシステムの記事を公開しましたが、改めて「IoTシステムのテストは課題が多い」と感じました。

そこで、諸々の課題を解決すべく「LINE BeaconのWebhook通知を模擬するmockmockプロジェクト」を公開しましたのでご紹介します。

mockmock-logo

IoT開発のテストを支援 | mockmock

テストをしていて感じた課題

テストに時間がかかる

AWS SAMを作ってスピーディーにバックエンドを作ったものの、Lambdaを動かすためにはJSONをPOSTしなければなりません。

curlコマンドを使ってPOSTしても良いですが、POSTするデータを誤りなく入力するのが手間です。

実機を使ってテストしても良いのですが、今回のシステムの場合、テストをする度に部屋を出たり入ったりする必要があり、更に時間がかかります。家族からも「お父さん、ちゃんと仕事してるの?」と白い目で見られます。

本番さながらのテストが難しい

今回のシステムだけでも以下のケースでテストする必要があります。

  • 部屋を出たケース
  • 部屋に戻ったケース
  • 未知のHWIDをPOSTされたケース
  • 未知のユーザIDをPOSTされたケース
  • 複数のPOSTが同時に発生したケース

curlコマンドを駆使してこれらを網羅的にテストするのはなかなかの手間です。

mockmockを使ってテストをする

上記の課題を解決するために、「LINE BeaconのWebhook通知を模擬するmockmockプロジェクト」を公開しました。使い方は以下の通りです。

1. アカウント登録

mockmockのアカウント登録ページからアカウント登録してください。(登録は無料です)

初回ログイン時にアンケートが表示されます。お手数ですが、サービス改善のためご協力をお願いいたします。m(_ _)m

mockmock アンケート

2. 公開プロジェクトをコピー

ログイン後の画面で「プロジェクトのコピー」をクリックしてください。

mockmock プロジェクトのコピー

以下の通り入力してください。

mockmock プロジェクトをコピー

項目
プロジェクト名 (任意のプロジェクト名)
コピー元プロジェクト [公開プロジェクト]>[mockmock official/line-beacon]

3. プロジェクト設定

以下の通り、設定を一部変更ください。

mockmock プロジェクト設定

項目
送信先ホスト (データ送信先のホスト名)
認証用パス (データ送信先の認証用パス)

認証用パスに対してデータを送信し、認証キーが返却されないと、設定を変更できませんのでご注意ください。

参考: 送信先の認証

4. mockステータスを設定

[line-beacon-notifier]>[mockステータス]>[default]>[設定]の順でクリックして画面を移動してください。

mockmock mockグループ line-beacon-notifier

mockmock mockステータス

以下の通り、設定を一部変更してください。

mockmock mockステータス設定

項目
データ送信先パス (データ送信先のパス)
最小送信間隔[sec] (お好みの送信間隔を秒単位で)
最大送信間隔[sec] (お好みの送信間隔を秒単位で)

最小送信間隔[sec]と最大送信間隔[sec]を同じ値にしておくと、一定周期でデータを送信できます。

5. mockを作成・起動

[line-beacon-notifier]>[mock作成]の順でクリックして画面を移動してください。

mockmock mockグループ line-beacon-notifier

以下の通り入力してください。

mockmock mock新規作成

mockを作成できたら[操作]>[起動]をクリックして、mockを起動しましょう。数分以内にmockが起動して、指定した送信間隔でデータがPOSTされます。

mockmock mock起動

mockは起動から100秒後に自動で停止しますのでご安心ください。停止までの時間は[設定]>[最大稼働時間[sec]] で変更できます。

一歩進んだ使い方

複数のmockからデータを送信して負荷テストする

mockmockを使うと最大50000台のmockを起動して、同時にデータを送信することができます。

mockmock mock起動

ただし、2台以上のmockを起動すると利用料金が発生しますのでご注意ください。

mockの状態遷移を設定し、送信データや周期を変化させる

mockmockではmockの状態遷移を定義することが可能です。状態に応じて、データの送信間隔や送信先パスを変更することができます。

mockmock 状態遷移

これによって、より実際の運用に近い形でIoTシステムをテストできます。

まとめ

公開プロジェクトを使うことでLINE Beaconのバックエンドをよりテストしやすくなるので、ぜひお試しください。

「LINE Beacon以外のサービスに対応したプロジェクトを公開して欲しい」といった要望もお待ちしております。


IoT, mockmockに関するご相談は、お問い合わせフォームからお願いします。

yuuu

yuuu

2018年の年明けに組込み畑からやってきた、2児の父 兼 Webエンジニアです。 mockmockの開発・運用を担当しており、組込みエンジニア時代の経験を活かしてデバイスをプログラミングしたり、簡易的なIoTシステムを作ったりしています。主な開発言語はRuby、時々Go。