Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

SHIFT_EVOLVE

July 26, 2021
Tweet

More Decks by SHIFT_EVOLVE

Other Decks in Business

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. 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

    View Slide

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

    View Slide

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

    View Slide