いよいよ開幕。地獄の18章。ここがドキュメントのほぼ全てだっ。だけど、逆に言うと外堀は全部埋めた(BeanShellとかスルーしてるけど)形になっているので、サクサク翻訳が進められるはず。まぁ、この章は検証しながらになるから遅くなると思うけど。
18.1 Samplers
18.1 サンプラ
Samplers perform the actual work of JMeter. Each sampler (except Test Action) generates one or more sample results. The sample results have various attributes (success/fail, elapsed time, data size etc) and can be viewed in the various listeners.
サンプラがJMeterの本当の仕事を請け負います。それぞれのサンプラは(テスト動作を実施する)一つ以上のサンプル結果を生成します。サンプル結果はさまざまな属性(成功/失敗、経過時間、データサイズ等)を保持しており、各種リスナによって閲覧できます。
18.1.1 FTP Request
18.1.1 FTPリクエスト
This controller lets you send an FTP "retrieve file" or "upload file" request to an FTP server. If you are going to send multiple requests to the same FTP server, consider using a FTP Request Defaults Configuration Element so you do not have to enter the same information for each FTP Request Generative Controller. When downloading a file, it can be stored on disk (Local File) or in the Response Data, or both.
このコントローラはFTPサーバにFTPのダウンロードかアップロードリクエストを送信します。同一のFTPサーバに複数のリクエストを送信する場合、個々のFTPリクエストに同一の設定値を入力するのではなく、FTPリクエストデフォルト設定要素を使用してください。ダウンロードしたファイルをディスク(ローカルファイル)に保存するか、サンプル結果に含めるか、どちらもかを選択できます。
Latency is set to the time it takes to login (versions of JMeter after 2.3.1).
ログインにかかった時間がレイテンシに保存されます(JMeter 2.3.1以降)。
Control Panel
コントロールパネル
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree. No
名前 ツリー上に表示されるコントローラの名前 省略可
Server Name or IP Domain name or IP address of the FTP server. JMeter assumes the FTP server is listening on the default port. Yes
サーバ名又はIP FTPサーバのドメイン名かIPアドレス。JMeterはFTPサーバがデフォルトポートで待ち受けているとみなします。 必須
Remote File: File to retrieve or name of destination file to upload. Yes
リモートファイル ダウンロードかアップロードするファイル名。 必須(訳注:コロンが不要です)
Local File: File to upload, or destination for downloads (defaults to remote file name). Yes, if uploading (*)
ローカルファイル アップロードかダウンロードして保存するファイル名(デフォルトはリモートファイル名です)。 アップロードするなら必須(*)(訳注:これもコロンが不要)
Local File Contents: Provides the contents for the upload, overrides the Local File property. Yes, if uploading (*)
ローカルファイルコンテンツ アップロードするファイルの内容を記述します。ローカルファイルプロパティに優先します。 アップロードするなら必須(*)(訳注:これもコロン不要。また、画像が古くてこの項目が存在しない)
get(RETR) / put(STOR) Whether to retrieve or upload a file. Yes
get(RETR) / put(STOR) ダウンロードかアップロードのどちらであるかを指定します。 必須
Use Binary mode ? Check this to use Binary mode (default Ascii) Yes
バイナリモードを使用 バイナリモードを使用するなら(デフォルトはASCII)チェックしてください。 必須
Save File in Response ? Whether to store contents of retrieved file in response data. If the mode is Ascii, then the contents will be visible in the Tree View Listener. Yes, if downloading
サンプル結果にファイルを保存する サンプル結果にダウンロードしたファイルを含めるかを指定します。ASCIIモードである場合には、ツリービューリスナからファイルの中身を閲覧できます。 ダウンロードするなら必須
Username FTP account username. Usually
ユーザ名 FTPユーザアカウント名。 通常必要
Password FTP account password. N.B. This will be visible in the test plan. Usually
パスワード FTPユーザアカウントのパスワード。テスト計画上からこの変数は参照可能です。 通常必要
See Also:
* Assertions
* FTP Request Defaults
* Building an FTP Test Plan
18.1.2 HTTP Request
18.1.2 HTTPリクエスト
This sampler lets you send an HTTP/HTTPS request to a web server. It also lets you control whether or not JMeter parses HTML files for images and other embedded resources and sends HTTP requests to retrieve them. The following types of embedded resource are retrieved:
このサンプラはHTTP/HTTPSリクエストをウェブサーバへ送信させます。また、HTMLファイルを解析して画像やその他のリソースを得るためにHTTPリクエストを送信するかを制御できます。以下の種類の組み込みリソースに対応しています:
* images
* applets
* stylesheets
* external scripts
* frames
* background images (body, table, TD, TR)
* background sound
The default parser is htmlparser. This can be changed by using the property "htmlparser.classname" - see jmeter.properties for details.
デフォルトのパーサはhtmlparserです。プロパティ"htmlparser.classname"によって変更できます。詳細についてはjmeter.propertiesを参照してください。
If you are going to send multiple requests to the same web server, consider using an HTTP Request Defaults Configuration Element so you do not have to enter the same information for each HTTP Request.
同一のウェブサーバに複数のリクエストを送信する場合、個々のHTTPリクエストに同一の設定値を入力するのではなく、HTTPリクエストデフォルト設定要素を使用してください。
Or, instead of manually adding HTTP Requests, you may want to use JMeter's HTTP Proxy Server to create them. This can save you time if you have a lot of HTTP requests or requests with many parameters.
HTTPリクエストに手動で追加する代わりに、JMeterのHTTPプロキシサーバを使用して作成したいと思うかもしれません。大量のHTTPリクエストがある場合や大量のパラメータが存在する場合には、作業時間の短縮になるでしょう。
There are three versions of the sampler:
以下の三つのサンプラが存在します:
* HTTP Request - uses the default Java HTTP implementation
* HTTPリクエスト - JavaによるデフォルトのHTTPの実装を使用
* HTTP Request HTTPClient - uses Apache Commons HttpClient
* HTTPリクエストHTTPClient - ApacheコモンHttpClientを使用
* AJP/1.3 Sampler - uses the Tomcat mod_jk protocol (allows testing of Tomcat in AJP mode without needing Apache httpd) The AJP Sampler does not support multiple file upload; only the first file will be used.
* APJ/1.3サンプラ - Tomcat mod_jk プロトコルを使用(Apache httpd無しでTomcatをAPJモードでテストできます)。AJPサンプラは複数のファイルのアップロードに対応していません。始めのファイルだけが使用されるでしょう。
The default (Java) implementation has some limitations:
デフォルト(Java)の実装にはいくつかの制限があります:
* There is no control over how connections are re-used. When a connection is released by JMeter, it may or may not be re-used by the same thread.
* コネクション再利用の制御方法が存在しません。JMeterがコネクションを解放する時に、同じスレッドが再利用できるか否かは未確定です。
* The API is best suited to single-threaded usage - various settings (e.g. proxy) are defined via system properties, and therefore apply to all connections.
* APIはシングルスレッドの場合に最も適しています。変数設定(例、プロキシ)はシステムプロパティを経由して定義するため、全ての接続に対して変数は適用されます。
* There is a bug in the handling of HTTPS via a Proxy (the CONNECT is not handled correctly). See Java bugs 6226610 and 6208335.
* プロキシ経由のHTTPS(CONNECTが現在未実装です)の制御にバグが存在します。Javaバグ6226610と6208335を参照してください。
Note: the FILE protocol is intended for testing puposes only. It is handled by the same code regardless of which HTTP Sampler is used.
注意: FILEプロトコルはテストする目的に限定して使用してください。HTTPサンプラと同じコードを無頓着に流用して実装されています。
If the request requires server or proxy login authorization (i.e. where a browser would create a pop-up dialog box), you will also have to add an HTTP Authorization Manager Configuration Element. For normal logins (i.e. where the user enters login information in a form), you will need to work out what the form submit button does, and create an HTTP request with the appropriate method (usually POST) and the appropriate parameters from the form definition. If the page uses HTTP, you can use the JMeter Proxy to capture the login sequence.
リクエストがサーバかプロキシのログイン認証を要求する場合には(例えば、ブラウザがポップアップダイアログボックスを作成するような)、HTTP認証マネージャ設定要素を追加する必要があります。通常のログイン(例えば、ユーザがフォームにログイン情報を入力する形のもの)では、フォームのsubmitボタンの処理を解析する必要があり、適切なメソッド(通常POST)で、フォームに定義された適切なパラメータを持つHTTPリクエストを生成します。ページがHTTPを使用する場合には、JMeterプロキシでログインシーケンスをキャプチャできます。
In versions of JMeter up to 2.2, only a single SSL context was used for all threads and samplers. This did not generate the proper load for multiple users. A separate SSL context is now used for each thread. To revert to the original behaviour, set the JMeter property:
JMeter version 2.2迄では、一つのSSLコンテキストを全てのスレッドとサンプラで共有していました。これは複数ユーザに適した負荷を生成できません。SSLコンテキストは現在ではそれぞれのスレッドで分割して使用されています。以前の状態に戻すにはJMeterプロパティを設定します。
https.sessioncontext.shared=true
JMeter defaults to the SSL protocol level TLS. If the server needs a different level, e.g. SSLv3, change the JMeter property, for example:
JMeterのデフォルトSSLプロトコルレベルはTLSです。サーバが異なるレベル(SSLv3等)を必要とする場合には、JMeterプロパティを変更してください。例:
https.default.protocol=SSLv3
If the request uses cookies, then you will also need an HTTP Cookie Manager . You can add either of these elements to the Thread Group or the HTTP Request. If you have more than one HTTP Request that needs authorizations or cookies, then add the elements to the Thread Group. That way, all HTTP Request controllers will share the same Authorization Manager and Cookie Manager elements.
リクエストがクッキーを使用する場合、HTTPクッキーマネージャが必要になるでしょう。スレッドグループかHTTPリクエストのどちらにも要素を追加できます。一つ以上のHTTPリクエストが認証かクッキーを必要とする場合には、スレッドグループに追加します。この方法では全てのHTTPリクエストが同じ認証マネージャ要素やクッキーマネージャ要素を共有して管理されます。
If the request uses a technique called "URL Rewriting" to maintain sessions, then see section 6.1 Handling User Sessions With URL Rewriting for additional configuration steps.
セッションを保持するために"URLリライティング"と呼ばれるテクニックをリクエストが使用している場合には、6.1 Handling User Sessions With URL Rewriting (訳注:Aタグ注意)を参照して追加設定を行なってください。
Control Panel
コントロールパネル
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree. No
名前 ツリー上に表示されるコントローラの名前 省略可
Server Domain name or IP address of the web server. e.g. www.example.com. [Do not include the http:// prefix.] No
サーバ ウェブサーバのドメイン名かIPアドレス。例、www.example.com。[プレフィックス http:// を含めないで下さい。] 省略可
Port Port the web server is listening to. Default: 80 No
ポート ウェブサーバが待ち受けするポート番号。デフォルト:80 省略可
Protocol HTTP, HTTPS or FILE. Default: HTTP No
プロトコル HTTP、HTTPS、FILEのいずれか。デフォルト:HTTP 省略可
Method GET, POST, HEAD, TRACE, OPTIONS, PUT, DELETE Yes
メソッド GET、POST、HEAD、TRACE、OPTIONS、PUT、DELETEのいずれか。 必須
Content Encoding Content encoding to be used (for POST and FILE) No
Content Encoding 使用するContent Encoding(POSTかFILEにて)。 省略可
Redirect Automatically Sets the underlying http protocol handler to automatically follow redirects, so they are not seen by JMeter, and thus will not appear as samples. Should only be used for GET and HEAD requests. The HttpClient sampler will reject attempts to use it for POST or PUT. Warning: see below for information on cookie and header handling. Yes
自動リダイレクト 基礎的なHTTPプロトコルハンドラに自動リダイレクトを実施させる場合にセットし、JMeterからは見られません。そしてそれらはサンプルに現れません。GETかHEADのリクエストの場合だけに使用を止めるべきです。HTTPClientサンプラはPOSTとPUTの場合には要求を却下します。注意:以下のクッキーとヘッダの取り扱いに関する情報を参照してください。 必須(訳注:**もんのすごく勢いに任せて書いてるんで必ず見直してから仕上げること**)
Follow Redirects This only has any effect if "Redirect Automatically" is not enabled. If set, the JMeter sampler will check if the response is a redirect and follow it if so. The redirect response will appear as an additional sample. Note that the HttpClient sampler may log the following message:
This can be ignored. Yes
リダイレクトをたどる "自動リダイレクト"が有効ではない場合にこれは効力を発揮します。セットした場合には、JMeterのサンプラはレスポンスがリダイレクトでありそれをたどれるかを確認します。リダイレクトされたレスポンスは追加したサンプルのように見えます。HttpClientサンプラはログに以下のメッセージを出力することに注意してください。
"Redirect requested but followRedirects is disabled"
Use KeepAlive JMeter sets the Connection: keep-alive header. This does not work properly with the default HTTP implementation, as connection re-use is not under user-control. It does work with the Jakarta httpClient implementation. Yes
KeepAliveを使用する JMeterに Connection: keep-alive ヘッダを使用するように設定します。これはデフォルトのHTTPの実装が適切にされていないためうまく動作しません。コネクションの再使用をユーザが制御できないためです。
Jakarta httpClient による実装では動作します。 必須
Use multipart/form-data for HTTP POST Use a multipart/form-data or application/x-www-form-urlencoded post request Yes
multipart/form-dataをHTTP POSTに使用する multipart/form-data又はapplication/x-www-form-urlencoded をPOSTリクエストで使用します。 必須
Path The path to resource (for example, /servlets/myServlet). If the resource requires query string parameters, add them below in the "Send Parameters With the Request" section. As a special case, if the path starts with "http://" or "https://" then this is used as the full URL. In this case, the server, port and protocol are ignored; parameters are also ignored for GET and DELETE methods. Yes
パス リソースのパス(例えば、/servlets/myServlet)。リソースがクエリーストリングパラメータを要求する場合には、以下の"リクエスト時に送信するパラメータ"を参照してください。パスが"https://"で開始する完全なURLである場合には、特別なケースです。この場合、サーバ、ポート、プロトコルは無視されます。パラメータはGETとDELETEメソッド以外のパラメータを無視します。 必須
Send Parameters With the Request The query string will be generated from the list of parameters you provide. Each parameter has a name and value , the options to encode the parameter, and an option to include or exclude an equals sign (some applications don't expect an equals when the value is the empty string). The query string will be generated in the correct fashion, depending on the choice of "Method" you made (ie if you chose GET or DELETE, the query string will be appended to the URL, if POST or PUT, then it will be sent separately). Also, if you are sending a file using a multipart form, the query string will be created using the multipart form specifications. See below for some further information on parameter handling.
リクエスト時に送信するパラメータ クエリーストリングは用いるパラメータのリストによって生成されます。それぞれのパラメータには名前と値が存在し、パラメータのエンコードを行うオプションと、等記号を追加するかしないか(いくつかのアプリケーションは値が空文字列の場合に等記号が存在することを期待していません。)のオプションが存在します。クエリーストリングは正しく生成され、選択した"メソッド"とは独立して生成されます(例えば、GETかDELETEを選択した場合には、クエリーストリングはURLに追加されますが、POSTかPUTである場合には分割して送信されます)。マルチパートフォームを使用してファイルを送信する場合には、クエリーストリングはマルチパートフォームの仕様に従って生成されます。以下で説明するパラメータ制御を参照してください。
Additionally, you can specify whether each parameter should be URL encoded. If you are not sure what this means, it is probably best to select it. If your values contain characters such as & or spaces, or question marks, then encoding is usually required.
No
加えて、それぞれのパラメータはURLエンコードするべきか否かに関わらず指定できます。これが何を意味するか自信がない場合には、それを選択することが大概最前策です。「&」か「?」か空白文字が値に含まれる場合には、エンコーディングが通常必要です。 省略可
File Path: Name of the file to send. If left blank, JMeter does not send a file, if filled in, JMeter automatically sends the request as a multipart form request.
ファイルパス 送信するファイルの名前。左側が空である場合には、JMeterはファイルを送信しません。左側のフィールドに入力がある場合には、JMeterはリクエストを自動的にマルチパートフォームのリクエストとして送信します。
If it is a POST or PUT request and there is a single file whose 'name' attribute (below) is omitted, then the file is sent as the entire body of the request, i.e. no wrappers are added. This allows arbitrary bodies to be sent. This functionality is present for POST requests after version 2.2, and also for PUT requests after version 2.3. See below for some further information on parameter handling.
No
POSTかPUTリクエストであり且つファイルが一つだけである場合には'名前'属性(後で記します)は無視され、ファイルはラッパを追加することなく完全なリクエストボディとして送信されます。任意のボディを送信することができます。この機能はPOSTリクエストはバージョン2.2から、PUTリクエストはバージョン2.3から提供されました。以下で説明するパラメータ制御を参照してください。 省略可
Parameter name: Value of the "name" web request parameter. No
パラメータ名 ウェブリクエストパラメータの"名前"の値。 省略可(訳注:この前後で"name"といわれているのってこれのこと?)
MIME Type MIME type (for example, text/plain). If it is a POST or PUT request and either the 'name' atribute (below) are omitted or the request body is constructed from parameter values only, then the value of this field is used as the value of the content-type request header. No
MIME Type MIME type(例えば text/plain)。POSTかPUTリクエストであるか、'名前'属性(後で記述します(訳注:このすぐ上のじゃないの?))が省略されているか、リクエストボディがパラメータの値だけで構成されている場合に、content-typeヘッダの値としてこのフィールドの値が使用されます。 省略可
Retrieve All Embedded Resources from HTML Files Tell JMeter to parse the HTML file and send HTTP/HTTPS requests for all images, Java applets, JavaScript files, CSSs, etc. referenced in the file. See below for more details. No
HTMLファイルに組み込まれた全てのリソースを取得 HTMLファイルを解析してHTTP/HTTPSリクエストを全ての画像、Javaアプレット、JavaScriptファイル、CSS等に送信するようにJMeterに指示します。以下の詳細を参照してください。 省略可
Use as monitor For use with the Monitor Results listener. Yes
モニタとして使用する モニタリザルトリスナと共に使用します。 必須
Save response as MD5 hash? If this is selected, then the response is not stored in the sample result. Instead, the 32 character MD5 hash of the data is calculated and stored instead. This is intended for testing large amounts of data. Yes
応答をMD5ハッシュで保存する これを選択すると、サンプル結果にレスポンスを保存しません。その代わりに、32文字のMD5ハッシュ値を計算して保存します。これは巨大なデータをテストする場合を意識しています。
Embedded URLs must match: If present, this must be a regular expression that is used to match against any embedded URLs found. So if you only want to download embedded resources from http://example.com/, use the expression: http://example\.com/.* No
マッチしなければならない組み込みURL 指定する場合には、正規表現を入力します。組み込みURLが見つかった場合には、その正規表現とマッチするかを確認します。組み込みリソースを http://example.com/ だけからダウンロードさせたい場合には次の正規表現を使用します。http://example\.com/.* 。 省略可
N.B. when using Automatic Redirection, cookies are only sent for the initial URL. This can cause unexpected behaviour for web-sites that redirect to a local server. E.g. if www.example.com redirects to www.example.co.uk. In this case the server will probably return cookies for both URLs, but JMeter will only see the cookies for the last host, i.e. www.example.co.uk. If the next request in the test plan uses www.example.com, rather than www.example.co.uk, it will not get the correct cookies. Likewise, Headers are sent for the initial request, and won't be sent for the redirect. This is generally only a problem for manually created test plans, as a test plan created using a recorder would continue from the redirected URL.
注意:自動リダイレクトを使用する場合には、クッキーは最初のURLだけに送信される事に注意してください。これはローカルサーバへリダイレクトするウェブサーバで予期しない動作を引き起こします。例えば、www.example.com が www.example.com.uk にリダイレクトする場合、サーバは高確立で両方のURLへのクッキーを返却しますが、JMeterは最後のホストのクッキーだけを参照します。例:www.example.co.uk。テスト計画が次のリクエストを www.example.co.uk ではなく www.example.com へ送信する場合、適切なクッキーを取得できません。同様に、ヘッダは最初のリクエストのために送信され、リダイレクトのためには送信されません。これは通常は手動で作られたテスト計画だけに発生する問題で、レコーダを使用してテスト計画を作成した場合にはリダイレクトしたURLへ処理が継続するでしょう。
Parameter Handling:
パラメータ制御:
For the POST and PUT method, if there is no file to send, and the name(s) of the parameter(s) are omitted, then the body is created by concatenating all the value(s) of the parameters. This allows arbitrary bodies to be sent. The values are encoded if the encoding flag is set (versions of JMeter after 2.3). See also the MIME Type above how you can control the content-type request header that is sent.
POSTとPUTメソッドでは、ファイルを送信しない且つパラメータの名前が省略された場合には、全てのパラメータを連結したものがボディとして生成されます。これは任意のボディを送信できます。エンコードフラグが設定されている場合には値はエンコードされます(JMeterバージョン2.3以降)。上記のMIME Typeを参照して content-type リクエストヘッダを制御して設定する方法を確認してください。
For other methods, if the name of the parameter is missing, then the parameter is ignored. This allows the use of optional parameters defined by variables. (versions of JMeter after 2.3)
他のメソッドには、パラメータが存在しない場合には、そのパラメータは無視されます。変数にオプションのパラメータを設定する事に使用できます(JMeterバージョン2.3以降)。
Method Handling:
メソッド制御:
The POST and PUT request methods work similarly, except that the PUT method does not support multipart requests. The GET and DELETE request methods work similarly.
POSTとPUTリクエストメソッドは類似した動作をしますが、例外としてPOSTメソッドはマルチパートリクエストをサポートしていません。GETとDELETEリクエストは類似した動作をします。
Upto and including JMeter 2.1.1, only responses with the content-type "text/html" were scanned for embedded resources. Other content-types were assumed to be something other than HTML. JMeter 2.1.2 introduces the a new property HTTPResponse.parsers , which is a list of parser ids, e.g. htmlParser and wmlParser . For each id found, JMeter checks two further properties:
JMeter 2.1.1までは、レスポンスのcontent-typeが"text/html"であるものだけが組み込みリソースのサーチ対象でした。他の content-type はHTMLではないものだと見なされていました。JMeter 2.1.2 は新しいプロパティ HTTPResponse.parsers を導入しました。それはパーサのIDのリストです。例:htmlParser と wmlParser。それぞれのIDを見つけると、JMeterは二つのプロパティを確認します。
* id.types - a list of content types
* id.className - the parser to be used to extract the embedded resources
* id.types - content typeのリスト
* id.className - 組み込みリソースを抽出するために使用するパーサ
See jmeter.properties file for the details of the settings. If the HTTPResponse.parser property is not set, JMeter reverts to the previous behaviour, i.e. only text/html responses will be scanned
詳細な設定方法に関しては jmeter.properties ファイルを参照してください。HTTPResponse.parserプロパティが設定されていない場合には、JMEterは以前と同様の振る舞いを行います。text/htmlのレスポンスだけがサーチされます。
See Also:
* Assertion
* Building a Web Test Plan
* Building an Advanced Web Test Plan
* HTTP Authorization Manager
* HTTP Cookie Manager
* HTTP Header Manager
* HTML Link Parser
* HTTP Proxy Server
* HTTP Request Defaults
* HTTP Requests and Session ID's: URL Rewriting
(訳注:後で全部リンクはること。)
18.2 Logic Controllers
18.2 ロジックコントローラ
Logic Controllers determine the order in which Samplers are processed.
ロジックコントローラは散布羅の実行する順番を決定します。
18.2.1 Simple Controller
18.2.1 シンプルコントローラ
The Simple Logic Controller lets you organize your Samplers and other Logic Controllers. Unlike other Logic Controllers, this controller provides no functionality beyond that of a storage device.
シンプルロジックコントローラはサンプラと他のロジックコントローラを束ねさせます。他のロジックコントローラとは異なり、このコントローラには関数によるストレージデバイスは提供されません。
Control Panel
コントロールパネル
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree. No
名前 ツリー上に表示されるコントローラの名前 省略可
Using the Simple Controller
シンプルコントローラを使用する
Download this example (see Figure 6). In this example, we created a Test Plan that sends two Ant HTTP requests and two Log4J HTTP requests. We grouped the Ant and Log4J requests by placing them inside Simple Logic Controllers. Remember, the Simple Logic Controller has no effect on how JMeter processes the controller(s) you add to it. So, in this example, JMeter sends the requests in the following order: Ant Home Page, Ant News Page, Log4J Home Page, Log4J History Page. Note, the File Reporter is configured to store the results in a file named "simple-test.dat" in the current directory.
この例(図6(訳注:なんでいきなり図6なんですか?18-nじゃないの?)を参照してください)をダウンロードしてください。この例では、テスト計画に二つのAnt HTTPリクエストと二つのLog4J HTTPリクエストを生成します。シンプルロジックコントローラの中にAntとLog4Jリクエストを格納してグループ化しています。(訳注:シンプルコントローラ?シンプルロジックコントローラ?どっち?統一しましょう。)シンプルロジックコントローラは追加するコントローラに対してJMeterに何の影響も与えない事を忘れないでください。この例では、JMeterは次の順番でリクエストを送信します。Ant Home Page、Ant News Page、Log4J Home Page、Log4J History Pageの順です。File Reporterは"simple-test.dat"という名前でカレントディレクトリに結果を保存します。
Figure 6 Simple Controller Example
図6 シンプルコントローラ例(訳注:18-nにする事)
18.2.2 Loop Controller
18.2.2 ループコントローラ
If you add Generative or Logic Controllers to a Loop Controller, JMeter will loop through them a certain number of times, in addition to the loop value you specified for the Thread Group. For example, if you add one HTTP Request to a Loop Controller with a loop count of two, and configure the Thread Group loop count to three, JMeter will send a total of 2 * 3 = 6 HTTP Requests.
ループコントローラにロジックコントローラか他の生成するものを追加する場合、JMeterは指定の回数繰返し処理を行い、スレッドグループに指定したループ数の加算を行います。例えば、ループコントローラにループ数を2と指定してHTTPリクエストを一つ追加し、スレッドグループのループ数に3を指定した場合には、JMeterは合計で 2 * 3 = 6 HTTPリクエストを送信します。
Control Panel
コントロールパネル
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree. No
名前 ツリー上に表示されるコントローラの名前 省略可
Loop Count The number of times the subelements of this controller will be iterated each time through a test run.
ループ数 このコントローラのサブ要素がテストの実行の際に繰り返し処理される回数。
Special Case: The Loop Controller embedded in the Thread Group element behaves slightly differently. Unless set to forever, it stops the test after the given number of iterations have been done.
Yes, unless "Forever" is checked
例外事項: スレッドグループ要素に組み込まれたループコントローラは若干異なる挙動を示します。無限ループを指定しない限り、指定したループ回数を実行した後に停止します。
Looping Example
ループの例
Download this example (see Figure 4). In this example, we created a Test Plan that sends a particular HTTP Request only once and sends another HTTP Request five times.
この例(図4(訳注:図6の次が4ですか?)を参照してください)をダウンロードしてください。この例では、特別なHTTPリクエストを一度だけ送信し、そうでないHTTPリクエストを5回送信しています。
Figure 4 - Loop Controller Example
図4(訳注:図表番号は後で直すこと) - ループコントローラの例
We configured the Thread Group for a single thread and a loop count value of one. Instead of letting the Thread Group control the looping, we used a Loop Controller. You can see that we added one HTTP Request to the Thread Group and another HTTP Request to a Loop Controller. We configured the Loop Controller with a loop count value of five.
シングルスレッドでループ回数が1のスレッドグループを設定しました。スレッドグループコントローラのループとループコントローラは独立しています。一度送信するHTTPリクエストがスレッドグループ直下に存在し、他のHTTPリクエストはループコントローラ直下に存在しています。ループコントローラのループ回数は5に設定しています。
JMeter will send the requests in the following order: Home Page, News Page, News Page, News Page, News Page, and News Page. Note, the File Reporter is configured to store the results in a file named "loop-test.dat" in the current directory.
JMeterは次の順番でリクエストを送信します。Home Page、News Page、News Page、News Page、 News Page、News Pageの順です。File Reporterは"loop-test.dat"という名前でカレントディレクトリに結果を保存します。
18.2.4 Interleave Controller
18.2.4 インタリーブコントローラ
If you add Generative or Logic Controllers to an Interleave Controller, JMeter will alternate among each of the other controllers for each loop iteration.
Generativeかロジックコントローラにインタリーブコントローラを追加すると、JMeterは他のコントローラを交互に選択し、そのコントローラのループを繰り返しを行うでしょう。
Control Panel
コントロールパネル
Parameters
Attribute Description Required
name Descriptive name for this controller that is shown in the tree. No
名前 ツリー上で表示されるコントローラの名前 省略可
ignore sub-controller blocks If checked, the interleave controller will treat sub-controllers like single request elements and only allow one request per controller at a time. No
サブコントローラブロックを無視する チェックした場合には、インタリーブコントローラはサブコントローラを単一のリクエスト要素として扱い、コントローラに一度に一つだけのリクエストを送信することを許可します。 省略可
Simple Interleave Example
単純なインタリーブの例
Download this example (see Figure 1). In this example, we configured the Thread Group to have two threads and a loop count of five, for a total of ten requests per thread. See the table below for the sequence JMeter sends the HTTP Requests.
この例をダウンロードしてください(図1を参照してください)。(訳注:図18-nであるべき)この例ではスレッドグループのスレッド数は2、ループ数は5、合計で10リクエストがスレッド毎に送信されます。以下の表のJMeterが送信するHTTPリクエストのシーケンスを参照してください。
Figure 1 - Interleave Controller Example 1
図1 - インタリーブコントローラの例1
Loop Iteration Each JMeter Thread Sends These HTTP Requests
ループの繰り返し それぞれのJMeterスレッドが送信するHTTPリクエスト
1 News Page
1 Log Page
2 FAQ Page
2 Log Page
3 Gump Page
3 Log Page
4 Because there are no more requests in the controller,
JMeter starts over and sends the first HTTP Request, which is the News Page.
4 このコントローラにはリクエストが残っていないので、
JMeterは最初(News Page)のHTTPリクエストを送信します。
4 Log Page
5 FAQ Page
5 Log Page
Useful Interleave Example
便利なインタリーブの例
Download another example (see Figure 2). In this example, we configured the Thread Group to have a single thread and a loop count of eight. Notice that the Test Plan has an outer Interleave Controller with two Interleave Controllers inside of it.
他の例をダウンロードしてください(図2を参照してください)(訳注:だから18-2-4-1とかにしたら?)。この例ではスレッドグループはシングルスレッドでループ回数は8です。二つのインタリーブコントローラを中に持つインタリーブコントローラがテスト計画に存在します。
Figure 2 - Interleave Controller Example 2
図2 - インタリーブコントローラの例2
The outer Interleave Controller alternates between the two inner ones. Then, each inner Interleave Controller alternates between each of the HTTP Requests. Each JMeter thread will send the requests in the following order: Home Page, Interleaved, Bug Page, Interleaved, CVS Page, Interleaved, and FAQ Page, Interleaved. Note, the File Reporter is configured to store the results in a file named "interleave-test2.dat" in the current directory.
外側のインタリーブコントローラは内部に存在する二つのインタリーブコントローラを交互に選択します。それぞれの内部のインタリーブコントローラはそれぞれのHTTPリクエストを相互に選択します。それぞれのJMeterのスレッドは以下の順番でリクエストを送信します。Home Page、Interleaved、Bug Page、Interleaved、CVS Page、Interleaved、FAQ Page、Interleavedです。ファイルレポータ(訳注:むしろ Simple Data Writerではないか?)は結果を"interleave-test2.dat"と言うファイル名で保存するように設定されていることに注意してください。(訳注:実はされてないんだけど)
Figure 3 - Interleave Controller Example 3
図3 - インタリーブコントローラ例3(訳注:だから図18.2.4-3にしようよ)
If the two interleave controllers under the main interleave controller were instead simple controllers, then the order would be: Home Page, CVS Page, Interleaved, Bug Page, FAQ Page, Interleaved. However, if "ignore sub-controller blocks" was checked on the main interleave controller, then the order would be: Home Page, Interleaved, Bug Page, Interleaved, CVS Page, Interleaved, and FAQ Page, Interleaved.
インタリーブコントローラの代わりにシンプルコントローラが二つのインタリーブコントローラの親であった場合には、順序は以下の通りです。Home Page、CVS Page、Interleaved、Bug Page、FAQ Page、Interleavedです。また、親のインタリーブコントローラの"サブコントローラブロックを無視する"がチェックされている場合には、順番は以下の通りです。Home Page、Interleaved、Bug Page、Interleaved、CVS Page、Interleaved、FAQ Page、Interleavedです。
18.2.5 Random Controller
18.2.5 ランダムコントローラ
The Random Logic Controller acts similarly to the Interleave Controller, except that instead of going in order through its sub-controllers and samplers, it picks one at random at each pass.
ランダムロジックコントローラはインタリーブコントローラと同じように振る舞いますが、順番にサブコントローラやサンプラを処理する代わりに、一度の処理で処理対象を一つだけ選択します。
Interactions between multiple controllers can yield complex behavior. This is particularly true of the Random Controller. Experiment before you assume what results any given interaction will give
複数のコントローラとの間の相互作用は複雑な挙動をもたらします。これはまさしくランダムコントローラに関しても当てはまります。与えられるいかなる相互作用による結果を推定する前の実験で有用です。
Control Panel
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree. No
名前 ツリー上に表示されるコントローラの名前 省略可
18.2.6 Random Order Controller
18.2.6 ランダム順序コントローラ
The Random Order Controller is much like a Simple Controller in that it will execute each child element at most once, but the order of execution of the nodes will be random.
ランダム順序コントローラはシンプルコントローラによく似ています。それぞれの子要素は一度だけ実行され、ノードの実行順序はランダムです。
Control Panel
(訳注:図18.2.6-1ってやるのやめちゃったの?)
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree. No
名前 ツリー上に表示されるコントローラの名前 省略可
18.2.7 Throughput Controller
18.2.7 スループットコントローラ
This controller is badly named, as it does not control throughput. Please refer to the Constant Throughput Timer for an element that can be used to adjust the throughput.
このコントローラは悪い名前が付けられています。スループットの制御は行ないません。スループットに関しては定数スループットタイマ要素を参照してください。
The Throughput Controller allows the user to control how often it is executed. There are two modes - percent execution and total executions. Percent executions causes the controller to execute a certain percentage of the iterations through the test plan. Total executions causes the controller to stop executing after a certain number of executions have occurred. Like the Once Only Controller, this setting is reset when a parent Loop Controller restarts.
スループットコントローラはどのくらいの頻度で実行するかを制御します。パーセント実行と合計実行回数の二つのモードがあります。パーセント実行はテスト計画における繰り返される処理のうち指定の割合でコントローラが実行されるかを決定します。合計実行回数は指定回数コントローラの処理を実行した以降では処理を行いません。一度だけ実行のコントローラに類似しており、この設定はパーセント実行ループコントローラが再起動した時にリセットされます。
Control Panel
The Throughput Controller can yield very complex behavior when combined with other controllers - in particular with interleave or random controllers as parents (also very useful).
スループットコントローラは他のコントローラと組み合わせることで非常に複雑な挙動を生成できます。具体的にはインタリーブやランダムコントローラを親とした場合です(これらは大変便利です)。
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree. No
名前 ツリー上に表示されるコントローラの名前 省略可
Execution Style Whether the controller will run in percent executions or total executions mode. Yes
実行スタイル コントローラがパーセント実行か実行回数モードのどちらであるか 必須
Throughput A number. for percent execution mode, a number from 0-100 that indicates the percentage of times the controller will execute. "50" means the controller will execute during half the iterations throught the test plan. for total execution mode, the number indicates the total number of times the controller will execute. Yes
スループット 数字。パーセント実行モードでは数字は0-100の範囲で、コントローラを実行する確立(パーセント)を指定します。"50"の場合にはコントローラはテスト計画の繰り返しにおいて半分だけ実行されます。合計実行回数モードの場合には、数字はコントローラの実行される回数を意味します。 必須
Per User If checked, per user will cause the controller to calculate whether it should execute on a per user (per thread) basis. if unchecked, then the calculation will be global for all users. for example, if using total execution mode, and uncheck "per user", then the number given for throughput will be the total number of executions made. if "per user" is checked, then the total number of executions would be the number of users times the number given for throughput. No
ユーザ毎にカウントする チェックされている場合には、コントローラの実行回数はユーザ毎(スレッド毎)を元に計算されます。チェックされていない場合には、計算は全てのユーザに対してグローバルに行われます。例えば、合計実行回数モードにおいて、"ユーザ毎にカウントする"をチェックしていない場合には、スループットに指定された数値が合計実行回数となります。"ユーザ毎"がチェックされている場合には、合計実行回数はスループットに指定した値をユーザ数で掛けた値となります。
18.2.8 Runtime Controller
18.2.8 実行時間コントローラ
The Runtime Controller controls how long its children are allowed to run.
実行時間コントローラはその子供が動作を許可される時間を制御します。
Control Panel
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree, and used to name the transaction. Yes
名前 ツリー上に表示されるコントローラの名前と、トランザクションで使用する名前。 必須
Runtime (seconds) Desired runtime in seconds Yes
実行時間(秒) 実行時間を秒単位で指定。 必須
18.2.9 If Controller
18.2.9 Ifコントローラ
The If Controller allows the user to control whether the test elements below it (its children) are run or not.
Ifコントローラは配下(自身の子)のテスト要素を実行するか否かを制御します。
Prior to JMeter 2.3RC3, the condition was evaluated for every runnable element contained in the controller. This sometimes caused unexpected behaviour, so 2.3RC3 was changed to evaluate the condition only once on initial entry. However, the original behaviour is also useful, so versions of JMeter after 2.3RC4 have an additional option to select the original behaviour.
JMeter 2.3RC3より前のJMeterでは、コントローラに含まれる全ての実行可能な要素は毎回条件を判断して実行するかを判定していました。これは度々予期しない挙動を引き起こしました。そのため2.3RC3は最初の一度目でだけで判定を行うように変更されました。しかしながら、古い実装も便利なものですので、JMeter 2.3RC4以降では追加オプションによって古い挙動を選択できます。
Control Panel
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree. No
名前 ツリー上に表示されるコントローラの名前
Condition Javascript code that returns "true" or "false" Yes
条件 "true"か"false"を返却するJavascriptコード
Evaluate for all children Should condition be evaluated for all children? If not checked, then the condition is only evaluated on entry. Yes
全ての子を判定する 条件を全ての子要素に対して判定しますか?チェックしない場合には、条件を一つの要素に対してだけ判定します。 必須
Examples:
例:
* ${COUNT} < 10
* "${VAR}" == "abcd"
* ${JMeterThread.last_sample_ok} (check if last sample succeeded)
If there is an error interpreting the code, the condition is assumed to be false, and a message is logged in jmeter.log.
コードにエラーが存在する場合には、条件はfalseと判定され、jmeter.logにログが出力されます。
18.2.10 While Controller
18.2.10 Whileコントローラ
The While Controller runs its children until the condition is "false".
Whileコントローラは条件が"false"となるまでの間、子要素を実行し続けます。
Possible condition values:
設定可能な条件値:
* blank - exit loop when last sample in loop fails
* LAST - exit loop when last sample in loop fails. If the last sample just before the loop failed, don't enter loop.
* Otherwise - exit (or don't enter) the loop when the condition is equal to the string "false"
* blank - ループ中のサンプルが失敗した場合にループを終了します。
* LAST - ループ中のサンプルが失敗した場合にループを終了します。ループの最後のサンプルが失敗した場合にはループに再入させません。
* その他 - 条件が文字列"false"と一致する場合にループを終了します(又は再入しない)。
In contrast to the IfController, the condition is not evaluated as a JavaScript expression. The condition can be any variable or function that eventually evaluates to the string "false". This allows the use of JavaScript, BeanShell, properties or variables as needed.
Ifコントローラと比較して、条件はJavaスクリプトと評価されない違いがあります。条件は最終的に文字列"false"を返却するどのような変数や関数を使用できます。これはつまり、javaスクリプト、BeanShellスクリプト、プロパティ、変数を必要に応じて使用する事を実現します。
For example:
例:
* ${VAR} - where VAR is set to false by some other test element
* ${__javaScript(${C}==10,dummy)}
* ${__javaScript("${VAR2}"=="abcd",dummy)}
* ${_P(property)} - where property is set to "false" somewhere else
Control Panel
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree, and used to name the transaction. Yes
名前 ツリー上でコントローラの表示される名前と、トランザクションで使用される名前。 必須
Condition blank, LAST, or variable/function Yes
条件 blank、LAST、変数名/関数名のいずれか 必須
18.2.11 Switch Controller
18.2.11 Switchコントローラ
The Switch Controller acts like the Interleave Controller in that it runs one of the subordinate elements on each iteration, but rather than run them in sequence, the controller runs the element defined by the switch value.
Swtchコントローラはインタリーブコントローラと同じように振る舞います。それぞれの繰り返しの中で配下の要素の中の一つを実行させますが、順番によってではなく、実行対象で定義した値によって要素をコントローラが実行させます。
Note: In versions of JMeter after 2.3.1, the switch value can also be a name.
注意:JMeterバージョン2.3.1以降では実行対象は名前での指定も可能です。
If the switch value is out of range, it will run the zeroth element, which therefore acts as the default for the numeric case. It also runs the zeroth element if the value is the empty string.
実行対象が範囲(配下の要素の数)を越えている場合にはゼロ番目の要素として評価されるため、数字の場合のデフォルトとして振る舞います。空文字列であった場合も同様にゼロ番目の要素として評価されます。
If the value is non-numeric (and non-empty), then the Switch Controller looks for the element with the same name (case is significant). If none of the names match, then the element named "default" (case not significant) is selected. If there is no default, then no element is selected, and the controller will not run anything.
値が数字ではない(且つ空文字列ではない)場合には、Switchコントローラは同じ名前(大文字小文字の区別を行ないます)の要素を探します。同名のものが存在しない場合には、"default"という名前(大文字小文字の区別を行ないます)の要素が選択されます。defaultが存在しない場合には要素は何も選択されず、コントローラは何も実行しません。
Control Panel
Parameters
Attribute Description Required
Name Descriptive name for this controller that is shown in the tree, and used to name the transaction. Yes
名前 ツリー上に表示されるコントローラの名前と、トランザクションで使用される名前。
Switch Value The number (or name) of the subordinate element to be invoked. Elements are numbered from 0. Yes
実行対象 実行対象とする配下の要素の番号(又は名前)。配下の要素は0あkら番号付けられる。
18.2.12 ForEach Controller
18.2.12 ForEachコントローラ
A ForEach controller loops through the values of a set of related variables. When you add samplers (or controllers) to a ForEach controller, every sample sample (or controller) is executed one or more times, where during every loop the variable has a new value. The input should consist of several variables, each extended with an underscore and a number. Each such variable must have a value. So for example when the input variable has the name inputVar, the following variables should have been defined:
ForEachコントローラは関連する1セットの変数を通じてループします。ForEachコントローラにサンプラ(もしくはコントローラ)を追加する場合、全てのサンプル(訳注:sampleの重複)(もしくはコントローラ)は一度以上実行され、全てのループの中で変数はそれぞれ異なる値を使用します。そのようなそれぞれの変数は値を持っている必要があります。例として入力変数の名前を inputVar とし、以下の変数が定義されているものとします。
* inputVar_1 = wendy
* inputVar_2 = ch