2017-07-14 7 views
0

JMeterで作業していて、SOAPリクエストをサーバーに送信しようとしていて、以下のエラーメッセージが表示されます。"application/soap + msbin1"のJMeterエンコーディングの問題

エラーメッセージ: - コンテンツ・タイプ「アプリケーション/石鹸+ msbin1は」期待されるタイプ「アプリケーション/ xmlのではなかったため、メッセージを処理できません。 charset = utf-8 'となります。

XMLを 'application/soap + msbin1'形式にエンコードする必要があります。

答えて

0

パーティーに遅れていましたが、同様の問題が発生しました。埋め込みバイナリXML(xop:Include cid = "...")を使用するSOAPリクエスト用のテンプレートを用意していました。株式HTTPリクエストでそれを行う方法。

答え:あなたは簡単な方法ではできません。この問題を解決するために、私はJMeterのカスタマイズを終了しました(HTTPRawRequestも見ましたが、httpsをサポートしていないようで、それを使用するには多くのテストスクリプトを書き直す必要があります)。 HTTPリクエストはジョブの99%を実行するので、バイナリデータをサポートする最も速い方法は、バイナリデータを扱うようにソースコードを変更することです。

主な問題は2つです。JMeterの関数インタフェースは、byte []ではなくStringを返すことを目的として設計されています。 __FileToString()(これは私が使用する外部バイナリファイルを読み込むために使用しました)は、ファイルの内容をエンコードします。第2に、HTTPリクエストサンプラーとHTTPHC4Impl自体(「アップロードファイル」ビットを除く)は、HTTP要求の一部をコードにコード化してからワイヤーに送信します。

Function、AbstractFunction、CompoundVariableの変更を暗黙的に変更し、(HTTPHC4Implの変更によって)デコードできるようにバイナリデータをエンコードする新しい関数クラスFileToStringBinaryを作成します。

時間があれば、私はアイデアとソースを投稿する場所を見つけるでしょう(HTTPHC4Implへの私のアップデートは私がテストする必要のある特定のリクエストを処理するために限られているのでJMeterに提出することはできません。一般的なケースを処理する時間や傾向はありませんが、それでも問題を解決するにはヘルプが必要な場合は、行を削除してください。