Slide 1

Slide 1 text

©Mitsubishi Electric Corporation 2 0 2 5 / 2 / 5 IoT・ライフソリューション新事業推進センター 小川 雄喜 家電アプリ共通P F の API 利用と Pos t ma n 活 用 事 例 ご 紹 介 2025.2.5 Postman API Night Osaka

Slide 2

Slide 2 text

©Mitsubishi Electric Corporation 2 自己紹介 • 主な仕事 • 三菱電機家電IoT共通プラットフォーム Linova • 家電総合アプリMyMU内アプリ • 経験 • 生まれも育ちも横浜ですが、2021年4月から京都です • 北米ジョージア州に1年だけ住んでいました • その他活動 • 社内:MAWS-UG(Mitsubishi Electric AWS User Group) • 社外:JAWS-UG関西の運営、JAWS DAYSボランティア • 好きなAPI • GraphQL(もっと触りたい)

Slide 3

Slide 3 text

©Mitsubishi Electric Corporation 3 1 Linovaの概要

Slide 4

Slide 4 text

©Mitsubishi Electric Corporation 4 当社グループのありたい姿 循環型デジタル・エンジニアリング

Slide 5

Slide 5 text

©Mitsubishi Electric Corporation 5 デジタル基盤「Serendie」

Slide 6

Slide 6 text

©Mitsubishi Electric Corporation 6 三菱電機グループの事業と組織 空調・冷熱機器 ・システム 住宅設備機器 ・システム 家電機器 ○IoT・ライフソリューション 新事業推進センターの業務 リビング・デジタルメディア事業本部の ソリューション・サービスにおいて以下を担当 (20年4月発足) ・事業企画 ・プラットフォーム開発・運営 ・新事業インキュベーション推進 IoT・ライフソリューション新事業推進センター

Slide 7

Slide 7 text

©Mitsubishi Electric Corporation 7 家電IoTソリューション コンセプトと取組み ・エネルギーの見える化アプリ ミエネル ・条件設定に基づく自動制御 (あったかリンク、スマートe-Flo) ・霧ヶ峰REMOTE・おやすみサポート ・あったかリンク ・故障予知・診断 ・高齢者みまもり MeAMOR ・レシピサイト連携・冷蔵庫つながるアプリ ・IHクッキングヒーターアプリ 他社 ECHONET Lite 対応製品 オープン化 循環型デジタルエンジニアリング企業を目指し ・お客様から得られたデータをデジタル空間に集約、分析 → 新たな価値の創出 → 社会課題の解決に貢献 → 働きやすく暮らしやすい「しあわせな社会」を実現 三菱電機 家電統合アプリ MyMU(マイエムユー) 三菱電機 IoT製品 IoTライフソリューション プラットフォーム Linova(リノバ) MyMUデータ キャンペーンコード 利用履歴 IoT機器データ 省エネ 快適 自動化 遠隔保守 みまもり スマートe-Flo 情報発信 外部サービス データ統合分析基盤 KOTOLiA データ活用 新たな価値 課題解決 データ収集 アプリ、製品に搭載

Slide 8

Slide 8 text

©Mitsubishi Electric Corporation 外部サービス連携 (オープン化) 8 家電IoTソリューション プラットフォーム概要 当社製品 プロトコル変換器(オープン化) IoTアダプター 修理・保守 販売・提案 課金・回収 再エネソリューション Living・EARTH デジタル田園都市 石川県能美市 空調ソリューション テストベッドクラウド クラウド型HEMS ミエネル グループ内 ITシステムとの連携 顧客情報を統合 くらし×おトク+サイト、 MyMU 機能拡張を継続 ECHONET Lite 機器対応 オートメーション機能 仮想機器 など 生活支援ソリューション 最適環境IEQソリューション ライフソリューション /循環型ソリューション 外部サービス Webサイト 修理 サービス 電力サービス 公共サービス 家庭サービス ビルサービス IT-OT連携基盤 ECHONET Lite*1機器 (他社機器*2・センサーなど) 機器接続レイヤー ビジネスロジック 共通 Web API データベース ライフサイクル 安全・安心&快適 グリーンエナジー 家電統合アプリ MyMU データマート データウェアハウス データレイク データ分析基盤 KOTOLiA IoT共通プラットフォーム Linova 機器機能の 高度化・知能化 連携制御・ 自動化の実現 共創による新サービス創出 *1: ECHONET Liteは、一般社団法人エコーネットコンソーシアムの登録商標 *2: 蓄電池、太陽光発電システムなど

