JMeterの抂芁

この蚘事は、私が働いおいる䌚瀟のテスト郚門によっお䜜成されたした。

ハブでJMeterに぀いお曞くのは初めおではありたせんが、蚘事の焊点がかなり狭いか、理解しにくいです。 したがっお、この蚘事は初心者にずっお興味深いものです。



はじめに



どういうわけか私は新しいツヌル-JMeter-を習埗し始めたしたが、アクションのガむドずしお本栌的なガむドを芋぀けるこずができたせんでした。 埐々に、かなり有甚な蚘事やブログ、ナヌザヌ文曞を敎理しお、䜕かを理解し始めたした。 そしお、䜕かを始めたいず思っおいるのは私だけではないかもしれないず決めたした。 構築の原則ずツヌル自䜓のロゞックのいく぀かを習埗したす。 そのため、ここに開始方法に関する蚘事がありたす。

そのため、この蚘事では、次の3人のナヌザヌのためにスクリプトを䜜成する䟋を芋おいきたす。

1.ログむン;

2.アルバムに新しい写真を远加したす。

3.プロフィヌル写真を倉曎したす。

そのため、これは゜ヌシャルネットワヌクの通垞のビゞネスプロセスです。



そしお、これらの目的のために、そのような組み蟌みコンポヌネントが䜿甚されたす



蚘事は詳现だから倧きい。 結果は次のようになりたす。

c017f1f09f290a0fa142b4cb9edbc8b5.png



自動スクリプト蚘録



䞀番䞋の行は、ブラックボックスメ゜ッドを䜿甚しおテストするサむトのスクリプトを䜜成するずき、その操䜜のすべおの埮劙さず機胜がわからないずいうこずです。 そのため、たずえば、そのサむトは、私のスクリプトの最終的なベヌスになり、Symphony2パッケヌゞを䜿甚しお䜜成されたした。 そのため、ログむン/パスワヌドデヌタの送信は、/ログむンペヌゞのフォヌムから盎接ではなく、存圚しない/ login_checkペヌゞから行われたす。 そしお、これらすべおに察しお、ナヌザヌに察しお非衚瀺になっおいる別の空のフィヌルドが送信されたす。

HTTPプロキシサヌバヌは、このような萜ずし穎の怜出に圹立ちたすこれは、他のすべおの堎合ず同様に、むンラむン芁玠です。 プロキシサヌバヌの動䜜を゚ミュレヌトし、受信したリク゚ストず送信したリク゚ストをすべお蚘録したす。



準備䜜業



HTTP Proxy Serverはただテストツリヌに远加したせん。 受け取った「ステップ」をどこに曞き留めるかに぀いお話し合いたす。 埌で、ツリヌに芁玠を远加するず、結果を蚘録する堎所がいく぀かあるこずがわかりたす。 これらは、「コむル」 スレッド 、「ワヌクベンチ」ワヌクバンチ 、たたは「蚘録コントロヌラヌ」芁玠に盎接曞き蟌むこずができたす。 埌者の方法を䜿甚するこずをお勧めしたす。 たず、必芁に応じおログ党䜓を䞀床に無効ctrl + tにできたす。 第二に、テスト構造の远跡ず圢成が改善されたす。

远加および線集のためのすべおのアクションは、コンテキストメニュヌでマりスの右ボタンをクリックするこずで発生したす。 䜜成したアむテムは、単にドラッグアンドドロップできたす。

だから テスト蚈画->远加->スレッド->スレッドグルヌプ ; スレッドグルヌプ->远加->ロゞックコントロヌラヌ->レコヌディングコントロヌラヌ

すべおの芁玠に䞀床に明確な名前を付けるこずを匷くお勧めしたす。 私の堎合、これらはそれぞれ「Pictures」ず「Login」になりたす。

15bb271fb1ef8d13b8c0d94ba3319ef7.png



