SlideShare a Scribd company logo
Azure Load Testingを利用した
パフォーマンステスト
2021/01/20 – 第35回 JAZUG Night
株式会社 pnop / Cloudlive 株式会社
浅見 城輝
♥BEER
About me
kuniteru.asami
Find me
Database
Microsoft Azure 2012~
Microsoft Azure
注意事項
このスライドは 2022 年 1 月 20 日 時点の情報を
基にしています
現在 Azure Load Testing は Public Preview です
本コンテンツ内で記載されていることは、
今後、変更されることが予想されます
Agenda
Azure Load Testing とは
TIPS & TRICKS
Azure Load Testing
とは
フルマネージドな
負荷テスト / 性能測定 サービス
特徴
大規模な負荷をすばやく簡単に生成
クライアントと Azure リソースの
メトリックの包括的なビュー
DevOps ワークフローへの組み込み
エンジンは Apache JMeter™
(JMeter のテストプラン ファイルを利用)
o
大規模な負荷をすばやく簡単に生成
指定した数のテストエンジン インスタンスから
テスト対象に対するリクエストを生成する
1インスタンスあたり
250 スレッド (目安)
最大 45 インスタンス
(Preview 時)
合計
11,250 スレッド
クライアントとAzureリソースのメトリックビュー
Client-side metrics
クライアント(JMeter)側のメトリック
Server-side metrics
任意の Azure リソースのメトリック
テスト結果の比較
2 つのテスト結果のグラフを
重ねて表示
DevOpsワークフローへの組み込み
Azure DevOps の Pipeline や GitHub Actions のワークフローから
Azure Load Testing でテストを実施
「平均レスポンスタイム」と「エラー率」によって、
テストの合格/不合格を判定
Azure DevOps や GitHub Actions で
設定した環境変数を
Azure Load Testing の
テストスクリプトで利用できる
エンジンは Apache JMeter™
Apache JMeter™ で作成したテスト スクリプトを
Azure Load Testing にアップロードしてテストを実施する
テスト スクリプトを作成/変更する機能は Azure Load Testing にはないの
で、自身で構築した JMeter で行う
つまりは、JMeter のノウハウが利用できる
(テスト スクリプトのスレッドグループで指定したスレッド数)
x (テストの Load configuration で Engine instances の値)
がスレッド数になる
JMeter 分散テスト環境の課題と
Azure Load Testing を利用するメリット
課題 自身で JMeter の分散テスト環境を構築する Azure Load Testing
何台のマシンを用意するか? 事前に見積もる必要があり、正しい見積もりが
難しい
不足しても追加が容易なので、厳密な見積もりは
不要
用意したマシンでは足りなかったら? 追加で調達する必要があり時間がかかる
先に用意していたものと同じスペックのものが用意
できるか?
即時に解決
テスト終了後のマシンの活用 適切な利用方法を検討しておく
(テストを継続し続けるのもあり)
考慮する必要がない
マシンコスト 購入あるいはリースなど わずかな基本料金 + 使用量に応じた従量課金
セットアップの手間 用意したすべてのマシンに対してセットアップをす
る必要がある
マシン数が多ければ多いほど大変
事 前 準 備 も 不 要 で 、 単 純 な テ ス ト で あ れ ば
数分でセットアップが完了する
長期間環境を維持する場合の保守 全てのマシンをアップデートしていく必要がある
マシン数が多ければ多いほど大変
考慮する必要がない
サーバーへの
テストパラメーターファイルの配布
全てのサーバーのディスクにコピーするのが面倒 全 て の サ ー バ ー に 展 開 す る 仕 組 み が
提供されている
TIPS & TRICKS
オフィシャルドキュメントのテスト スクリプト
オフィシャルドキュメントのクイックスタートやチュートリアルなどで提示され
ているテスト スクリプトが、通常の JMeter で読み込みエラーになる
JMeter で読み込みエラーになるテスト スクリプトの例
「クイックスタート: Azure Load Testing を使用してロード テストを作成して実行する」
https://docs.microsoft.com/ja-jp/azure/load-testing/quickstart-create-and-run-load-test#jmeter
「チュートリアル: ロード テストを実行してパフォーマンスのボトルネックを特定する」
https://docs.microsoft.com/ja-jp/azure/load-testing/tutorial-identify-bottlenecks-azure-portal#deploy-the-sample-app
https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck/blob/main/SampleApp.jmx
https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck/blob/main/SampleApp_Secrets.jmx
標準の JMeter では導入されていないプラグインが利用されているため
JMeter に Plugins Manager をインストールしておくことで、テストスクリプトに必要な
JMeter プラグインを判断して導入してくれる
https://jmeter-plugins.org
テスト スクリプトが利用しているプラグインがインストールされていなくても
plugins-jmeter.jar (jmeter-plugins-manager-*.*.jar) がインストールされていればOK
CSV ファイルの利用
CSV などのテストデータ ファイルを利用するには
テスト スクリプトでは設定エレメント (Config Element) の CSV Data Set
Config などでテストデータ ファイルのファイル名だけを指定
Azure Load Testing ではテスト設定の Test Plan で対象のファイルをアップ
ロードする
https://docs.microsoft.com/en-us/azure/load-testing/how-to-read-csv-data
Azure Key Vault からシークレットを取得する
GetSecret カスタム関数
Parameterize load tests with secrets and environment variables
https://docs.microsoft.com/ja-jp/azure/load-testing/how-to-parameterize-
load-tests#secrets
設定エレメントのユーザー定義変数 (Config Element > User Defined
Variables) で取得すること
JMeter で GetSecret 関数を使えるようにするプラグイン
https://github.com/pnopjp/jmeter-plugins/blob/master/docs/azure-load-
testing-stub.md
テスト結果のエクスポート
テスト結果をダウンロードして、Report Dashboard の参照や
JMeter の Listener でテスト結果を参照することができる
JMeter の Listener では ダウンロードしたテスト結果に含まれる
testreport.csv ファイルを読み込む
制限
インターネットに対して公開されているサービスに対してのみテストを実施でき
る
Azure Virtual Network 内の Virtual Machines や VNet 内からの接続のみを許可している
Azure PaaS 等はテスト対象にできない
すべてのプラグインが利用できるわけではない
jmeter-plugins.org から提供されているものは使えるものもある
任意の Java ライブラリが利用できない
SQL Server の JDBC Driver などを追加できないため、Azure SQL Database へのテストなどがで
きない
テストの合格/不合格の判定が柔軟ではない
「平均レスポンスタイム」と「エラー率」のみ
最大 11,250 スレッドが目安 (45 インスタンス x 250 スレッド)
テストスクリプトの作成には、別途 Apache JMeter™ を用意する
制限を超えたテストをしたいときは
Azure Marketplace で弊社が提供している
Load Tester (multiple remote servers) Powered by Apache JMeter™ を利用する
https://bit.ly/jmeter-azure
Azure 上に複数の JMeter 導入済み(連携済み)の仮想マシンが展開される
Azure 仮想マシン(または仮想マシンスケールセット)なので、
任意の VNet に所属し、VNet 内通信でテスト対象にアクセスも可能
任意の JMeter プラグインや Java ライブラリを導入可能 (複数サーバーへの展開も容易)
Azure DevOps や GitHub Actions からの、テスト合否判定を柔軟に設定可能
(ただし設定はやや複雑)
スレッド数を大きくするため、多くの大きな仮想マシンを構築可能
Azure Monitor などを利用してクライアントと Azure リソースの包括的なビューを作成
できる
参考ドキュメント
Azure Load Testing documentation
https://docs.microsoft.com/en-us/azure/load-testing/
Apache JMeter
https://jmeter.apache.org/
まとめ
Azure Load Testing は、Apache JMeter™ で実装された
フルマネージドな負荷テストサービス
大規模な負荷の作成が容易
Azure DevOps / GitHub Actions から利用しやすい
わずかな基本料金 + 使用料に応じたの従量課金
pnop 社 Microsoft Azure プロフェッショナルサービス
23
コンサルティング
技術検証
性能検証
PoC, アセスメント
テクニカルライティング
講師 / セミナー登壇
開発
環境構築
サポート
トラブルシューティング
パフォーマンス
チューニング
移行 / ポーティング
オンプレミス → Azure
Linux → Windows
他DB → Azure SQL DB
営業支援
見積支援
【お問い合わせ】株式会社 pnop Azure営業部 sales@pnop.co.jp
http://www.pnop.co.jp/

