使用erlang代码段在TSUNG中执行算术运算时获取{badarith,[{erlang,';+;';,[error,0],]}
我使用TSUNG Erlang函数编写了一个算术代码段,但无法成功完成;在TSUNG控制器的日志中出现以下错误: TSUNG Erlang片段使用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
<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”