次の方法で共有


パフォーマンス SDK によるマルチユーザー テストを実行する

この記事では、Microsoft Visual Studio、パフォーマンス ソフトウェア開発キット (SDK)、およびタスク レコーダー テスト スクリプトを使用してマルチユーザー テストを実行する方法について説明します。

重要

Visual Studio 2019 は Web パフォーマンスや負荷テストの機能を含む Visual Studio の最終バージョンであり、今後非推奨になる予定です。 パフォーマンス テストには、Apache JMeter を使用することをお勧めします。 詳細については、JMeter を参照してください。

JMeter は Apache が所有しているため、Microsoft はサポートしていません。 しかし、以下の一連のブログ投稿では、Dynamics 365 財務と運用アプリで JMeter を使用するいくつかの有用なヒントを提供しています。

前提条件

この記事の手順を完了する前に、次の前提条件が満たされていることを確認してください:

マルチ ユーザー テストのための開発環境のコンフィギュレーション

次のコンフィギュレーションは、テスト コントローラーおよびエージェントをローカルにホストするために使用される開発マシンで設定する必要があります。

メモ

Microsoft が管理するすべてのサンドボックスおよびセルフサービス タイプのサンドボックスについて、Microsoft はご使用の環境の証明書を生成し、事前に構成します。

  1. TestRoot という名前の環境変数を作成し、Windows PowerShell で次のコマンドレットを実行して PerfSDK フォルダーをポイントします。

    [ENVIRONMENT]::SETENVIRONMENTVARIABLE("TESTROOT", "K:\PERFSDK\PERFSDKLOCALDIRECTORY", "USER")
    

    変数を検証するには、Windows PowerShell 次のコマンドを実行します。

    [ENVIRONMENT]::GETENVIRONMENTVARIABLE("TESTROOT", "USER") | Write-Host
    
  2. LCS で、ターゲット サンドボックス環境の環境の詳細ページを開きます。

    環境の詳細ページの管理メニューには、次の 2 つの新しいコマンドが表示されます。

    • RSAT 証明書のダウンロード
    • RSAT 証明書を再生成する

    RSAT 証明書のダウンロードと RSAT 証明書の再生成コマンド。

  3. RSAT 証明書をダウンロードを選択して、証明書バンドルを ZIP ファイルとして取得します。

  4. クリアテキストのパスワードが画面に表示されるという警告が表示されます。 はい を選択して続行します。

  5. 後で必要になるため、クリアテキストのパスワードをコピーします。

  6. ZIP ファイルをダウンロードした後、解凍します。 内部には、証明書 (.cer) ファイルと個人情報交換 (.pfx) ファイルがあります。

  7. 証明書 (.cer) ファイルをダブルタップ (またはダブルクリック) して開き、インストールを選択します。 この証明書をローカル コンピューターにインストールしてから、個人ストアを参照します。 ローカル コンピューターの場所に対してこの手順を繰り返し、特定の信頼済ルート証明機関ストアを参照します。

  8. 個人情報交換 (.pfx) ファイルをダブルタップ (またはダブルクリック) して開き、インストールを選択します。 この証明書をローカル コンピューターにインストールしてから、手順 5 でコピーしたパスワードを入力して、個人ストアを参照します。 ローカル コンピューターの場所に対してこの手順を繰り返し、手順 5 でコピーしたパスワードを入力して、特定の信頼済ルート証明機関ストアを参照します。

  9. 証明書ファイルをダブルタップ (またはダブルクリック) して、開きます。 詳細タブで、拇印セクションが見つかるまで下にスクロールします。 拇印を選択し、テキスト ボックスに ID をコピーします。 この拇印を保存し、パフォーマンス SDK に対して CloudEnvironment.config 拇印を更新します。

メモ

Microsoft は、有効期限が切れる前に証明書を自動的にローテーションします。 その時点で、証明書の新しいバージョンをダウンロードする必要があります。 セルフ サービス環境では、証明書は有効期限に最も近いダウンタイム ウィンドウで 60 日ごとにローテーションされます。 ダウンタイム ウィンドウには、顧客が開始したパッケージ展開、および環境を対象とするデータベース移動操作が含まれます。

マルチユーザー テスト用の PerfSDKSample ソリューションの準備