More Related Content

What's hot

マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
NTT DATA Technology & Innovation
 
半日でわかる コンテナー技術 (応用編)
半日でわかる コンテナー技術 (応用編)半日でわかる コンテナー技術 (応用編)
半日でわかる コンテナー技術 (応用編)
Toru Makabe
 
インフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boostインフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boost
Toru Makabe
 
Azure Network 概要
Azure Network 概要Azure Network 概要
Azure Network 概要
Takeshi Fukuhara
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
Takahiro Moteki
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
 
Essentials of container
Essentials of containerEssentials of container
Essentials of container
Toru Makabe
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
Toru Makabe
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
入門!Jenkins
入門!Jenkins入門!Jenkins
入門!Jenkins
Shuntaro Saiba
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
NTT DATA Technology & Innovation
 
Azure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみたAzure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみた
DevTakas
 
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
Genki WATANABE
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
zaki4649
 

What's hot (20)

マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
 
半日でわかる コンテナー技術 (応用編)
半日でわかる コンテナー技術 (応用編)半日でわかる コンテナー技術 (応用編)
半日でわかる コンテナー技術 (応用編)
 
インフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boostインフラ野郎 Azureチーム at クラウド boost
インフラ野郎 Azureチーム at クラウド boost
 
Azure Network 概要
Azure Network 概要Azure Network 概要
Azure Network 概要
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
Essentials of container
Essentials of containerEssentials of container
Essentials of container
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
入門!Jenkins
入門!Jenkins入門!Jenkins
入門!Jenkins
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
 