HTTPプロキシサヌバヌを䜿甚したスクリプトの䜜成



準備手順が完了したら、必芁な芁玠を「ワヌクベンチ」に远加したす ワヌクベンチ->远加->非テスト芁玠-> HTTPプロキシサヌバヌ

倚くの蚭定がありたすが、今のずころ興味があるのはポヌトのみです。 ポヌト8080がビゞヌの堎合、たずえば8089を蚭定できたす。このマシン8089を䜿甚しおいたす。 たた、Target Controllerフィヌルドのデフォルトでは「use recording controller」であるこずがわかりたす。 ぀たり ログはそこに蚘録されたす。

残りのフィヌルドには觊れたせんが、サむトに関するもう少しの情報を受け取ったら、いく぀かのフィヌルドが必芁になりたす。

df806a35fb74dc3aac7b46f4dfb7421e.png

ポヌトを蚭定したら、ブラりザの蚭定に移動したす。 私はIEを䜿甚しおいる。 ツヌル-むンタヌネットオプション-接続-ネットワヌク蚭定ボタン 。 「Use proxy server ...」ずいうdawsを配眮し、2番目のdawを削陀したす。 「詳现」を芋お、「䟋倖」に曞かれおいるこずを確認するこずをお勧めしたす。 私の実務では、テスト䞭にサむトが新しいドメむンに移動されたしたが、䟋倖になっおいたす。 仮想ナヌザヌのアクションがテストされたサむトに蚘録されず、Yandex、twitter、Facebookぞのあらゆる皮類のリンクが完党に蚘録される理由を理解するのに玄30分かかりたした。 䞀般に、サむトのドメむンが突然そこにある堎合は、削陀したす。

「アドレス」フィヌルドに「Localhost」ず曞き蟌み、JMeterからのポヌト「8089」を指定したす。 もちろん、匕甚笊なしで、すべお。

795fceb9b55e67df06cbb39b501e9d61.png

これで、すべおを録音する準備ができたした。 プロキシでJMeterに戻り、䞋郚で[スタヌト]ボタンをクリックしたす。 クリックするず、ブラりザのすべおのナヌザヌアクションが、䜜成した「ログむン」蚘録コントロヌラヌに蚘録され始めたす。 アクションをいく぀かのステップで蚘録したす。 スクリプトが倧きすぎお線集が難しい堎合がありたす。 したがっお、最初に実行しおからデバッグするのは、サむト䞊のナヌザヌの承認です。

そのため、[開始]をクリックしお、サヌバヌでの認蚌手順ただないかもしれたせんが、私は持っおいたすずサむトでの認蚌手順を実行したす。 JMeterに戻り、「停止」をクリックしたす。 録音コントロヌラヌを芋おみたしょうたくさんの子䟛がいたす。 これがサヌバヌに送信されたもので、サヌバヌが応答したした。 勉匷しお掃陀したす。

fc624c70b137e9f18e1c1106790f1ceb.png



スクリプトのデバッグ



スクリプトのデバッグずは、さたざたな.jpg、.png、およびサヌドパヌティのリ゜ヌスぞのリンクを削陀するこずです。 スクリプトにはこれらのサヌドパヌティリ゜ヌスの半分以䞊が含たれおいたす。これらはさたざたな゜ヌシャルネットワヌクやYandexマップずの接続です。 これらはすべお削陀できたす削陀を抌したす。 䞀般に、.jsもクリヌンアップできたす。 䞻なこずは、ナヌザヌの認蚌情報を䜓内で枡すリク゚ストを芋぀けるこずです。 さお、矎しさのために、ナヌザヌがログむンするペヌゞに導くリク゚ストを芋぀けおください。 したがっお、圌らは䞀緒に「ペヌゞに行った-ログむン」したナヌザヌの行動の束をモデル化したす。

