Parsing 尝试读取erlang中的csv文件时使用tsung禁用badarg

Parsing 尝试读取erlang中的csv文件时使用tsung禁用badarg,parsing,csv,erlang,load-testing,tsung,Parsing,Csv,Erlang,Load Testing,Tsung,我正在使用加载测试我的websocket服务器。我是新来的tsung和erlang 我有一个导出到.csv文件的用户和密钥列表。为了让它运行,我将csv文件缩减为: 1;2 文件末尾没有空行 这是我的tsungconfig的一个片段(否则工作正常): 以下是erlang错误堆栈: ** State machine <0.90.0> terminating ** Last message in was {timeout,#Ref<0.0.0.414>,end_think

我正在使用加载测试我的websocket服务器。我是新来的
tsung
erlang

我有一个导出到.csv文件的用户和密钥列表。为了让它运行,我将csv文件缩减为:

1;2
文件末尾没有空行

这是我的
tsung
config的一个片段(否则工作正常):

以下是erlang错误堆栈:

** State machine <0.90.0> terminating 
** Last message in was {timeout,#Ref<0.0.0.414>,end_thinktime}
** When State == think
**      Data  == {state_rcv,none,
                     {{0,0,0,0},0},
                     undefined,0,10000,"192.168.59.103",443,ts_tcp,
                     {proto_opts,negociate,"/http-bind/","/chat","binary",10,
                         600000,infinity,32768,32768,undefined,undefined,[]},
                     true,1,undefined,true,undefined,
                     {1431,872144,388666},
                     6,6,false,undefined,0,[],<<>>,
                     {websocket_session,undefined,undefined},
                     0,2,524288,524288,
                     [{tsung_userid,2}],
                     ts_websocket,[],undefined,none}
** Reason for termination = 
** {{badarg,[{dict,fetch,
                   [default,
                    {dict,1,16,16,8,80,48,
                          {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
                          {{[],[],[],
                            [[users|{file,{<<"1;2">>},1,-1}]],
                            [],[],[],[],[],[],[],[],[],[],[],[]}}}],
                   [{file,"dict.erl"},{line,130}]},
             {ts_file_server,handle_call,3,
                             [{file,"src/tsung_controller/ts_file_server.erl"},
                              {line,159}]},
             {gen_server,try_handle_call,4,
                         [{file,"gen_server.erl"},{line,607}]},
             {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,639}]},
             {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,237}]}]},
    {gen_server,call,[{global,ts_file_server},{get_next_line,default}]}}
**状态机终止
**最后一条消息是{timeout,#Ref,end_thinktime}
**当状态=思考
**数据=={state_rcv,无,
{{0,0,0,0},0},
未定义,010000,“192.168.59.103”,443,ts_tcp,
{proto_opts,negociate,“/http bind/”,“/chat”,“binary”,10,
600000,无穷大,3276832768,未定义,未定义,[]},
真,1,未定义,真,未定义,
{1431,872144,388666},
6,6,false,未定义,0,[],和,,
{websocket_会话,未定义,未定义},
0,2,524288,524288,
[{tsung_userid,2}],
ts_websocket,[],未定义,无}
**终止原因=
**{{badarg,[{dict,fetch,
[默认,
{dict,1,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],[],[],
[[users{file,{},1,-1}]],
[],[],[],[],[],[],[],[],[],[],[],[]}}}],
[{file,“dict.erl”},{line,130}]},
{ts_文件服务器,处理调用,3,
[{file,“src/tsung_controller/ts_file_server.erl”},
{line,159}]},
{gen_服务器,尝试处理呼叫,4,
[{file,“gen_server.erl”},{line,607}]},
{gen_server,handle_msg,5,[{file,“gen_server.erl”},{line,639}]},
{proc_lib,init_p_do_apply,3,[{file,“proc_lib.erl”},{line,237}]},
{gen_server,call,[{global,ts_file_server},{get_next_line,default}]}
我知道
dynvars
可以直接从tsung中提取,但我需要在脚本中执行,因为以后我需要动态操作数据重要信息:读取相同的csv文件效果很好,因此脚本似乎是问题所在


有人能解释一下erlang在这里抱怨什么吗?

错误消息说调用了
dict:fetch(默认,SomeDict)
并抛出了
badarg
异常。通常,当密钥(在您的情况下为默认值)不存在时,会发生这种情况

问题是在Tsung配置中设置了
id=“users”
,这将文件id设置为
users
。但是
ts\u文件\u服务器:获取下一行/0
要求文件id为
default

从配置中删除
id=“users”
,或者将Erlang部分更改为使用
ts\u file\u服务器:获取下一行/1
,传入配置文件中使用的文件id

-module(loadusers).
-export([user/1]).

user({Pid,DynVar})->
   {ok,Line} = ts_file_server:get_next_line(),
   [Username, Passwd] = string:tokens(Line,";"),
   "username=" ++ Username ++"&password=" ++ Passwd.
** State machine <0.90.0> terminating 
** Last message in was {timeout,#Ref<0.0.0.414>,end_thinktime}
** When State == think
**      Data  == {state_rcv,none,
                     {{0,0,0,0},0},
                     undefined,0,10000,"192.168.59.103",443,ts_tcp,
                     {proto_opts,negociate,"/http-bind/","/chat","binary",10,
                         600000,infinity,32768,32768,undefined,undefined,[]},
                     true,1,undefined,true,undefined,
                     {1431,872144,388666},
                     6,6,false,undefined,0,[],<<>>,
                     {websocket_session,undefined,undefined},
                     0,2,524288,524288,
                     [{tsung_userid,2}],
                     ts_websocket,[],undefined,none}
** Reason for termination = 
** {{badarg,[{dict,fetch,
                   [default,
                    {dict,1,16,16,8,80,48,
                          {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
                          {{[],[],[],
                            [[users|{file,{<<"1;2">>},1,-1}]],
                            [],[],[],[],[],[],[],[],[],[],[],[]}}}],
                   [{file,"dict.erl"},{line,130}]},
             {ts_file_server,handle_call,3,
                             [{file,"src/tsung_controller/ts_file_server.erl"},
                              {line,159}]},
             {gen_server,try_handle_call,4,
                         [{file,"gen_server.erl"},{line,607}]},
             {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,639}]},
             {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,237}]}]},
    {gen_server,call,[{global,ts_file_server},{get_next_line,default}]}}