2017-01-25 85 views
0

RESTful APIを使用してサービスをテストすると、メソッドはバイナリ・データでPOSTリクエストを受け取ります。 私はテストのためにJMeterを使用します。しかし、私はこのツールでこのような要求をすることに苦労しています。JMETERを使用してRESTfulなAPIにバイナリ・ボディでPOSTリクエストを送信

私はバイナリデータを作成し、ボディデータで、私はそれが変数から生のバイトを読んで作り、送信するために${bytes}を入れてHTTPリクエスト、

import java.util.Base64; 
import org.apache.commons.lang.StringEscapeUtils; 
import org.apache.commons.codec.binary.Base64; 

String base64Str="Some string"; 
//Encode the string 
byte[] bytes = Base64.encodeBase64(base64Str.getBytes()); 
vars.putObject("bytes", bytes); 

次に変数にそれを置くためにBeanShellのサンプラーを使用しますそれはPOSTリクエストで行われます。しかし、 "java.lang.ClassCastException:[Bはjava.lang.Stringにキャストできません"という例外が出ます。つまり、Bodyデータでは、指定された変数bytesがstringにキャストされます。 かなり似た質問はSending HTTP requests with binary body using JMeterですが、コメントに文字列キャスティングについて同じ結論がありました。 リクエストを含むファイルを送信するとできますか?

プラグインのHTTP Rawリクエストがありますが、具体的なAPIメソッドにリクエストを送信する方法が見つかりません。プラグインにはポート用のフィールドしかありません(ポートの直後にメソッドパスを書き込むかもしれません)。バイトを渡す方法。

答えて

1

私は、HTTPリクエストを使用してバイナリのボディデータでPOST要求を行うことができました。それを行うために、私は "要求とのファイルを送る"へのエントリを追加し、(パラメータ名とMIMEタイプなしで)ファイルパスフィールドのみを埋めました。 JMeterは指定されたファイルを読み込み、この場合、POST要求の本体のようにバイトを送信します。

答えがここに https://qnalist.com/questions/698175/does-jmeter-support-sending-arbitrary-binary-data-in-the-body-of-a-post を発見し、手動http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request

につながりました。
関連する問題