需求:设计场景,给BBS论坛并发发帖回帖,评估出回帖最大用户并发量,要求响应时间在2秒以内。
测试分析
1、根据需求,这里应该包括三个事务
1)登录BBS
2)发布一个帖子
3)回帖
2、对于一个论坛,
1)登录的用户时间会有差别,因此要设计阶梯式登录方法,就是每隔一定时间登录几个用户。
2)发帖时间会有差别,
3)回帖时间会有差别。
根据LR Controller的设计思想,2)\3)点,可以交给虚拟用户来完成。对于第三点,由于需求是分析回帖的并发用户数,因此要把一次回帖当成一个事务(transaction)
测试过程
1、录制脚本
1)打开VuGer,输入相关的参数开始录制脚本。过程略
2)脚本优化
a.注释无关部分
b.根据分析,用户登录后,需要循环发帖,因此要把回帖部分做修改。修改点如下
脚本首行,增加int i;
回帖部分修改如下:函数web_submit_data外层增加事务和循环。保存
-
for (i=0;i<100;i++) //循环
-
{
-
lr_start_transaction("回帖");
-
-
web_submit_data("forum.php_8",
-
"Action=http://192.168.0.99/bbs/forum.php?mod=post&action=reply&fid=2&tid={CorrelationParameter_2}&extra=&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1",
-
"Method=POST",
-
"RecContentType=text/xml",
-
"Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={{CorrelationParameter_2}}&extra=",
-
"Snapshot=t170.inf",
-
"Mode=HTML",
-
ITEMDATA,
-
"Name=message", "Value=回帖001", ENDITEM,
-
"Name=posttime", "Value=1439909312", ENDITEM,
-
"Name=formhash", "Value={CorrelationParameter_3}", ENDITEM,
-
"Name=subject", "Value=", ENDITEM,
-
LAST);
-
-
lr_end_transaction("回帖", LR_AUTO);
3)回放脚本。验证OK
完整的脚本如下
-
Action()
-
{
-
int i;
-
web_add_cookie("tjpctrl=1440910537525; DOMAIN=192.168.0.99");
-
-
web_add_cookie("XaKN_2132_saltkey=gI2J9l2u; DOMAIN=192.168.0.99");
-
-
web_add_cookie("XaKN_2132_lastvisit=1440158344; DOMAIN=192.168.0.99");
-
-
web_add_cookie("XaKN_2132_visitedfid=2; DOMAIN=192.168.0.99");
-
-
web_add_cookie("XaKN_2132_ulastactivity=c1bccJv6too%2BdOdBGZKW3tCTtUeE6GrRwlemDQrNJvKPO94kOAXN; DOMAIN=192.168.0.99");
-
-
web_add_cookie("XaKN_2132_smile=1D1; DOMAIN=192.168.0.99");
-
-
web_add_cookie("XaKN_2132_editormode_e=1; DOMAIN=192.168.0.99");
-
-
web_url("forum.php",
-
"URL=http://192.168.0.99/bbs/forum.php",
-
"TargetFrame=",
-
"Resource=0",
-
"RecContentType=text/html",
-
"Referer=",
-
"Snapshot=t1.inf",
-
"Mode=HTML",
-
EXTRARES,
-
"Url=static/image/common/px.png", ENDITEM,
-
"Url=static/image/common/background.png", ENDITEM,
-
"Url=static/image/common/pn.png", ENDITEM,
-
"Url=static/image/common/newarow.gif", ENDITEM,
-
"Url=static/image/common/nv.png", ENDITEM,
-
"Url=static/image/common/nv_a.png", ENDITEM,
-
"Url=static/image/common/search.png", ENDITEM,
-
"Url=static/image/common/arrwd.gif", ENDITEM,
-
"Url=static/image/common/titlebg.png", ENDITEM,
-
"Url=static/image/common/scrolltop.png", ENDITEM,
-
"Url=static/image/common/qmenu.png", ENDITEM,
-
"Url=static/image/common/chart.png", ENDITEM,
-
"Url=static/image/common/tip_bottom.png", ENDITEM,
-
"Url=static/image/common/pt_item.png", ENDITEM,
-
LAST);
-
-
lr_think_time(5);
-
-
web_submit_data("member.php",
-
"Action=http://192.168.0.99/bbs/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1",
-
"Method=POST",
-
"TargetFrame=",
-
"RecContentType=text/xml",
-
"Referer=http://192.168.0.99/bbs/forum.php",
-
"Snapshot=t2.inf",
-
"Mode=HTML",
-
ITEMDATA,
-
"Name=fastloginfield", "Value=username", ENDITEM,
-
"Name=username", "Value=admin", ENDITEM,
-
"Name=password", "Value=123123", ENDITEM,
-
"Name=quickforward", "Value=yes", ENDITEM,
-
"Name=handlekey", "Value=ls", ENDITEM,
-
LAST);
-
-
web_add_cookie("MANYOU_SESSIONID=ca3be947ba37c3414d28c955f145f7b6; DOMAIN=cp.discuz.qq.com");
-
-
web_add_cookie("MANYOU_AUTH=c45e44950c51dd57e9577f62e416915e; DOMAIN=cp.discuz.qq.com");
-
-
web_add_cookie("MANYOU_DATA=9uromlcEIGr5HoZMYQPg1QoMeV1gJvbiDC5ReM0%2FDYmsoZp5nMqC9QHrEQMSFQHgNi0Jah1oxjYMs9RDNEK03Q%3D%3D; DOMAIN=cp.discuz.qq.com");
-
-
web_url("forum.php_2",
-
"URL=http://192.168.0.99/bbs/forum.php",
-
"TargetFrame=",
-
"Resource=0",
-
"RecContentType=text/html",
-
"Referer=http://192.168.0.99/bbs/forum.php",
-
"Snapshot=t3.inf",
-
"Mode=HTML",
-
EXTRARES,
-
"Url=static/image/common/style_switch.png", ENDITEM,
-
"Url=static/image/diy/panel-toggle.png", ENDITEM,
-
"Url=static/image/feed/medal_b.png", ENDITEM,
-
"Url=static/image/feed/favorite_b.png", ENDITEM,
-
"Url=static/image/feed/magic_b.png", ENDITEM,
-
"Url=static/image/feed/thread_b.png", ENDITEM,
-
"Url=static/image/feed/task_b.png", ENDITEM,
-
"Url=static/image/feed/friend_b.png", ENDITEM,
-
"Url=static/image/common/user_online.gif", ENDITEM,
-
"Url=http://cp.discuz.qq.com/tips/get?rand=3012&s_id=&product_version=X2&product_release=20130201&fix_bug=&is_founder=1&s_url=http%3A%2F%2F192.168.0.99%2Fbbs%2F&last_send_time=&ts=1440162301&sig=&admin_id=1&group_id=1&open_id=&uid=1&callback=discuzTipsCallback", ENDITEM,
-
LAST);
-
-
web_add_cookie("tjpctrl=1440910589739; DOMAIN=192.168.0.99");
-
-
web_url("默认版块",
-
"URL=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2",
-
"TargetFrame=",
-
"Resource=0",
-
"RecContentType=text/html",
-
"Referer=http://192.168.0.99/bbs/forum.php",
-
"Snapshot=t4.inf",
-
"Mode=HTML",
-
EXTRARES,
-
"Url=data/cache/style_1_forum_moderator.css?eWU", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/recyclebin.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/arw_r.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/arw_l.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/fav.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/feed.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/atarget.png", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/titlebg_sd.png", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/mdly.png", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/refresh.png", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/js/smilies.js?eWU", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/editor/editor.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/common/pollsmall.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=data/cache/common_smilies_var.js?eWU", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/sad.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/sweat.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/shy.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/smile.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/huffy.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/shocked.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/tongue.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/biggrin.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/titter.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/cry.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/mad.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/lol.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/loveliness.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/funk.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/curse.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/dizzy.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/shutup.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/sleepy.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/time.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/kiss.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/handshake.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/call.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/hug.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=static/image/smiley/default/victory.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
"Url=http://cp.discuz.qq.com/tips/get?rand=3012&s_id=&product_version=X2&product_release=20130201&fix_bug=&is_founder=1&s_url=http%3A%2F%2F192.168.0.99%2Fbbs%2F&last_send_time=&ts=1440162303&sig=&admin_id=1&group_id=1&open_id=&uid=1&callback=discuzTipsCallback", "Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2", ENDITEM,
-
LAST);
-
-
web_add_cookie("tjpctrl=1440910592124; DOMAIN=192.168.0.99");
-
-
web_url("forum.php_3",
-
"URL=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2",
-
"TargetFrame=",
-
"Resource=0",
-
"RecContentType=text/html",
-
"Referer=http://192.168.0.99/bbs/forum.php?mod=forumdisplay&fid=2",
-
"Snapshot=t5.inf",
-
"Mode=HTML",
-
EXTRARES,
-
"Url=static/image/common/card_btn.png", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
"Url=static/image/common/notice.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
"Url=static/image/common/op.png", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
"Url=static/image/common/dot.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
"Url=static/image/common/upload.swf?site=/bbs/misc.php%3fmod=swfupload%26type=image%26fid=2&type=image&random=ILUZ", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
"Url=static/image/common/upload.swf?site=/bbs/misc.php%3fmod=swfupload%26fid=2&random=33zs", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
"Url=static/image/common/cls.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
"Url=data/cache/style_1_wysiwyg.css?eWU", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
"Url=data/cache/style_1_forum_calendar.css?eWU", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
"Url=http://cp.discuz.qq.com/tips/get?rand=3012&s_id=&product_version=X2&product_release=20130201&fix_bug=&is_founder=1&s_url=http%3A%2F%2F192.168.0.99%2Fbbs%2F&last_send_time=&ts=1440162306&sig=&admin_id=1&group_id=1&open_id=&uid=1&callback=discuzTipsCallback", "Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2", ENDITEM,
-
LAST);
-
-
web_add_cookie("tjpctrl=1440910595713; DOMAIN=192.168.0.99");
-
-
web_reg_save_param(
-
"TID",
-
"LB=tid=",
-
"RB=&extra=",
-
LAST);
-
-
web_submit_data("forum.php_4",
-
"Action=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&extra=&topicsubmit=yes",
-
"Method=POST",
-
"TargetFrame=",
-
"RecContentType=text/html",
-
"Referer=http://192.168.0.99/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//192.168.0.99/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2",
-
"Snapshot=t6.inf",
-
"Mode=HTML",
-
ITEMDATA,
-
"Name=formhash", "Value=6cc151f5", ENDITEM,
-
"Name=posttime", "Value=1440162306", ENDITEM,
-
"Name=wysiwyg", "Value=1", ENDITEM,
-
"Name=subject", "Value=发帖001", ENDITEM,
-
"Name=message", "Value=发帖001", ENDITEM,
-
"Name=replycredit_extcredits", "Value=0", ENDITEM,
-
"Name=replycredit_times", "Value=1", ENDITEM,
-
"Name=replycredit_membertimes", "Value=1", ENDITEM,
-
"Name=replycredit_random", "Value=100", ENDITEM,
-
"Name=readperm", "Value=", ENDITEM,
-
"Name=price", "Value=", ENDITEM,
-
"Name=tags", "Value=", ENDITEM,
-
"Name=rushreplyfrom", "Value=", ENDITEM,
-
"Name=rushreplyto", "Value=", ENDITEM,
-
"Name=rewardfloor", "Value=", ENDITEM,
-
"Name=stopfloor", "Value=", ENDITEM,
-
"Name=save", "Value=", ENDITEM,
-
"Name=usesig", "Value=1", ENDITEM,
-
"Name=allownoticeauthor", "Value=1", ENDITEM,
-
EXTRARES,
-
"Url=static/image/common/fastreply.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=", ENDITEM,
-
"Url=static/image/common/edit.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=", ENDITEM,
-
"Url=static/image/common/push.png", "Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=", ENDITEM,
-
"Url=static/image/common/share_btn.png", "Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=", ENDITEM,
-
"Url=static/image/common/midavt_shadow.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=", ENDITEM,
-
"Url=static/js/common_extra.js?eWU", "Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=", ENDITEM,
-
"Url=static/image/common/popupcredit_bg.gif", "Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=", ENDITEM,
-
"Url=http://cp.discuz.qq.com/tips/get?rand=3012&s_id=&product_version=X2&product_release=20130201&fix_bug=&is_founder=1&s_url=http%3A%2F%2F192.168.0.99%2Fbbs%2F&last_send_time=&ts=1440162311&sig=&admin_id=1&group_id=1&open_id=&uid=1&callback=discuzTipsCallback", "Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=", ENDITEM,
-
LAST);
-
-
-
for (i=0;i<100;i++) //循环
-
{
-
lr_start_transaction("回帖");
-
-
web_add_cookie("tjpctrl=1440910599958; DOMAIN=192.168.0.99");
-
-
lr_think_time(17);
-
-
web_submit_data("forum.php_5",
-
"Action=http://192.168.0.99/bbs/forum.php?mod=post&action=reply&fid=2&tid={TID}&extra=&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1",
-
"Method=POST",
-
"TargetFrame=",
-
"RecContentType=text/xml",
-
"Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=",
-
"Snapshot=t7.inf",
-
"Mode=HTML",
-
ITEMDATA,
-
"Name=message", "Value=回帖001", ENDITEM,
-
"Name=posttime", "Value=1440162311", ENDITEM,
-
"Name=formhash", "Value=6cc151f5", ENDITEM,
-
"Name=subject", "Value=", ENDITEM,
-
LAST);
-
-
-
web_url("forum.php_6",
-
"URL=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&viewpid=29685&from=&inajax=1&ajaxtarget=post_new",
-
"TargetFrame=",
-
"Resource=0",
-
"RecContentType=text/xml",
-
"Referer=http://192.168.0.99/bbs/forum.php?mod=viewthread&tid={TID}&extra=",
-
"Snapshot=t8.inf",
-
"Mode=HTML",
-
LAST);
-
-
lr_end_transaction("回帖",LR_AUTO);
-
}
-
-
return 0;
-
}
2、TOOLS--create controller scenario
3、
场景的设计
由于不知道并发用户是多少,因此采用多次测试的方法
1)设置默认10个用户。每隔20秒启动2个用户。持续5分钟,然后每隔20秒停止两个用户。如下图所示


2) 点击左下角的RUN菜单项,点击右上角的
开始执行脚本。
在执行脚本期间,可以实时监控脚本的运行情况,查看运行的过程数据,如用户情况、响应情况、命中率、系统资源等。可以在左侧的菜单栏里挑选自己关注的参数。

3)几分钟过后,脚本执行结束。点击左上角工具栏的分析结果按钮
开始生成报告
4)分析报告。报告比较复杂,需要详细解读其中各种信息,寻找系统的瓶颈点。
响应时间如下:当前测试的结果为0.852秒。
点击上面的TAB页,可以查看详细信息
由于时间小于2秒,超过预期,因此尝试改动场景设计:把用户数增加到25个。重新执行上面的1-4步。
测试结果为1.8秒。因此评估结果是22个并发。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21112063/viewspace-1786612/
,如需转载,请注明出处,否则将追究法律责任。