Slide 1

Slide 1 text

クラウドサービスの負荷テスト で嵌ってる話 2021.7.21

Slide 2

Slide 2 text

1 自己紹介  前職:大手Sier(2000年~2018年) • 証券会社向けITシステムの開発、導入、保守運用に従事  現職:SHIFT(2018年~) • 大企業のお客様を中心としたテスト自動化やRPA開発の上流対応/サービスマネージャー 株式会社 SHIFT 品質・技術統轄部 技術推進部 景山 洋行 ぶちゃっけクラウドにあまり関わってない? (いやいや・・・)

Slide 3

Slide 3 text

2 現在担当している案件  案件:MS のクラウドサービスをバリバリ活用したシステム開発案件! • Dynamics 365 • Power Apps • Power Automate • Power BI • Logic Apps • SharePoint • Azure • Azure DevOps • Azure AD • WVD ・・・  担当:テスト領域の技術支援(E2Eテスト自動化、負荷テスト) クラウド関連で話したいことはいろいろありますが・・・ (複雑なライセンス、課金、アカウント、テナント構成、etc.) 本日のテーマ JMeterによるクラウドサービスへの負荷テストについて スクラッチな開発は 極力しない!

Slide 4

Slide 4 text

3 Dynamics 365 (Azure) に対する負荷テストだと・・・?  何のためにやるの?  どこに負荷をかけて、どこの性能を測るの?  どのくらいの負荷をかけるの?やっていいの? いろいろと疑問はあるが JMeterでやることはほぼ確定済み!

Slide 5

Slide 5 text

4 メンバーにやらせてみたけど1週間経ってもできなかった JMeterなら出来るでしょ♪ 認証を突破できません! D365

Slide 6

Slide 6 text

 対象のDynamics 365はOAuth 2.0認証を使ってるよ  他にクレームベース認証、Active Directory認証もサポート  JMeterでOAuth 2.0認証の対応方法を検索しても、直接的 な解決策にヒットしない!  対応可:ベーシック認証、ダイジェスト認証、Kerberos認証、LDAP認証 わかったこと(最初からわかってたことも含む) 最近のクラウドサービスは OAuth 認証や OpenID Connect だよね、知ってるよ OAuth 認証に利用できるパラメータオプションが多すぎて OAuth 認証に利用できるパラメータオプションが多すぎて クラウドサービスによって違うからね こういう手順ででき るはずだ、俺はやっ たことないけど Postmanなどで認証 プロセスを解析して みるといいかも

Slide 7

Slide 7 text

6 対応方針  方針1: Web Driver Sampler (Plugin) を使う  要はSelenium、ブラウザを操作  動いた!でもCPU、メモリを大量に食う!(当たり前)  方針2: Azureの 「APIのアクセス許可」 を使う  Azureで操作して、外部アプリアクセス用のクライアントID、クライアントシークレットを払 い出しておく  動くはず(実機検証中)、でも認証プロセスは実業務アクセスとは別物  方針3:プロトコルと認証プロセスを解析してOAuthの動的パラメータをを設定する  最初に諦めた方式  有能なエンジニアが時間をかけてトライすればできるはず 前提次第ではもっともお手軽、簡単♪ 方針3よりは簡単(なはず) メソッド リクエスト名 パラメータ GET login.microsoftonline.com/{tenant}/oauth2/authorize state, nonce POST login.microsoftonline.com/{tenant}/login canary, ctx, hpgrequestid, flowToken POST XXXXXXXXXXXXXXXX .dynamics.com code, id_token, state, sessin_state

Slide 8

Slide 8 text

7 (改めて)わかったこと  枯れたツール、メジャーなクラウドの組合せでもすんなり行かないことがあ る(OSSあるある)  ちゃんと実機検証の時間を設ける(今回は環境準備がかなり遅れた ことも嵌ってる一因)  知見を整理して共有する

Slide 9

Slide 9 text

ご清聴ありがとうございました