2016-07-13 7 views
1

https://www.visualstudio.com/en-us/docs/test/performance-testing/getting-started/getting-started-with-performance-testingVisual Studio Cloud Testingのコアエージェントごとに異なる.csvを使用するにはどうすればよいですか?私はVisual StudioのクラウドテストでシンプルなRESTのAPIの負荷テストを実行しようとしている

要求は許可トークンが含まれていると私はそれらを供給するための.csv事前に生成されたデータソースを使用します。 https://msdn.microsoft.com/library/ms243142.aspx

ローカルマシンからテストを実行すると、すべて正常に動作しますが、テストの97%が失敗します。

私のサービスには並行性チェックがあるので、1つのトークンを使用して1回のリクエストを行うことができます。テストはクラウド内の20のエージェントマシンから実行されており、すべてが同じ.csvデータソースを使用しているようです。

クラウドエージェントごとに異なるデータソースを分散する方法があるのだろうか?

+0

[負荷テスト実行時に複数のテストエージェント間でVUsersを広める方法](http://stackoverflow.com/questions/34314649/how-to-spread-vusers-across-multiple-test-agents-when -running-load-test) – AdrianHHH

+0

Hm、いくつかのGoogle検索を行った後、Webテスト用のデータソースのAccessメソッドを 'Unique'に切り替えることができました。ここに記載されているように:https://blogs.msdn.microsoft.com/slumley/2008/03/14/description-of-access-methods-in-data-sources/残念ながら、テストを実行すると、私はVS1550057: Visual Studio Team Servicesでの負荷テストでは、データソースに対するユニークなデータアクセスはサポートされていません。 –

答えて

0

ご意見によると、uniqueのデータソースアクセス方法は、VSTS CLOUD負荷テストでは使用できません。

1つの可能性:生成するトークンにエージェント番号(AgentID)を含めることはできますか?新たに書き込まれたコンテキストパラメータtokenToUseを使用し、現在、CSVファイルからトークンを使用場所で次に

string tokenFromCSV = e.WebTest.Context["DataSource1.file#csv.token"].ToString(); 
string agentId = e.WebTest.Context["AgentId"].ToString(); 
if(agentId.Length==1) agentId = "0" + agentId; 
string tokenToUse = tokenFromCSV + agentId; 
e.WebTest.Context["tokenToUse"] = tokenToUse; 

:はい、あなたはに基づいてコードを含むプラグインを使用する場合があります。 agent-idをトークン値にマージすることができる他の多くの方法があります。

別の可能性。決して使用されていないエージェントが20(または他の多すぎない)エージェントを使用しない場合は、20列のトークン値を含むCSVを生成します。列名にエージェント番号が含まれているようにし、各エージェントにその列の値のみを使用させます。これはおそらく、正しい列にアクセスし、値をコンテキストパラメータに格納するためのプラグインが必要になるでしょう。

別の可能性。 CSVの行数がテストの仮想ユーザー数の数倍になる場合。私は少なくとも10倍も考えていますが、比率が大きければ大きいほど良いです。 CSVアクセス方法をRandomに設定します。テストは、一度に1つのテストでのみ使用されるトークンを使用して実行する必要があります。二重の使用がいくつかあり、テストの失敗もありますが、顧客はそのレベルの失敗を受け入れるかもしれません。

関連する問題