を使用することもできますTsung
が、これは私が行うことです。適切HTTP Client
な likeを使用するcurl
かibrowse
、別のマシンから実行する、大量にスレッド化されたテスターを作成します。そして、私が望むものに応じてテストします。
編集
ここで、erlang ライブラリに ibrowse ライブラリを配置し、再コンパイルして、コード パスにその ebin を含めます。
%% Ibrowse が確実に開始されるようにするには
ensure_ibrowse()->
case whereis(ibrowse) の
未定義 -> ibrowse:start();
is_pid(Any)-> ok の場合
終わり。
%% get リクエストを行うには
do_get(リンク)->
ibrowse:send_req(Link,[],get) を試す
{OK,_,_,結果} ->
%% 結果は JSON になる可能性があります。
%% mochijson2:decode(結果)
その他 -> {エラー,その他}
キャッチ
E1:E2 -> {例外,{E1,E2}}
終わり。
%% 応答をファイルに保存するには
save_to_file(リンク)->
ibrowse:send_req(Link,[],get,[],[{save_response_to_file,true}]) を試す
{ok,_,_,{file,FilePath}} ->
%% ファイルに対して何でもします。
%% ------------------------------------------------ -------
%% like {ok,FileHandle} = file:open(FilePath,[read])
%% ------------------------------------------------ -----
%% OR {ok,Contents} = file:read_file(ファイルパス)
%% ------------------------------------------------ -------
%% または、応答が .zip ファイルの場合
%% {ok,FileList} = zip:unzip(ファイルパス),
%% [begin process_file_contents(element(2,file:read_file(F))) 終了 || F <- ファイルリスト]
%% ------------------------------------------------ --------------------------------
その他 -> {エラー,その他}
キャッチ
E1:E2 -> {例外,{E1,E2}}
終わり。
%% 投稿するには
%% 通常、mochijson を使用して erlang 用語をエンコードする場合
%% を JSON に変換すると、次のようになります::
%% JSON = lists:flatten(mochijson:encode({struct,[Term]}))
投稿(リンク、JSON) ->
ibrowse:send_req(Link,[],post,JSON,[]) を試す
{_,_,_,結果} ->
mochijson2:decode(Result) を試す
{struct,[{<<"key1">>,<<"value1">>},...]} ->
%% ここに進む
JSONOther -> {エラー,JSONOther}
キャッチ
R:R2 -> {例外,{R:R2}}
終わり;
Any -> erlang:throw({write_failed,Link,Any})
キャッチ
E1:E2 -> {例外,{E1,E2}}
終わり。
%% put リクエストを行うには
%% Post と同じですが、atom 'post' を 'put' に変更するだけです
%% リクエストにヘッダーを追加するには
投稿(リンク、JSON)->
ヘッダー = [{"Content-Type","application/json"}],
{_,_,_,
Result} の ibrowse:send_req(Link,Headers,post,JSON,[]) を試す->
mochijson2:decode(Result) を試す
{struct,[{<<"key1">>,<<"value1">>},...]} ->
%% ここに進む
JSONOther -> {エラー,JSONOther}
キャッチ
R:R2 -> {例外,{R:R2}}
終わり;
Any -> erlang:throw({write_failed,Link,Any})
キャッチ
E1:E2 -> {例外,{E1,E2}}
終わり。
コード パスに ibrowse をインストールできない場合はお知らせください