Slide 9

Slide 9 text

©Mitsubishi Electric Corporation 9 MyMUと繋がる豊富なIoT製品・サービス 13の機種群、2つのセンサー群、7つのサービス機能を実現! ※エコキュートは関西電力の登録商標です 三菱エコキュート 三菱ルームエアコン 霧ヶ峰 バス乾燥・暖房・ 換気システム 脱衣室暖房機 分電盤 三菱換気扇 (スマートスイッチ) ロスナイセントラル 換気システム 三菱冷蔵庫 環境センサー (CO2/温度/湿度) emoco (エモコアイセンサー) IHクッキング ヒーター おやすみサポート あったかリンク MeAMOR 太陽光発電 蓄電池 燃料電池 くらし×オトク+サイト ハウスクリーニング 家事代行 ミエネル エアリゾート (全館空調システム)

Slide 10

Slide 10 text

©Mitsubishi Electric Corporation 10 2 P o s t m a n 活 用 状 況

Slide 11

Slide 11 text

©Mitsubishi Electric Corporation 11 LinovaにおけるAPIアーキテクチャ 外部サービス連携 (オープン化) 当社製品 プロトコル変換器(オープン化) IoTアダプター 修理・保守 販売・提案 課金・回収 再エネソリューション Living・EARTH デジタル田園都市 石川県能美市 空調ソリューション テストベッドクラウド クラウド型HEMS ミエネル グループ内 ITシステムとの連携 顧客情報を統合 くらし×おトク+サイト、 MyMU 機能拡張を継続 ECHONET Lite 機器対応 オートメーション機能 仮想機器 など 生活支援ソリューション 最適環境IEQソリューション ライフソリューション /循環型ソリューション 外部サービス Webサイト 修理 サービス 電力サービス 公共サービス 家庭サービス ビルサービス IT-OT連携基盤 ECHONET Lite*1機器 (他社機器*2・センサーなど) 機器接続レイヤー ビジネスロジック 共通 Web API データベース ライフサイクル 安全・安心&快適 グリーンエナジー 家電統合アプリ MyMU データマート データウェアハウス データレイク データ分析基盤 KOTOLiA IoT共通プラットフォーム Linova 機器機能の 高度化・知能化 連携制御・ 自動化の実現 共創による新サービス創出 *1: ECHONET Liteは、一般社団法人エコーネットコンソーシアムの登録商標 *2: 蓄電池、太陽光発電システムなど API Gateway Lambda DynamoDB API Gateway + Lambda + DynamoDBを基本とした サーバレスアーキテクチャを採用 共通 Web API

Slide 12

Slide 12 text

©Mitsubishi Electric Corporation 12 LinovaのAPI拡張開発 アプリからの要望により、共通APIの改修・新規開発 • 開発内容 • データ/データベース構造の変更 • レイテンシー改善 • オーバーフェッチ/アンダーフェッチ • ページング対応 • ステータスコード細分化 • バグ修正 : アプリが増えることで、共通APIへの要望が多くなる・・・ データ項目を追加し たから、取得できる ようによろしく! もっとレスポン スを早くして! 処理面倒だから、 必要なデータだけ 渡して! データ量多くなって 応答制約に引っかか るんだけど・・・ このAPIのHTTPス テータス、他と 違くない? グサッ! グサッ! グサッ!

Slide 13

Slide 13 text

©Mitsubishi Electric Corporation 13 API拡張開発時の懸念 • 改修対象APIで想定外のAPIリクエスト/レスポンスの変更がないか? • 増えていくアプリ側の影響を設計者だけが把握することは困難 • 現状のアプリのAPIの使い方で問題ないことを証明 • 大きくレイテンシーが変化することがないか? • 取得するデータが増えた→レイテンシーが大きく下がった ではNG! • 実は影響があったAPIがないか? • サイレントな修正が入っていないか? • APIの変更点確認の漏れがないか? リリースに際してAPIレイヤーでの影響確認が必須 検討事項 が多い!

Slide 14

Slide 14 text

©Mitsubishi Electric Corporation 14 API試験での課題 • ①試験の属人性が高い • 過去の試験結果が適切に引き継がれない • 試験スクリプトは各担当者で作り込まれることが多く、属人性が高い • ②複雑なユースケースの試験作成 • API呼び出し順序や前提条件の生成が難しい • 設計書を頼りにAPI呼び出し順序や前提条件を明記して進める必要がある • ③試験結果のレポート出力 • API呼び出しレスポンスから、自動的に試験レポートを生成したい Postmanを活用して、API試験を効率化!

