diff --git a/loadtest/tinode.beam b/loadtest/tinode.beam index 3c57efbb..abb78eb8 100644 Binary files a/loadtest/tinode.beam and b/loadtest/tinode.beam differ diff --git a/loadtest/tinode.erl b/loadtest/tinode.erl index 91aedc81..52f8d535 100644 --- a/loadtest/tinode.erl +++ b/loadtest/tinode.erl @@ -5,7 +5,7 @@ %% directory. -module(tinode). --export([rand_user_secret/1, shuffle/1]). +-export([rand_user_secret/1, shuffle/1, cache_token/2, read_token/1]). %% Produces a secret for use in basic login. rand_user_secret({Pid, DynData}) -> @@ -27,3 +27,19 @@ get_rand_secret() -> shuffle(L) -> RandomList=[{rand:uniform(), X} || X <- L], [X || {_,X} <- lists:sort(RandomList)]. + +%% Reads previously cached token for the specified user. +read_token(Uid) -> + {ok, LogDir} = application:get_env(tsung_controller, log_dir_real), + case file:read_file(filename:join(LogDir, Uid)) of + {ok, Data} -> string:trim(Data); + {error, _} -> "" + end. + +%% Saves auth token for the specified user in the log directory. +cache_token(Uid, Token) -> + {ok, LogDir} = application:get_env(tsung_controller, log_dir_real), + {ok, File} = file:open(filename:join(LogDir, Uid), [write]), + file:write(File, Token), + file:close(File), + ok. diff --git a/loadtest/tsung.xml b/loadtest/tsung.xml index fb3d23f7..8a163d5f 100644 --- a/loadtest/tsung.xml +++ b/loadtest/tsung.xml @@ -11,7 +11,7 @@ - + @@ -31,9 +31,49 @@ {"hi":{"id":"%%_baseid%%01","ver":"0.15","ua":"Tsung-Loadtest/1.0; tsung/1.7.0"}} - - {"login":{"id":"%%_baseid%%02","scheme":"basic","secret":"%%tinode:rand_user_secret%%"}} - + + + + + + + + + + + + + + {"ctrl":.*"code":200.*} + {"login":{"id":"%%_baseid%%02","scheme":"token","secret":"%%_token%%"}} + + + + + + + {"ctrl":.*"code":200.*} + + {"login":{"id":"%%_baseid%%02","scheme":"basic","secret":"%%_secret%%"}} + + + + + + + {"sub":{"id":"%%_baseid%%03","topic":"me","get":{"what":"desc"}}}