幞い、必芁なク゚リを分離できたずしたす。 さお、たたは私たちはそれらを特定したように思われたす。 読みやすい名前を付けおください 遞択したかどうかを確認するには、スクリプトを実行する必芁がありたす。 私の堎合、スクリプトを実行するず、゚ラヌが発生しお実行されたす。 実際には、テストのためにサヌバヌにログむンする必芁がありたす。 これを行うには、HTTP Autorization Manager スレッドグルヌプ-远加-構成芁玠-HTTP Autorization Manager をツリヌの䞊郚に远加したす。 盎感的です。 リ゜ヌスのアドレスは、 必ず http//、ナヌザヌ名、パスワヌドで曞き留めたす。

5327c7af9f700f2bcfdcff6f0e4cc4a1.png

サヌバヌでの承認に承認マネヌゞャヌが必芁な堎合、Cookieはサむトでの承認䞭に必ず䜿甚されたす。 承認マネヌゞャヌの埌にCookieマネヌゞャヌを远加したす TestPlan-远加-構成芁玠-HTTP Cookieマネヌゞャヌ 。 ナヌザヌがログむンする必芁があるずいうこずになるず、おそらく垞にこの芁玠を远加する必芁がありたす。

スクリプトを開始しおチェックする前に、結果ツリヌの衚瀺芁玠 コむル-远加-リスナヌ-結果ツリヌの衚瀺 を远加したす。ここで、実行を確認できたす。 この芁玠は、垞に䞋郚に配眮するず䟿利です。 ああ、ブラりザの蚭定で「プロキシを䜿甚する」チェックボックスも削陀する必芁がありたす。ただ必芁ありたせん。

09d903bd3717d97ac545623830610536.png

だから、実行するこずができたす。 ctrl + rを開始したす

結果ツリヌの衚瀺では、次が衚瀺されたす。

023f9367cb24ffed7e5cca45b7f82831.png

幞運なようです。 そしお、ログむンしなくおも、少なくずもリク゚ストはサヌバヌに届きたした。 ナヌザヌが正垞にログむンしたこずを確認するには、ツリヌの回答を芋おください。 [ 応答デヌタ]をクリックしたす 。 サヌバヌの応答では、ナヌザヌ認蚌が成功したこずを瀺す情報を探しおいたす。 私の堎合、それはナヌザヌ名になりたす。 承認埌、ペヌゞに衚瀺されたす。

a7915066621c3127e152cdd72739ea2d.png

スクリプトはただきれいにする必芁があるかもしれたせん。 たずえば、HTTPヘッダヌマネヌゞャヌを削陀したした。 そしお、それらがなければ、すべおが正垞に動䜜したす。 各芁玠が必芁であるこずを確認するには、すぐに削陀する必芁はありたせん。この芁玠を無効にするだけで十分ですctrl + t 。

次に、このビゞネスに3人のナヌザヌを匕き付けたす。 これを行うには、たずク゚リのパラメヌタヌ化に関する小さなケヌススタディを実行したす。 特定の1人のナヌザヌをパラメヌタヌ化したす。



パラメヌタ化



ク゚リをパラメヌタヌ化するには、䞀番䞊にナヌザヌ定矩倉数を远加したす。 スレッド->構成コントロヌラヌ->ナヌザヌ定矩倉数 䞋郚に远加ボタンがありたす。 プッシュし、2぀の倉数で駆動したす。 ナヌザヌ名ずパスワヌドの2぀のパラメヌタヌのみが倉曎されたす。 それらに適切な名前を付けたすuserNameずpassword。 そしお、倀ずしお、珟圚のナヌザヌの特定の倀を入力したす。

64f29cba08c40a5eb434cd5592d333c0.png

それらを䜿甚するには、ログむンリク゚ストに移動し、特定の倀の代わりに$ {variable name}の圢匏で倉数名を曞き蟌みたす。 この䟋では、ログむン-$ {userName}、パスワヌド-$ {password}のValueフィヌルドに曞き蟌みたす。

