1

JSON投稿データを受け入れる残りのWebサービスがありますが、API URLをリクエストするには、渡す必要がありaccess_tokenます。
したがって、投稿データは JSON データでありaccess_token、クエリ文字列として渡されます。

  • 問題:

    私の調査によると、JSON投稿データを持つことができ、JMeterのHTTP-URL-REWRITINGからのクエリ文字列も受け入れるリクエストを送信する方法が見つかりませんでした。

  • 実際のリクエスト:

    POST http://<domain>/webapp/service/document/save    
    POST data: { node = '1'}token_XXXXXX
    [no cookies]    
    Request Headers: Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 980 Host: localhost User-Agent: Apache-HttpClient/4.2.3 (java 1.5)
    

以下は、予想される要求データです。

  • 予想されるリクエスト:

    POST http://<domain>/webapp/service/document/save?access_token=token_XXXXXX    
    POST data: { node = '1'}   
    [no cookies]  
    Request Headers: Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 980 Host: localhost User-Agent: Apache-HttpClient/4.2.3 (java 1.5)
    

JMeterでどのように構成すればよいですか?

4

2 に答える 2

0

これの解決策を見つけました。

Header Manager を使用する代わりに、BeanShell プリプロセッサを使用しました。ここでは、Beanshell プリプロセッサで利用可能な aeguments から引数を削除し、BeanShell Preprocessor で利用可能な setPath() メソッドを使用してリクエストのパスに QueryString を追加しました。

Arguments arguments = sampler.getArguments();
String access_token = sampler.getArguments().getArgumentsAsMap().get("access_token");
arguments.removeArgument("access_token");
String path = sampler.getUrl() + "?access_token=" + access_token;
sampler.setPath(path);

このコードは私の問題を解決しました。代替は HeaderManager です。@PMD UBIK-INGENIERIEによってすでに回答済み

于 2013-07-25T14:57:09.537 に答える