次の手順に従って、パフォーマンス テスト用のサンプル ソリューションを準備します。 サンプル ソリューションは、開発環境の Performance SDK フォルダーにあります。 既定では、フォルダは K:\PerfSDK\PerfSDKLocalDirectory です。

  1. 上位のアクセス許可で次のコマンドレットを実行して、以前にインストールした証明書が正しくインストールされていること、および以前に保存した拇印がローカル コンピューターの個人ストアにあることを確認します。

    cd Cert:\LocalMachine\My
    Get-ChildItem | Where-Object { $_.Subject -like "CN=127.0.0.1" }
    

    次の図は、サンプル結果を示します。 以前に保存した拇印がリストにあることを確認してください。

    コマンド プロンプト ウィンドウの拇印。

  2. Performance SDK フォルダーの CloudEnvironment.config 構成ファイルを更新し、対象の環境を記述します。 この更新プログラムの一部として、次の手順を実行します。

    1. HostNameSOAPHostName の設定が階層 2 以上のサンドボックス環境と一致することを確認します。
    2. SelfSigningCertateThumbprint の値として以前に保存した拇印を追加します。 構成ファイルにエントリがない場合は、次の図に示すように追加できます。
    3. UserCount の設定を更新して、ケースのテスト ユーザーの数と一致するようにします。
    4. UserFormat の設定を更新して、テスト ユーザーの名前付け規則と一致するようにします。
    5. AuthenticatorConfigurationCollection 要素の下の各 AuthenticatorConfiguration 要素で、MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.SelfMintedTokenAadAuthenticatorMS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.SelfMintedTokenAuthenticator で置き換えます。
    6. AzureActiveDirectoryConfiguration 要素と KeyVaultConfigurations 要素をコメント行にします。

    メモ

    財務と運用アプリが 21Vianet に配置されている場合、必ず NetworkDomain="https://sts.chinacloudapi.cn/"SelfMintingSysUser および SelfMintingAdminUser で指定してください。

    結果は次の例のようになります。

    更新された CloudEnvironment.config ファイル。

  3. vsonline.testsettings ファイルの名前を local.testsettings に変更します。

  4. Visual Studio で local.testsettings ファイルを開き、次の手順に従って変更します。

    1. テストの設定 ダイアログ ボックスの 一般 タブの テストの実行場所 フィールド グループで ローカル コンピューターまたはテスト コント ローラーを使用してテストを実行 オプションを選択します。

    2. 配置タブで配置を有効にするチェック ボックスを選択し、ディレクトリの追加ボタンを使用して bin\debug配置する追加のファイルやディレクトリ フィールドに追加します。

      [テストの設定] ダイアログ ボックスの [配置] タブ。

    3. ホスト タブの 32 ビットまたは 64 ビット プロセスでテストを実行 フィールドで、64 ビット コンピューターで 64 ビット プロセスのテストを実行 を選択します。

    4. 適用 を選択して テストの設定 ダイアログ ボックスを閉じます。

    5. プロジェクト コンフィギュレーションを開き、ターゲット フレームワーク.NET Framework 4.6.2 に設定して変更します。

    メモ

    Microsoft Dynamics 365 アドインを使用してタスク記録から C# パフォーマンス テストを生成するたびに、ソリューション全体を再度開くのではなく、プロジェクトを Visual Studio に再読み込みします。 負荷テストを実行する前に、必ずソリューションを再読み込みして、テスト設定ファイルが表示されていることを確認してください。

パフォーマンス テスト ソースの変更

ソリューションで生成された各パフォーマンス テストごとに、次の手順に従います。

  1. 使用ディレクティブ セクションの上部に、次のステートメントを追加します。

    using MS.Dynamics.TestTools.UIHelpers.Core;
    
  2. 全体を次の行に置き換えて、TestSetup メソッドを変更します。

    private DispatchedClient Client;
    private UserContext _userContext;
    private TimerProvider timerProvider;
    [TestInitialize]
    public void TestSetup()
    {
        if (this.TestContext != null)
        {
            timerProvider = new TimerProvider(this.TestContext);
        }
        SetupData();
        Client = new DispatchedClientHelper().GetClient();
        Client.ForceEditMode = false;
        Client.Company = WellKnownCompanyID.USMF.ToString();
        Client.Open();
    }
    
  3. 次の例と同様に TestCleanup メソッドを変更します。

    public void TestCleanup()
    {
        Client.Close();
        Client.Dispose();
        Client = Null;
    }
    
  4. ソリューションを構築します。

負荷テスト ミックスにテストの追加

次の手順に従って、テスト ミックスにパフォーマンス テストを追加します。

  1. SampleLoadTest.loadtest ファイルを開き、テスト ミックス ノードを検索します。

  2. テスト ミックス ノードを選択し、保留 (または右クリック) し、テスト ミックスの編集を選択します。

  3. テスト ミックスの編集ダイアログ ボックスで、追加を選択してテストをミックスに追加します。

    [テスト ミックスの編集] ダイアログ ボックス。

  4. 実行設定ノードで、プロパティを変更し、実行設定 1タイミング フィールドを更新します。 これらのフィールドは ウォームアップ期間実行期間クールダウン期間 を含みます。

    タイミング フィールド。

  5. シナリオ ノードで、必ず負荷パターン プロパティを更新し、定数ユーザー数パラメーターをテストの実行に使用するユーザーの総数に設定してください。

    定数ユーザー数パラメーター。

新規ユーザーのテスト

テスト ユーザーは、ターゲット環境に追加する必要があります。 名前付けパターンは CloudEnvironment.config 構成ファイルで指定されたパターンと一致している必要があります。 Microsoft Dynamics 365 環境でユーザーを手動で作成するか、Performance SDK フォルダーの MS.Dynamics.Performance.CreateUsers.exe コンソール アプリケーションを使用できます。

ユーザーを手動で作成する場合は、各ユーザーにシステム管理者セキュリティ ロールが割り当てられている必要があります。

コンソール アプリケーションを使用してユーザーを作成することをお勧めします。コンソール アプリケーションは構成ファイルを読み取り、適切なサービス エンドポイントを呼び出すためです。

ローカル テスト コントローラーを使用したマルチユーザー テストの実行

  1. Visual Studio プロジェクトで、SampleLoadTest.loadtest ファイルを開き、負荷テストを実行を選択します。

  2. テスト出力を確認します。

    テスト出力。

トラブルシューティング

パフォーマンス SDK を使用するシングル ユーザーまたはマルチ ユーザーのテストの詳細については、パフォーマンス SDK によるシングルユーザーまたはマルチユーザーのテストに関するトラブルシューティングガイド を参照してください。