Slide 15

Slide 15 text

©Mitsubishi Electric Corporation 15 ①属人性への対応 • 試験用コレクションはユースケース単位でまとめる • ワークスペースを切り替えることなく試験可能 • ランナーで順番にAPIを起動することでシステム試験にも対応 • ランナーの実行回数は制限があるので、必要に応じてプランを検討する API試験をコレクションでまとめてワークスペースで共有 📂システム試験用コレクション > 📂ユーザー機能試験 > 📂ユーザー登録試験 > 📂ユーザー削除試験 > 📂○○機能試験 > 📂□□機能API : 📂脆弱性試験用コレクション > 📂ユーザー機能試験 > 📂ユーザー登録試験 > 📂ユーザー削除試験 > 📂○○機能試験 > 📂□□機能API : システム試験 脆弱性試験 📂バグ試験用コレクション > 📂バグ001試験 > 📂前提条件 > 📂本試験 > 📂片付け > 📂バグ002試験 : 特定バグ試験

Slide 16

Slide 16 text

©Mitsubishi Electric Corporation • ワークスペースでチーム内でAPIコレクションと環境を共有 • コレクションを編集する場合はフォークが望ましい • Gitのようにコレクションの変更をプルリクエスト • 合格済みの試験コレクションのみを共有できる 16 ワークスペース共有とプルリクエスト

Slide 17

Slide 17 text

©Mitsubishi Electric Corporation 17 スクリプトによる試験 pm.collectionVariables.set("responseHistory", pm.collectionVariables.get("responseHistory")+pm.info.reques tName+'>'+responseBody+'¥r'); var data = JSON.parse(responseBody); if ( data.guestUser && data.guestUser.length !== 0 ) { pm.environment.set("areaId", data.guestUser[0].userId); } pm.test(pm.info.requestName, function () { pm.response.to.have.status(200); }); pm.test(“ゲストユーザー確認", function () { pm.expect(data.guestUser.length).to.eql(1); }); ログ保存用 ゲストユーザーがある場合、 ゲストユーザーのユーザーIDを環境変数の userIdに設定する HTTPステータスコードが200であれば、 成功 ゲストユーザーが1つであれば、 成功 JavaScript + Postmanオブジェクトで試験を記述

Slide 18

Slide 18 text

©Mitsubishi Electric Corporation 18 ②複雑なユースケースの試験作成 Postman flowsで試験ユースケースをビジュアルに表現 Ifブロックで様々な ユースケースを分岐 APIレスポンスを変数 として接続できる レスポンス結果を ビジュアルに表現 Forブロックでリスト などを要素ごとに処理

Slide 19

Slide 19 text

©Mitsubishi Electric Corporation 19 参考:Postman Flowsオンラインハッカソン https://qiita.com/_YukiOgawa/items/8a11e2209021f74e6414 2位になりました

Slide 20

Slide 20 text

©Mitsubishi Electric Corporation 20 ③試験結果のレポート出力 • コレクションをNewmanで実行し、CI/CDプロセスに組み込み • Newman:PostmanのCLI版 • 試験をほぼ自動化、CodePipelineへの組み込みを実施 • APIで試験レポートを登録できるTestRailを利用 • Newmanと合わせてTestRail用レポーターが必要 試験管理ツールとAPIで連携した試験レポートの自動生成 https://qiita.com/_YukiOgawa/items/a720c9736fe2970369e7

Slide 21

Slide 21 text

©Mitsubishi Electric Corporation 21 試験用Collectionによる試験自動化 試験環境 試験者 CodeCommit 試験Collection 試験Environment CodeBuild CodePipeline Fargate 試験レポート 作成&改修 Git Push 試験Collectionの実行 (API Request/Response) 試験結果の レポート登録 試験結果の閲覧(Webサイト) API Gateway Lambda DynamoDB 試験対象

Slide 22

Slide 22 text

©Mitsubishi Electric Corporation 22 参考:パフォーマンステストもPostmanで実施可能 対象APIで負荷を設定して実行可能

Slide 23

Slide 23 text

©Mitsubishi Electric Corporation 23 まとめ:API試験での課題に対するPostmanでの解決 • ①試験の属人性が高い • ワークスペース共有による試験コレクションを共有する • コレクションはフォークし、プルリクエストでマージしていく • ②複雑なユースケースの試験作成 • Flowsにより各フェーズでの可視化が便利 • ③試験結果のレポート出力 • Newman + TestRail連携で自動試験化

Slide 24

Slide 24 text

No content