Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介
Search
YukiOgawa
February 06, 2025
Technology
0
200
家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介
2025/2/5 Postman API Night Osaka 2025 Winter
YukiOgawa
February 06, 2025
Tweet
Share
More Decks by YukiOgawa
See All by YukiOgawa
アジャイル開発導入の取り組み事例 HW文化が色濃く残る組織へのアジャイル導入
yukiogawa
0
56
部門横断チームによる生成AI導入の壁突破事例ご紹介
yukiogawa
1
76
AWSコミュニティビルダーになりたいんじゃ!
yukiogawa
2
240
生成AIによる業務利活用アプリを、部門横断チームが3日でPoCを作ってみた!
yukiogawa
1
600
初学者向けにサーバーレスアーキテクチャを体験できるハンズオンを考えてみた
yukiogawa
0
490
Bedrock Claude3を使って市場対応をDX化を検討してみた
yukiogawa
2
1.3k
Postmanを活用した家電アプリプラットフォームAPIの試験効率化
yukiogawa
1
550
Other Decks in Technology
See All in Technology
職種に名前が付く、ということ/The fact that a job title has a name
bitkey
1
190
PHPでアクターモデルを活用したSagaパターンの実践法 / php-saga-pattern-with-actor-model
ytake
0
800
日本MySQLユーザ会ができるまで / making MyNA
tmtms
1
170
非エンジニアにも伝えるメールセキュリティ / Email security for non-engineers
ykanoh
13
3.6k
30代エンジニアが考える、エンジニア生存戦略~~セキュリティを添えて~~
masakiokuda
4
1.9k
AWSにおけるサイバー攻撃の傾向と具体的な対策
yuobayashi
8
790
Webブラウザのセキュリティ対策に役立つぞ!!~DevToolsの使い方~
masakiokuda
0
170
Reactを段階的に覗いてみる
ytaisei
2
780
Cline、めっちゃ便利、お金が飛ぶ💸
iwamot
0
210
SLI/SLO・ラプソディあるいは組織への適用の旅
nwiizo
4
1k
Explainable Software Engineering in the Public Sector
avandeursen
0
210
一人QA時代が終わり、 QAチームが立ち上がった話
ma_cho29
0
220
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
298
20k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
176
52k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Designing for humans not robots
tammielis
250
25k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
The Invisible Side of Design
smashingmag
299
50k
Producing Creativity
orderedlist
PRO
344
40k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
22
2.6k
Transcript
©Mitsubishi Electric Corporation 2 0 2 5 / 2 /
5 IoT・ライフソリューション新事業推進センター 小川 雄喜 家電アプリ共通P F の API 利用と Pos t ma n 活 用 事 例 ご 紹 介 2025.2.5 Postman API Night Osaka
©Mitsubishi Electric Corporation 2 自己紹介 • 主な仕事 • 三菱電機家電IoT共通プラットフォーム Linova
• 家電総合アプリMyMU内アプリ • 経験 • 生まれも育ちも横浜ですが、2021年4月から京都です • 北米ジョージア州に1年だけ住んでいました • その他活動 • 社内:MAWS-UG(Mitsubishi Electric AWS User Group) • 社外:JAWS-UG関西の運営、JAWS DAYSボランティア • 好きなAPI • GraphQL(もっと触りたい)
©Mitsubishi Electric Corporation 3 1 Linovaの概要
©Mitsubishi Electric Corporation 4 当社グループのありたい姿 循環型デジタル・エンジニアリング
©Mitsubishi Electric Corporation 5 デジタル基盤「Serendie」
©Mitsubishi Electric Corporation 6 三菱電機グループの事業と組織 空調・冷熱機器 ・システム 住宅設備機器 ・システム 家電機器
◦IoT・ライフソリューション 新事業推進センターの業務 リビング・デジタルメディア事業本部の ソリューション・サービスにおいて以下を担当 (20年4月発足) ・事業企画 ・プラットフォーム開発・運営 ・新事業インキュベーション推進 IoT・ライフソリューション新事業推進センター
©Mitsubishi Electric Corporation 7 家電IoTソリューション コンセプトと取組み ・エネルギーの見える化アプリ ミエネル ・条件設定に基づく自動制御 (あったかリンク、スマートe-Flo)
・霧ヶ峰REMOTE・おやすみサポート ・あったかリンク ・故障予知・診断 ・高齢者みまもり MeAMOR ・レシピサイト連携・冷蔵庫つながるアプリ ・IHクッキングヒーターアプリ 他社 ECHONET Lite 対応製品 オープン化 循環型デジタルエンジニアリング企業を目指し ・お客様から得られたデータをデジタル空間に集約、分析 → 新たな価値の創出 → 社会課題の解決に貢献 → 働きやすく暮らしやすい「しあわせな社会」を実現 三菱電機 家電統合アプリ MyMU(マイエムユー) 三菱電機 IoT製品 IoTライフソリューション プラットフォーム Linova(リノバ) MyMUデータ キャンペーンコード 利用履歴 IoT機器データ 省エネ 快適 自動化 遠隔保守 みまもり スマートe-Flo 情報発信 外部サービス データ統合分析基盤 KOTOLiA データ活用 新たな価値 課題解決 データ収集 アプリ、製品に搭載
©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: 蓄電池、太陽光発電システムなど
©Mitsubishi Electric Corporation 9 MyMUと繋がる豊富なIoT製品・サービス 13の機種群、2つのセンサー群、7つのサービス機能を実現! ※エコキュートは関西電力の登録商標です 三菱エコキュート 三菱ルームエアコン 霧ヶ峰
バス乾燥・暖房・ 換気システム 脱衣室暖房機 分電盤 三菱換気扇 (スマートスイッチ) ロスナイセントラル 換気システム 三菱冷蔵庫 環境センサー (CO2/温度/湿度) emoco (エモコアイセンサー) IHクッキング ヒーター おやすみサポート あったかリンク MeAMOR 太陽光発電 蓄電池 燃料電池 くらし×オトク+サイト ハウスクリーニング 家事代行 ミエネル エアリゾート (全館空調システム)
©Mitsubishi Electric Corporation 10 2 P o s t m
a n 活 用 状 況
©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
©Mitsubishi Electric Corporation 12 LinovaのAPI拡張開発 アプリからの要望により、共通APIの改修・新規開発 • 開発内容 • データ/データベース構造の変更
• レイテンシー改善 • オーバーフェッチ/アンダーフェッチ • ページング対応 • ステータスコード細分化 • バグ修正 : アプリが増えることで、共通APIへの要望が多くなる・・・ データ項目を追加し たから、取得できる ようによろしく! もっとレスポン スを早くして! 処理面倒だから、 必要なデータだけ 渡して! データ量多くなって 応答制約に引っかか るんだけど・・・ このAPIのHTTPス テータス、他と 違くない? グサッ! グサッ! グサッ!
©Mitsubishi Electric Corporation 13 API拡張開発時の懸念 • 改修対象APIで想定外のAPIリクエスト/レスポンスの変更がないか? • 増えていくアプリ側の影響を設計者だけが把握することは困難 •
現状のアプリのAPIの使い方で問題ないことを証明 • 大きくレイテンシーが変化することがないか? • 取得するデータが増えた→レイテンシーが大きく下がった ではNG! • 実は影響があったAPIがないか? • サイレントな修正が入っていないか? • APIの変更点確認の漏れがないか? リリースに際してAPIレイヤーでの影響確認が必須 検討事項 が多い!
©Mitsubishi Electric Corporation 14 API試験での課題 • ①試験の属人性が高い • 過去の試験結果が適切に引き継がれない •
試験スクリプトは各担当者で作り込まれることが多く、属人性が高い • ②複雑なユースケースの試験作成 • API呼び出し順序や前提条件の生成が難しい • 設計書を頼りにAPI呼び出し順序や前提条件を明記して進める必要がある • ③試験結果のレポート出力 • API呼び出しレスポンスから、自動的に試験レポートを生成したい Postmanを活用して、API試験を効率化!
©Mitsubishi Electric Corporation 15 ①属人性への対応 • 試験用コレクションはユースケース単位でまとめる • ワークスペースを切り替えることなく試験可能 •
ランナーで順番にAPIを起動することでシステム試験にも対応 • ランナーの実行回数は制限があるので、必要に応じてプランを検討する API試験をコレクションでまとめてワークスペースで共有 📂システム試験用コレクション > 📂ユーザー機能試験 > 📂ユーザー登録試験 > 📂ユーザー削除試験 > 📂◦◦機能試験 > 📂□□機能API : 📂脆弱性試験用コレクション > 📂ユーザー機能試験 > 📂ユーザー登録試験 > 📂ユーザー削除試験 > 📂◦◦機能試験 > 📂□□機能API : システム試験 脆弱性試験 📂バグ試験用コレクション > 📂バグ001試験 > 📂前提条件 > 📂本試験 > 📂片付け > 📂バグ002試験 : 特定バグ試験
©Mitsubishi Electric Corporation • ワークスペースでチーム内でAPIコレクションと環境を共有 • コレクションを編集する場合はフォークが望ましい • Gitのようにコレクションの変更をプルリクエスト •
合格済みの試験コレクションのみを共有できる 16 ワークスペース共有とプルリクエスト
©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オブジェクトで試験を記述
©Mitsubishi Electric Corporation 18 ②複雑なユースケースの試験作成 Postman flowsで試験ユースケースをビジュアルに表現 Ifブロックで様々な ユースケースを分岐 APIレスポンスを変数
として接続できる レスポンス結果を ビジュアルに表現 Forブロックでリスト などを要素ごとに処理
©Mitsubishi Electric Corporation 19 参考:Postman Flowsオンラインハッカソン https://qiita.com/_YukiOgawa/items/8a11e2209021f74e6414 2位になりました
©Mitsubishi Electric Corporation 20 ③試験結果のレポート出力 • コレクションをNewmanで実行し、CI/CDプロセスに組み込み • Newman:PostmanのCLI版 •
試験をほぼ自動化、CodePipelineへの組み込みを実施 • APIで試験レポートを登録できるTestRailを利用 • Newmanと合わせてTestRail用レポーターが必要 試験管理ツールとAPIで連携した試験レポートの自動生成 https://qiita.com/_YukiOgawa/items/a720c9736fe2970369e7
©Mitsubishi Electric Corporation 21 試験用Collectionによる試験自動化 試験環境 試験者 CodeCommit 試験Collection 試験Environment
CodeBuild CodePipeline Fargate 試験レポート 作成&改修 Git Push 試験Collectionの実行 (API Request/Response) 試験結果の レポート登録 試験結果の閲覧(Webサイト) API Gateway Lambda DynamoDB 試験対象
©Mitsubishi Electric Corporation 22 参考:パフォーマンステストもPostmanで実施可能 対象APIで負荷を設定して実行可能
©Mitsubishi Electric Corporation 23 まとめ:API試験での課題に対するPostmanでの解決 • ①試験の属人性が高い • ワークスペース共有による試験コレクションを共有する •
コレクションはフォークし、プルリクエストでマージしていく • ②複雑なユースケースの試験作成 • Flowsにより各フェーズでの可視化が便利 • ③試験結果のレポート出力 • Newman + TestRail連携で自動試験化
None