3ce15268749a60ff2bf390df1e63e2ac.jpg

パラメヌタヌの受け枡しをデバッグするには、別の芁玠-Debug Samplerを远加したす。 スレッド->远加->サンプラヌ->サンプラヌのデバッグ 。 リク゚ストに応じおログむンしたす。 芁玠の蚭定では、JMeter倉数のみを残し、残りをfalseに蚭定したす。 これは、倉数のみをキャッチするためです。 そしお、ただ他にはありたせん。

060ae24c1bb7116dd9584958c9a51b9a.png

結果ツリヌの衚瀺で結果を確認したす。 倉数ずしお枡されたのは倀であり、ク゚リ党䜓が必芁なものを返したこずを確認する必芁がありたす䞊蚘を参照。

ab2dea0a6bf3bf094fda5db1c90dec99.png

これで、3人のナヌザヌにデヌタを転送できたす。 これを行うには、CSV Data Set Configを䜿甚したす。



CSVデヌタセットの構成



メモ垳で.csvファむルを䜜成するこずをお勧めしたす。 ナヌザヌの堎合、ファむルは「UserName; Password」ずいう圢匏の3行のセットである必芁がありたす。 私のファむルは以䞋のスクリヌンショットに瀺されおいたす

494aec49fe34799d4b84496c9e3a86d7.png

次に、CSV Data Set Config芁玠 Add-Config Elements-CSV Data Set Config をツリヌに远加したす。 コむルではなく、テスト蚈画のナヌザヌ倉数の䞋に远加したす。 ファむルのファむル名ずしお、ファむルぞのフルパスずその名前を指定する必芁がありたす。 以䞋に遞択した゚ンコヌディングを瀺したす。 すべおのデヌタが英語の堎合、フィヌルドは空癜のたたにできたす。 以䞋に、ファむルから読み取られる倉数を曞き蟌みたす。 私たちにずっおは、ナヌザヌ名ずパスワヌドになりたす。 ファむルで䜿甚されるため、区切り文字ずしおセミコロンを指定する必芁がありたす。 以䞋では、少し英語を知っおいる人にずっお、論理倉数の名前を翻蚳するこずは難しくありたせん。 コむルを停止するだけでなく、最埌に到達したずきにファむルの繰り返しをfalseに蚭定する必芁がありたす。

0e6afc60ec56cda8c1b2ec293e1dbf38.png

次に、これらの倉数をナヌザヌ定矩倉数から削陀したす。 空のたたになるずいう事実は怖くない。 その埌、コむル自䜓で、スレッドの数  Number of Threrads が3に蚭定されたす。

これで、スクリプトを実行し、デバッグサンプラヌず結果ツリヌの衚瀺で結果を確認できたす。 デヌタがサヌバヌから返されたかどうか、ナヌザヌの名前が含たれおいるかどうかを忘れずに確認しおください。

c48389e089136baa81c6e0b43bc9d969.jpg



アルバムに写真を远加したす



ナヌザヌがログむンするこずを孊んだので、スクリプトの次の郚分に進みたしょう。 サむトの特定のアルバムに写真をアップロヌドするこずを教えたす。 これを行うには、録音コントロヌラヌをコむルに远加し、「Photos」ずいう名前を付けたす。

結果のスクリプトを短瞮するために、サむトのナヌザヌを事前に承認し、写真のアップロヌドを開始するペヌゞに移動したす。 その埌、ブラりザヌ蚭定でプロキシを再床オンにし、ワヌクベンチでProxy Server芁玠を䜿甚したす 別の蚘録コントロヌラヌを指定したす 。 たた、 陀倖するURLパタヌンでは、䞍芁な拡匵子を「*。\。Xxx」の圢匏で指定したす。

d7bc20766cd922782bef276dc4c859da.png

開始、フォトアルバムに蚘入、終了。 スクリプトのクリヌニングを開始したす。 同様に、矎容のために、「アルバムに行った-写真を远加した」ずいう䞀連のリク゚ストのみを残すこずができたす。 次のようになりたした。

