使用erlang代码段在TSUNG中执行算术运算时获取{badarith,[{erlang,';+;';,[error,0],]}

使用erlang代码段在TSUNG中执行算术运算时获取{badarith,[{erlang,';+;';,[error,0],]},erlang,tsung,erl,Erlang,Tsung,Erl,我使用TSUNG Erlang函数编写了一个算术代码段,但无法成功完成;在TSUNG控制器的日志中出现以下错误: TSUNG Erlang片段 <setdynvars sourcetype="file" fileid="NBILM_testUsers" delimiter=";" order="iter"> <var name="minnum"/> <var name="maxnum"/> </setdynvars> &l

我使用TSUNG Erlang函数编写了一个算术代码段,但无法成功完成;在TSUNG控制器的日志中出现以下错误:

TSUNG Erlang片段

<setdynvars sourcetype="file" fileid="NBILM_testUsers" delimiter=";" order="iter">
<var name="minnum"/>
<var name="maxnum"/>
</setdynvars>



          <setdynvars sourcetype="eval"
                code='fun({Pid,DynVars})->
                       {ok,Maxfound}=ts_dynvars:lookup(maxnum,DynVars),
                       Maxstr =   lists:flatten(io_lib:format("~p",[Maxfound])),
                       {MAX, _} = string:to_integer(Maxstr),
                       {ok,Minfound}=ts_dynvars:lookup(minnum,DynVars),
                       Minstr =   lists:flatten(io_lib:format("~p",[Minfound])),
                       {MIN, _} = string:to_integer(Minstr),
                       {ok,Countern} = ts_dynvars:lookup(counter,DynVars,999),
                       Counternstr =   lists:flatten(io_lib:format("~p",[Countern])),
                       {Counternum, _} = string:to_integer(Counternstr),
                       Mnum1 = MAX + Counternum rem ( 2 - 1 ),
                       Mnum1 end.
                '>
          <var name="mnum" />
        </setdynvars>

来自TSUNG Controller的错误日志事件

   =INFO REPORT==== 5-May-2017::11:42:40 ===
           ts_client:(5:<0.134.0>) Stop in state think, reason= {badarith,
                                                                 [{erlang,
                                                                   '+',
                                                                   [error,0],
                                                                   []},
                                                                  {erl_eval,
                                                                   do_apply,6,
                                                                   [{file,
                                                                     "erl_eval.erl"},
                                                                    {line,
                                                                     669}]},
                                                                  {erl_eval,
                                                                   expr,5,
                                                                   [{file,
                                                                     "erl_eval.erl"},
                                                                    {line,
                                                                     438}]},
                                                                  {erl_eval,
                                                                   exprs,5,
                                                                   [{file,
                                                                     "erl_eval.erl"},
                                                                    {line,
                                                                     122}]},
                                                                  {ts_client,
                                                                   handle_next_action,
                                                                   1,
                                                                   [{file,
                                                                     "src/tsung/ts_client.erl"},
                                                                    {line,
                                                                     459}]},
                                                                  {gen_fsm,
                                                                   handle_msg,
                                                                   7,
                                                                   [{file,
                                                                     "gen_fsm.erl"},
                                                                    {line,
                                                                     518}]},
                                                                  {proc_lib,
                                                                   init_p_do_apply,
                                                                   3,
                                                                   [{file,
                                                                     "proc_lib.erl"},
                                                                    {line,
                                                                     239}]}]}


    =ERROR REPORT==== 5-May-2017::11:42:40 ===
** State machine <0.134.0> terminating
** Last message in was {timeout,#Ref<0.0.8.22>,end_thinktime}
** When State == think
**      Data  == {state_rcv,none,
                     {{0,0,0,0},0},
                     undefined,0,10000,"xyz",80,ts_tcp,
                     {proto_opts,negociate,"/http-bind/",false,"/chat",
                         "binary",10,3,600000,infinity,infinity,32768,32768,
                         undefined,undefined,[],false,true},
                     false,1,undefined,true,undefined,
                     {1493,964755,255814},
                     18,18,false,undefined,0,[],<<>>,
                     {http,0,0,-1,
                         {none,none},
                         false,false,
                         {false,false},
                         [],"tsung",[]},
                     0,1,524288,524288,
                     [{tsung_userid,1}],
                     ts_http,[],undefined,full}


Reason for termination =
{badarith,[{erlang,'+',[error,0],[]},
              {erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,669}]},
              {erl_eval,expr,5,[{file,"erl_eval.erl"},{line,438}]},
              {erl_eval,exprs,5,[{file,"erl_eval.erl"},{line,122}]},
              {ts_client,handle_next_action,1,
                         [{file,"src/tsung/ts_client.erl"},{line,459}]},
              {gen_fsm,handle_msg,7,[{file,"gen_fsm.erl"},{line,518}]},
              {proc_lib,init_p_do_apply,3,
                        [{file,"proc_lib.erl"},{line,239}]}]}
=信息报告===2017年5月5日::11:42:40===
客户:(5:)停止状态思考,原因={badarith,
[{erlang,
'+',
[错误,0],
[]},
{erl_eval,
你申请吗,6,
[{文件,
“erl_eval.erl”},
{行,
669}]},
{erl_eval,
expr,5,
[{文件,
“erl_eval.erl”},
{行,
438}]},
{erl_eval,
exprs,5,
[{文件,
“erl_eval.erl”},
{行,
122}]},
{ts_客户,
处理下一个行动,
1.
[{文件,
“src/tsung/ts_client.erl”},
{行,
459}]},
{gen_fsm,
处理味精,
7.
[{文件,
“gen_fsm.erl”},
{行,
518}]},
{proc_lib,
初始p_不适用,
3.
[{文件,
“proc_lib.erl”},
{行,
239}]}]}
=错误报告===2017年5月5日::11:42:40===
**状态机终止
**最后一条消息是{timeout,#Ref,end_thinktime}
**当状态=思考
**数据=={state_rcv,无,
{{0,0,0,0},0},
未定义,010000,“xyz”,80,ts_tcp,
{proto_opts,negociate,“/http bind/”,false,“/chat”,
“二进制”,10,3600000,无穷大,无穷大,3276832768,
未定义,未定义,[],false,true},
false,1,未定义,true,未定义,
{1493,964755,255814},
18,18,false,未定义,0,[],和,,
{http,0,0,-1,
{无,无},
假,假,,
{假,假},
[]、“宗”、[]},
0,1,524288,524288,
[{tsung_userid,1}],
ts_http,[],未定义,完整}
终止的理由=
{badarith,[{erlang,'+',[error,0],]},
{erl_eval,do_apply,6,[{文件,“erl_eval.erl”},{line,669}]},
{erl_eval,expr,5,[{file,“erl_eval.erl”},{line,438}]},
{erl_eval,exprs,5,[{文件,“erl_eval.erl”},{line,122}]},
{ts_客户端,处理下一个操作,1,
[{file,“src/tsung/ts_client.erl”},{line,459}]},
{gen_fsm,handle_msg,7,[{file,“gen_fsm.erl”},{line,518}]},
{proc_lib,init_p_do_apply,3,
[{file,“proc_lib.erl”},{line,239}]}

如果有人能指出我做错了什么,这将非常有帮助。

消息说在
Mnum1=MAX+Counternum-rem(2-1)行中,
您试图用
0
添加
error
(顺便说一句,
Counternum-rem(2-1)
总是等于0,所以这里一定有错误)

Max是
{Max,{}=string:to_integer(Maxstr),
的结果,如果Maxstr不是以整数开头的字符串,则等于error:

  • “123”
    将返回
    {123,[]}
  • “123 ab”