|
@ -1,5 +1,33 @@ |
|
|
-module(ibrowse_load_test). |
|
|
-module(ibrowse_load_test). |
|
|
-compile(export_all). |
|
|
|
|
|
|
|
|
%%-compile(export_all). |
|
|
|
|
|
-export([ |
|
|
|
|
|
random_seed/0, |
|
|
|
|
|
start/3, |
|
|
|
|
|
query_state/0, |
|
|
|
|
|
shutdown/0, |
|
|
|
|
|
start_1/3, |
|
|
|
|
|
calculate_timings/0, |
|
|
|
|
|
get_mmv/2, |
|
|
|
|
|
spawn_workers/2, |
|
|
|
|
|
spawn_workers/4, |
|
|
|
|
|
wait_for_workers/1, |
|
|
|
|
|
worker_loop/2, |
|
|
|
|
|
update_unknown_counter/2 |
|
|
|
|
|
]). |
|
|
|
|
|
|
|
|
|
|
|
-ifdef(new_rand). |
|
|
|
|
|
|
|
|
|
|
|
-define(RAND, rand). |
|
|
|
|
|
random_seed() -> |
|
|
|
|
|
ok. |
|
|
|
|
|
|
|
|
|
|
|
-else. |
|
|
|
|
|
|
|
|
|
|
|
-define(RAND, random). |
|
|
|
|
|
random_seed() -> |
|
|
|
|
|
random:seed(os:timestamp()). |
|
|
|
|
|
|
|
|
|
|
|
-endif. |
|
|
|
|
|
|
|
|
-define(ibrowse_load_test_counters, ibrowse_load_test_counters). |
|
|
-define(ibrowse_load_test_counters, ibrowse_load_test_counters). |
|
|
|
|
|
|
|
@ -95,7 +123,7 @@ spawn_workers(0, _Num_requests, _Parent, Acc) -> |
|
|
lists:reverse(Acc); |
|
|
lists:reverse(Acc); |
|
|
spawn_workers(Num_workers, Num_requests, Parent, Acc) -> |
|
|
spawn_workers(Num_workers, Num_requests, Parent, Acc) -> |
|
|
Pid_ref = spawn_monitor(fun() -> |
|
|
Pid_ref = spawn_monitor(fun() -> |
|
|
random:seed(os:timestamp()), |
|
|
|
|
|
|
|
|
random_seed(), |
|
|
case catch worker_loop(Parent, Num_requests) of |
|
|
case catch worker_loop(Parent, Num_requests) of |
|
|
{'EXIT', Rsn} -> |
|
|
{'EXIT', Rsn} -> |
|
|
io:format("Worker crashed with reason: ~p~n", [Rsn]); |
|
|
io:format("Worker crashed with reason: ~p~n", [Rsn]); |
|
@ -135,7 +163,7 @@ wait_for_workers([{Pid, Pid_ref} | T] = Pids) -> |
|
|
worker_loop(Parent, 0) -> |
|
|
worker_loop(Parent, 0) -> |
|
|
Parent ! {done, self()}; |
|
|
Parent ! {done, self()}; |
|
|
worker_loop(Parent, N) -> |
|
|
worker_loop(Parent, N) -> |
|
|
Delay = random:uniform(100), |
|
|
|
|
|
|
|
|
Delay = ?RAND:uniform(100), |
|
|
Url = case Delay rem 10 of |
|
|
Url = case Delay rem 10 of |
|
|
%% Change 10 to some number between 0-9 depending on how |
|
|
%% Change 10 to some number between 0-9 depending on how |
|
|
%% much chaos you want to introduce into the server |
|
|
%% much chaos you want to introduce into the server |
|
|