「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Apache Jmeter]] * 目次 [#f9ae8065] #contents *概要 [#sa0e9752] **HTTPプロトコルの場合 [#e667fa55] ***テキスト・フォーマット [#dd1455d3] [[XML]]、[[JSON]]などのテキスト・フォーマットの場合、~ [[コチラ>JmeterによるWebアプリの負荷テスト]]と同じ方法で負荷テストが可能。 ***バイナリ・フォーマット [#xf26828e] -HTTP内部にbase64等のバイナリ・フォーマットが存在する場合、~ [[コチラ>JmeterによるWebアプリの負荷テスト]]の手順と異なり、~ スクリプト修正は不可能(電文再送で再現可能な負荷に限りテスト可能)。 [[コチラ>JmeterによるWebアプリの負荷テスト]]の手順と異なり、スクリプト修正は不可能~ (電文再送で再現可能な負荷に限りテスト可能)。 -[[生バイナリ電文の場合は更に考慮が必要。>#ub57b838]] **その他のプロトコルの場合 [#qa592627] ***[[サンプラー>Jmeter用語#h803adc2]] [#u86f874c] 適切な[[プロトコル系のサンプラー>Jmeter用語#h803adc2]]を使用して~ 負荷テストを実施(ワークロードの記録はできない) -FTP -LDAP -JDBC -MongoDB -SMTP -POP3(S)/IMAP(S) -JMS(Java Message Service) -OSコマンド ***[[テンプレート>Jmeter用語#m630befd]] [#r40c292d] [[テンプレート>Jmeter用語#m630befd]]を使用してテスト計画を作成すると良い。 *生バイナリ電文対応 [#ub57b838] **Jmeter [#sb2852d2] -以下の問題が発生する。 --JMeter proxy and java serialization in HTTP/POST? - Stack Overflow~ https://stackoverflow.com/questions/2110041/jmeter-proxy-and-java-serialization-in-http-post --Apache JMeter - History of Previous Changes~ http://jmeter.apache.org/changes_history.html#Improvements >Bug 44808, Bug 39641 - Proxy support for binary requests -bin/jmeter.propertiesに、以下の設定を行う。 proxy.binary.types=application/x-amf,application/x-java-serialized-object,application/octet-stream -コードは以下のように修正する(VBでWebRequestを使用する際の例)。 ' HttpWebRequest作成 request = DirectCast(WebRequest.Create(server), HttpWebRequest) request.Proxy = New WebProxy("127.0.0.1", 8888) request.ContentType = "application/octet-stream" -生バイナリ電文でも、キャプチャ・リプレイが可能になる。~ ※ 以下のようにバイナリのボディがファイルに保存されるようになる。 #ref(binaries.png,left,nowrap,バイナリ電文ファイル) **[[Fiddler>電文を確認する方法(パケット・キャプチャ)#w11d3ad2]] and [[Test Studio]] [#s1c6f170] [[Fiddler>電文を確認する方法(パケット・キャプチャ)#w11d3ad2]]を使用すれば、キャプチャ電文をそのままリプレイできる。 -しかし、*.sazファイルのログを --シーケンシャル実行したり --多重度を上げて実行したり >できない。 -[[Test Studio]]を使用すればできるようにも見えたが、~ ログをシーケンシャル実行する機能テストは可能だったが、~ 多重度を上げるような負荷テストができなかった。 **pcap再生ツール [#a78fad5c] TCP/IPの電文再送でテスト可能ならpcap再生ツールが使える。~ (ただし、一通り調べたところ、多重実行できるまでのツール発見できなかった) ***Bit-Twist [#c80fe09b] 元々はUnix系OS向けのツールだが、Windows版のバイナリもある。 -Bit-Twist: Libpcap-based Ethernet packet generator~ http://bittwist.sourceforge.net/index.html -コマンドは2種類あり、 --bittwiste.exe~ PCAPファイルを編集するコマンドでパケットに含まれるIPアドレスやポート番号を編集できる。 --bittwist.exe~ PCAPファイルを送信するコマンドでパケットの送信速度等を設定できる。 -Cygwin1.dll~ Windows版ではCygwin1.dllが必要 --Bit-Twistサイトからダウンロードできる~ http://bittwist.sourceforge.net/index.html --Windows 8.1以降では新しいバージョンのCygwin1.dllが必要~ https://sourceforge.net/projects/gns-3/files/Dynamips/0.2.12/ >dynamips-0.2.12-x86-cygwin.zipに同梱されるCygwin1.dllを使用する。 ***PReplay [#ebc33e6b] 非常に単純なツール。また、2パケット間の時間差を保持する。 -PReplay – A pcap Network Traffic Replay Tool for Windows~ https://www.darknet.org.uk/2007/03/preplay-a-pcap-network-traffic-replay-tool-for-windows/ --https://www.darknet.org.uk/content/files/preplay.zip -評価~ 使えるが、ポート番号が同じになるので多重実行ができない。~ そもそも多重起動に対応していなそう(→ 下記設定でファイルを複数設定する仕様)。 --設定~ 追跡 -> TCP/IPで全選択した後にエクスポートした「selected.pcap」を指定。~ ※ ここに、1, 2, 3 ... と指定して行くと、シーケンシャルではなく多重実行に見える。 [SendingDetails] SendingFilePath=C:\ GatewayOldMac=00-0F-A3-35-C4-15 GatewayNewMac=00-0D-56-69-14-6D ClientOldMac=00-02-44-8E-98-7B ClientNewMac=00-15-F2-33-6A-D5 GatewayOldIP=192.168.1.1 GatewayNewIP=192.168.8.3 ClientOldIP=192.168.1.2 ClientNewIP=192.168.8.8 [SendingFileName] 1=PReplay\\selected.pcap ;1=pcap1.cap ;2=pcap2.cap --実行~ PReplayでpcapファイルを再生する。 #ref(cmd.png,left,nowrap,PReplayでpcap再生,75%) --結果~ 実行したパケットをキャプチャして実際に実行できたかを確認する。 #ref(wire.png,left,nowrap,PReplayでのpcap再生結果) --bat化~ bat化する場合、Echoコマンドで使用するNICの番号を指定可能。 echo 3 | PacketSendingUtility.exe ***tcpreplay [#d25f6eaf] Windows用のサポートやバイナリがない。 -tcpreplay man page~ http://otsuka752.github.io/wiki/tcpreplay-man.html >tcpreplay の基本的な使い方は、~ -指定されたファイル群を キャプチャされた時と同じ速度で再送信したり、 -ハードウェアが許す限りの速度の範囲内であれば、指定したデータ速度で再送信する。 -Download and Installation > Special Instructions for Windows~ http://tcpreplay.appneta.com/wiki/installation.html#special-instructions-for-windows >実験的なベータ版の品質です。(beta quality if you will.) ***Ostinato [#r15e4106] 昔はフリーだったのかもしれないが、今は有償化されている。 -Wiresharkでキャプチャしたパケットを編集し送信 - Ostinato~ http://troushoo.blog.fc2.com/blog-entry-93.html -Ostinato Network Traffic Generator~ https://ostinato.org ***XenaManager-2G [#e1b2f7eb] UIが複雑すぎるとの、Replay Fileメニュー・アイテムをEnabeにする方法が不明で利用を断念。 -XenaManager-2G User Manual~ https://xenanetworks.com/xenamanager-2g-user-manual/ >PCAPファイルのリプレイ方法はAdvanced Featuresの~ Reply of PCAP Fileのリンク先に説明がある。 -Xena L2-3 SW Downloads~ https://xenanetworks.com/l23-downloadsw/ >ツールのダウンロードにはユーザ登録が必要であるもよう。 ***参考 [#e44d68f6] -Is there a Windows tool for capture and playback of modified UDP packets? - Stack Overflow~ https://stackoverflow.com/questions/360889/is-there-a-windows-tool-for-capture-and-playback-of-modified-udp-packets ---- Tags: [[:テスト]], [[:ツール類]]