872415c5eb1f61833944faad3ab94d18.png

実際、「アルバムに行った」ずいうリク゚ストは手動で蚘録されたした。 倧したこずではありたせん。これはペヌゞアドレスを䜿甚したGETリク゚ストです。

ファむルをサヌバヌに送信するリク゚ストの本文に泚意しおください。 䟡倀があるのは、パスずファむル名だけです。 ここでは、各ナヌザヌが自分の写真をアップロヌドできるように、それらをパラメヌタヌ化したす。 ファむルぞのパスから始めたしょう。 テストのために、それは興味がありたせん。 すべおの写真がフォルダにある可胜性がありたす。 しかし、テストでは䜕床も発生する可胜性がありたす。 したがっお、適切な圢匏の芏則に埓っお、倉数に曞き蟌みたす。 ナヌザヌ定矩倉数に戻り、 filePath倉数に写真のあるフォルダヌぞのパスの倀を远加したす。たずえば、「** D\ jakarta-jmeter-2.5.1 \ images \ **」です。 最埌にスラッシュが付いおいたすが、埌で明確になりたす。

い぀ものように、最初に1぀のファむルでスクリプトをテストしたす。 そのため、別の倉数fileNameを䜜成したす。その倀は、「 img.jpg 」などの特定のファむル名になりたす。

23b590db04c057d0d48817886a1107a4.png

リク゚スト本文に戻りたす。 [リク゚ストでファむルを送信]セクションで、パスを次のように蚘述したす$ {filePath} $ {fileName}。 指定した倀を倉数ナヌザヌ定矩倉数からの倀に代入するず、正しいパスが取埗されおいるこずを簡単に確認できたす。 リク゚ストが送信するパラメヌタヌを芋おみたしょう。 ファむル名もありたす。 代わりに$ {fileName}を入力しおください。

31d4483e50685da1fa518f82c134d51e.png

この郚分のナヌザヌシミュレヌションが終了したので、新しいデバッグサンプラヌを远加したす。 さらに䞀歩進んで考えおみたしょう。コむルを氞久に回転させるず蚭定するたで、各ナヌザヌは䜕床も䜕床もログむンしたす。 これを回避するには、Only Onceロゞック゚レメント Thread-> Add-> Logic Controllers-> Only Once Controller をコむルに远加したす。 サむト䞊のナヌザヌの承認を担圓するレコヌディングコントロヌラヌの䞊の適切な堎所に配眮し、子ずしおコントロヌラヌをドラッグしたす。

c762b94cfdb723ff46aa620a622cc7cd.png

ブラりザでプロキシを無効にしたす。 スクリプトを実行したす。 すべおが正しく完了するず、遞択したアルバムに新しい写真が远加されたす。 䜕か問題がある堎合は、結果の衚瀺ツリヌのサンプラヌのデバッグを参照しおください。



パラメヌタ化



これで、ナヌザヌに異なる写真を远加させるこずができたす。 これを行うには、写真の名前のみを含むcsvファむルを䜜成したす。

Img.jpg

Img1.jpg

Img2.jpg

...

CSVデヌタセット構成を䜜成し、別のCSVデヌタセット構成の䞋にドラッグしお、このファむルぞのパスを指定したす。 fileNameを倉数 variable Names ずしお指定し、 User Defined Variablesから削陀したす 。 セパレヌタのフィヌルドは空癜のたたにしたす。 今回は、ファむルが最埌に到達したら EOFでリサむクル ファむルを繰り返し、Trueのたたにしお、最埌に到達したらコむルを停止したす  EOFでスレッドを停止 -Falseにしたす。 テストの矎しいロゞックのために、写真を別のフォルダヌ「D\ jakarta-jmeter-2.5.1 \ images \ Photo \」に転送し、それに応じおfilePath倉数の倀をfilePath_Photoに倉曎したす。 倉数が䜿甚される堎所でこれを行いたす。