Azure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみたAzure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみた
 
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
 

Similar to Azure load testingを利用したパフォーマンステスト

Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
Nemoto Yusuke
 
負荷試験入門公開資料 201611
負荷試験入門公開資料 201611負荷試験入門公開資料 201611
負荷試験入門公開資料 201611
樽八 仲川
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
lalha
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
Issei Hiraoka
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
Kuniaki Igarashi
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Kazushi Kamegawa
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
Amazon Web Services Japan
 
最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた
Hiroyuki Mori
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
Takeshi Kondo
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
 
Dell emc azurestackはじめの一歩20170713
Dell emc azurestackはじめの一歩20170713Dell emc azurestackはじめの一歩20170713
Dell emc azurestackはじめの一歩20170713
Shotaro Suzuki
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
Yuta Kawadai
 
CLRH_120414_WFTDD
CLRH_120414_WFTDDCLRH_120414_WFTDD
CLRH_120414_WFTDD
Tomoyuki Obi
 
Excel on OneDrive is not a file
Excel on OneDrive is not a fileExcel on OneDrive is not a file
Excel on OneDrive is not a file
Takao Tetsuro
 
【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション
智治 長沢
 
Logic Apps と Api Apps の話
Logic Apps と Api Apps の話Logic Apps と Api Apps の話
Logic Apps と Api Apps の話
Sunao Tomita
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIAkyon mm
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編
Daiyu Hatakeyama
 

Similar to Azure load testingを利用したパフォーマンステスト (20)

Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
負荷試験入門公開資料 201611
負荷試験入門公開資料 201611負荷試験入門公開資料 201611
負荷試験入門公開資料 201611
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
 
最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
Dell emc azurestackはじめの一歩20170713
Dell emc azurestackはじめの一歩20170713Dell emc azurestackはじめの一歩20170713
Dell emc azurestackはじめの一歩20170713
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
CLRH_120414_WFTDD
CLRH_120414_WFTDDCLRH_120414_WFTDD
CLRH_120414_WFTDD
 
Excel on OneDrive is not a file
Excel on OneDrive is not a fileExcel on OneDrive is not a file
Excel on OneDrive is not a file
 
【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション
 
Logic Apps と Api Apps の話
Logic Apps と Api Apps の話Logic Apps と Api Apps の話
Logic Apps と Api Apps の話
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIA
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編
 

More from Kuniteru Asami

スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQLスケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
Kuniteru Asami
 
現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ
Kuniteru Asami
 
Understanding Azure Application Gateway
Understanding Azure Application GatewayUnderstanding Azure Application Gateway
Understanding Azure Application Gateway
Kuniteru Asami
 
Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編
Kuniteru Asami
 
あらためて Azure virtual network
あらためて Azure virtual networkあらためて Azure virtual network
あらためて Azure virtual network
Kuniteru Asami
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Kuniteru Asami
 
Introduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQLIntroduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQL
Kuniteru Asami
 
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
Kuniteru Asami
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
Kuniteru Asami
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
Kuniteru Asami
 
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスCDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
Kuniteru Asami
 
クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年
Kuniteru Asami
 
AzureでOracle
AzureでOracleAzureでOracle
AzureでOracle
Kuniteru Asami
 
SMTPサービス SendGridを契約する
SMTPサービス SendGridを契約するSMTPサービス SendGridを契約する
SMTPサービス SendGridを契約する
Kuniteru Asami
 
インストールマニアックス振り返り
インストールマニアックス振り返りインストールマニアックス振り返り
インストールマニアックス振り返りKuniteru Asami
 