テストを実行しおください 次に、アルバムに3枚の写真が远加されおいるかどうかを確認したすはい、すべおのナヌザヌがアルバムに写真を远加するための十分な暩限を持っおいる必芁がありたす。 すべおが問題なければ、続行したす。 そうでない堎合は、Debug Samplerおよびサヌバヌの応答をお読みください。

813d89e44911fc7e1ac02f404e708d01.png



アバタヌを倉曎する



実際、これは前の段萜ず倉わりたせん。 同様に、サヌバヌに写真をアップロヌドする必芁がありたす。 したがっお、私たちもすべおを行いたす

  1. 別の録音コントロヌラヌを䜜成する
  2. プロキシを構成する
  3. サむトでアクションを実行するスクリプトを䜜成する
  4. スクリプトをきれいにする
  5. 1぀のアバタヌのパラメヌタヌ化
  6. デバッグ
  7. 倚くのアバタヌのパラメヌタヌ化


アバタヌ名ず同じcsvファむルを䜿甚したしたが、写真を別のフォルダヌにアップロヌドし、そのための新しい倉数filePath_Avatarsを䜜成したした。

すべおがうたくいけば、それは良いこずです。 そうでない堎合は、Debug Samplerをご芧ください。

スクリプトを生きおいる人のように芋せるために、遅延を远加する必芁がありたす。 たずえば、サヌバヌに写真をアップロヌドした埌、ナヌザヌが画像がサヌバヌにアップロヌドされるのを埅っおいるかのように、䞀定のタむマヌを3秒間3000ms眮くこずができたす。 たた、ガりスランダムタむマヌのアバタヌを2秒から6秒に倉曎するには、ナヌザヌはアバタヌを怜玢しお遞択したす。 たた、各HTTPリク゚ストの信頌性を高めるために、[HTMLファむルからすべおの埋め蟌みリ゜ヌスを取埗]ボックスをオンにするこずができたす。぀たり、通垞のブラりザヌず同様に、ペヌゞから可胜なすべおが読み蟌たれたす。

したがっお、すべおが正垞に機胜し、すべおが正垞であるずしたす。 それだけです タスクは完党に完了したした。 これで、䞀晩䞭サむトを読み蟌むこずができたす。 Threadに戻っお、 foreverチェックボックスを蚭定したしょう。 これは、「スレッドの停止」むベントが発生するたでスクリプトが実行されるこずを意味したす。 CSV Data Set Configでは、このようなむベントの可胜性をFalseに蚭定したす。 これは、テスタヌが手で停止するたでテストが実行されるこずを意味したすメニュヌ実行->停止 。 最終画面は、蚘事の冒頭に配眮されおいたす。

このテストは、いく぀かの゜ヌシャルメディアのありふれたビゞネスプロセスをシミュレヌトしたす。ナヌザヌは昚晩のパヌティヌからオンラむンに行き、アルバムに写真をアップロヌドしたした。 このようなプロセスを氞遠に続けお、写真をアップロヌドしおアバタヌを倉曎する3人のナヌザヌを獲埗したした。 プロセスは、他のさたざたな芁玠を远加するこずで倉曎できたす。 たずえば、Only Onceを蚭定するこずで1枚の写真のみをアップロヌドできたすが、アバタヌを無限に倉曎できたす。 最倧1000人のナヌザヌでデヌタベヌスを補充する堎合は、サヌバヌずオフィスのロヌカルマシンからスクリプトを盎接実行したす。これは、アプリケヌションサヌバヌに非垞に倧きな負荷がかかりたす。

次の蚘事では、おそらく怜玢テストず正芏衚珟、たたは収集されたデヌタの評䟡ず解釈に焊点を圓おたす。

経隓の亀換を喜んでいたしたす。



All Articles