PHP on Azure
PHP on AzurePHP on Azure
PHP on Azure
Kuniteru Asami
 
第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナル第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナル
Kuniteru Asami
 

More from Kuniteru Asami (17)

スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQLスケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
 
現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ
 
Understanding Azure Application Gateway
Understanding Azure Application GatewayUnderstanding Azure Application Gateway
Understanding Azure Application Gateway
 
Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編
 
あらためて Azure virtual network
あらためて Azure virtual networkあらためて Azure virtual network
あらためて Azure virtual network
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
 
Introduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQLIntroduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQL
 
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスCDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
 
クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年
 
AzureでOracle
AzureでOracleAzureでOracle
AzureでOracle
 
SMTPサービス SendGridを契約する
SMTPサービス SendGridを契約するSMTPサービス SendGridを契約する
SMTPサービス SendGridを契約する
 
インストールマニアックス振り返り
インストールマニアックス振り返りインストールマニアックス振り返り
インストールマニアックス振り返り
 
PHP on Azure
PHP on AzurePHP on Azure
PHP on Azure
 
第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナル第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナル
 

Azure load testingを利用したパフォーマンステスト

  • 1. Azure Load Testingを利用した パフォーマンステスト 2021/01/20 – 第35回 JAZUG Night 株式会社 pnop / Cloudlive 株式会社 浅見 城輝
  • 3. 注意事項 このスライドは 2022 年 1 月 20 日 時点の情報を 基にしています 現在 Azure Load Testing は Public Preview です 本コンテンツ内で記載されていることは、 今後、変更されることが予想されます
  • 4. Agenda Azure Load Testing とは TIPS & TRICKS
  • 7. 特徴 大規模な負荷をすばやく簡単に生成 クライアントと Azure リソースの メトリックの包括的なビュー DevOps ワークフローへの組み込み エンジンは Apache JMeter™ (JMeter のテストプラン ファイルを利用)
  • 9. クライアントとAzureリソースのメトリックビュー Client-side metrics クライアント(JMeter)側のメトリック Server-side metrics 任意の Azure リソースのメトリック テスト結果の比較 2 つのテスト結果のグラフを 重ねて表示
  • 10. DevOpsワークフローへの組み込み Azure DevOps の Pipeline や GitHub Actions のワークフローから Azure Load Testing でテストを実施 「平均レスポンスタイム」と「エラー率」によって、 テストの合格/不合格を判定 Azure DevOps や GitHub Actions で 設定した環境変数を Azure Load Testing の テストスクリプトで利用できる
  • 11. エンジンは Apache JMeter™ Apache JMeter™ で作成したテスト スクリプトを Azure Load Testing にアップロードしてテストを実施する テスト スクリプトを作成/変更する機能は Azure Load Testing にはないの で、自身で構築した JMeter で行う つまりは、JMeter のノウハウが利用できる (テスト スクリプトのスレッドグループで指定したスレッド数) x (テストの Load configuration で Engine instances の値) がスレッド数になる
  • 12. JMeter 分散テスト環境の課題と Azure Load Testing を利用するメリット 課題 自身で JMeter の分散テスト環境を構築する Azure Load Testing 何台のマシンを用意するか? 事前に見積もる必要があり、正しい見積もりが 難しい 不足しても追加が容易なので、厳密な見積もりは 不要 用意したマシンでは足りなかったら? 追加で調達する必要があり時間がかかる 先に用意していたものと同じスペックのものが用意 できるか? 即時に解決 テスト終了後のマシンの活用 適切な利用方法を検討しておく (テストを継続し続けるのもあり) 考慮する必要がない マシンコスト 購入あるいはリースなど わずかな基本料金 + 使用量に応じた従量課金 セットアップの手間 用意したすべてのマシンに対してセットアップをす る必要がある マシン数が多ければ多いほど大変 事 前 準 備 も 不 要 で 、 単 純 な テ ス ト で あ れ ば 数分でセットアップが完了する 長期間環境を維持する場合の保守 全てのマシンをアップデートしていく必要がある マシン数が多ければ多いほど大変 考慮する必要がない サーバーへの テストパラメーターファイルの配布 全てのサーバーのディスクにコピーするのが面倒 全 て の サ ー バ ー に 展 開 す る 仕 組 み が 提供されている
  • 14. オフィシャルドキュメントのテスト スクリプト オフィシャルドキュメントのクイックスタートやチュートリアルなどで提示され ているテスト スクリプトが、通常の JMeter で読み込みエラーになる JMeter で読み込みエラーになるテスト スクリプトの例 「クイックスタート: Azure Load Testing を使用してロード テストを作成して実行する」 https://docs.microsoft.com/ja-jp/azure/load-testing/quickstart-create-and-run-load-test#jmeter 「チュートリアル: ロード テストを実行してパフォーマンスのボトルネックを特定する」 https://docs.microsoft.com/ja-jp/azure/load-testing/tutorial-identify-bottlenecks-azure-portal#deploy-the-sample-app https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck/blob/main/SampleApp.jmx https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck/blob/main/SampleApp_Secrets.jmx 標準の JMeter では導入されていないプラグインが利用されているため JMeter に Plugins Manager をインストールしておくことで、テストスクリプトに必要な JMeter プラグインを判断して導入してくれる https://jmeter-plugins.org テスト スクリプトが利用しているプラグインがインストールされていなくても plugins-jmeter.jar (jmeter-plugins-manager-*.*.jar) がインストールされていればOK
  • 15. CSV ファイルの利用 CSV などのテストデータ ファイルを利用するには テスト スクリプトでは設定エレメント (Config Element) の CSV Data Set Config などでテストデータ ファイルのファイル名だけを指定 Azure Load Testing ではテスト設定の Test Plan で対象のファイルをアップ ロードする https://docs.microsoft.com/en-us/azure/load-testing/how-to-read-csv-data
  • 16. Azure Key Vault からシークレットを取得する GetSecret カスタム関数 Parameterize load tests with secrets and environment variables https://docs.microsoft.com/ja-jp/azure/load-testing/how-to-parameterize- load-tests#secrets 設定エレメントのユーザー定義変数 (Config Element > User Defined Variables) で取得すること JMeter で GetSecret 関数を使えるようにするプラグイン https://github.com/pnopjp/jmeter-plugins/blob/master/docs/azure-load- testing-stub.md
  • 17. テスト結果のエクスポート テスト結果をダウンロードして、Report Dashboard の参照や JMeter の Listener でテスト結果を参照することができる JMeter の Listener では ダウンロードしたテスト結果に含まれる testreport.csv ファイルを読み込む
  • 18. 制限 インターネットに対して公開されているサービスに対してのみテストを実施でき る Azure Virtual Network 内の Virtual Machines や VNet 内からの接続のみを許可している Azure PaaS 等はテスト対象にできない すべてのプラグインが利用できるわけではない jmeter-plugins.org から提供されているものは使えるものもある 任意の Java ライブラリが利用できない SQL Server の JDBC Driver などを追加できないため、Azure SQL Database へのテストなどがで きない テストの合格/不合格の判定が柔軟ではない 「平均レスポンスタイム」と「エラー率」のみ 最大 11,250 スレッドが目安 (45 インスタンス x 250 スレッド) テストスクリプトの作成には、別途 Apache JMeter™ を用意する
  • 19. 制限を超えたテストをしたいときは Azure Marketplace で弊社が提供している Load Tester (multiple remote servers) Powered by Apache JMeter™ を利用する https://bit.ly/jmeter-azure Azure 上に複数の JMeter 導入済み(連携済み)の仮想マシンが展開される Azure 仮想マシン(または仮想マシンスケールセット)なので、 任意の VNet に所属し、VNet 内通信でテスト対象にアクセスも可能 任意の JMeter プラグインや Java ライブラリを導入可能 (複数サーバーへの展開も容易) Azure DevOps や GitHub Actions からの、テスト合否判定を柔軟に設定可能 (ただし設定はやや複雑) スレッド数を大きくするため、多くの大きな仮想マシンを構築可能 Azure Monitor などを利用してクライアントと Azure リソースの包括的なビューを作成 できる
  • 20. 参考ドキュメント Azure Load Testing documentation https://docs.microsoft.com/en-us/azure/load-testing/ Apache JMeter https://jmeter.apache.org/
  • 21. まとめ Azure Load Testing は、Apache JMeter™ で実装された フルマネージドな負荷テストサービス 大規模な負荷の作成が容易 Azure DevOps / GitHub Actions から利用しやすい わずかな基本料金 + 使用料に応じたの従量課金
  • 22. pnop 社 Microsoft Azure プロフェッショナルサービス 23 コンサルティング 技術検証 性能検証 PoC, アセスメント テクニカルライティング 講師 / セミナー登壇 開発 環境構築 サポート トラブルシューティング パフォーマンス チューニング 移行 / ポーティング オンプレミス → Azure Linux → Windows 他DB → Azure SQL DB 営業支援 見積支援 【お問い合わせ】株式会社 pnop Azure営業部 sales@pnop.co.jp