您的位置:首页 > 其它

脚本排错(访问论坛发布带附件帖子)

2016-03-07 15:05 295 查看
1.录制脚本回放完毕,view-test results,发现在“上传附件”与“发布帖子”两个报错:



 



 

2.首先查看“上传附件”,发现hash需要做关联:

web_submit_data("上传附件",

  "Action=http://192.168.31.165/bbs/misc.php?mod=swfupload&action=swfupload&operation=upload&fid=41",

  "Method=POST",

  "EncType=multipart/form-data",

  "TargetFrame=",

  "RecContentType=text/html",

  "Referer=",

  "Snapshot=t5.inf",

  "Mode=HTML",

  ITEMDATA,

  "Name=Filename", "Value=Tulips.jpg", ENDITEM,

  "Name=uid", "Value=2", ENDITEM,

  "Name=filetype", "Value=.jpg", ENDITEM,

  "Name=hash", "Value={hash}", ENDITEM, //e3c681eb2bc2076a0ed71e2bac292bdf

  "Name=Filedata", "Value=Tulips.jpg", "File=Yes", ENDITEM,

  "Name=Upload", "Value=Submit Query", ENDITEM,

  LAST);

3.重新回放脚本,在generation log中报错:



具体报错如下:

Action.c(123): Error -26488: Could not obtain information about submitted file "D:\慧测\脚本\Discuz\attach\Tulips.jpg": _stat32 rc=-1, errno=2 [No such file or directory]. Using an empty file   [MsgId: MERR-26488]

解决办法:1.将附件copy至该脚本目录下;

                  2.在脚本中添加附件的绝对地址;

3.”上传附件“问题解决,在”发布帖子"关联formhash后回放脚本,查看test results,在步骤”发布帖子“中报错:



分析:1.数据不合法;

           2.请求失败;

查看脚本,发现attachnew[6]中”6“是需要关联的,在”上传附件“后服务器返回为”6“,

web_submit_data("发布帖子",

  "Action=http://192.168.31.165/bbs/forum.php?mod=post&action=newthread&fid=41&topicsubmit=yes&infloat=yes&handlekey=fastnewpost&inajax=1",

  "Method=POST",

  "TargetFrame=",

  "RecContentType=text/xml",

  "Referer=http://192.168.31.165/bbs/forum.php?mod=forumdisplay&fid=41",

  "Snapshot=t9.inf",

  "Mode=HTML",

  ITEMDATA,

  "Name=subject", "Value=小老百姓婚礼也精彩", ENDITEM,

  "Name=message", "Value=小老百姓婚礼也精彩", ENDITEM,

  "Name=formhash", "Value=44dc44cc", ENDITEM,

  "Name=usesig", "Value=1", ENDITEM,

  "Name=posttime", "Value={posttime}", ENDITEM, //1457333207

  "Name=attachnew[6][description]", "Value=", ENDITEM,

  LAST);

 

总结,以上关联做完之后回放脚本发现仍然提示,数据不合法,通过“运行时设置”的日志文件记录参数值,发现forhash的左右边界设置有问题,导致取值错误,重新设定左右边界后,脚本回放没有问题,帖子成功发布。

 



 

4.参数化:

(1)用户名、密码参数化,思考:一个账号同一时刻是否可以有不同的人在用,有的项目是不允许的,具体到论坛项目,如果有限制的话,那么参数化方式要选择:唯一取值(unique)迭代更新(each iteration),但是数据会造成极大浪费,比如:1000条数据,100个跑,意味着每个只跑10遍就取完了,比如user1取完之后别人也不可以取,用完就扔掉了,其实只要保证在任何一个时刻这个账号只有一个人用就可以,所以取值方式采用唯一取值(uniqu)更新一次(once),可以重复登进去发帖。其实论坛项目并没有这个限制,所以不做参数化都是可以的。但考虑真实性还是做一下,但是对性能影响不大。

    

5.将用户名、密i码参数化后,再在“运行时设置”中将迭代次数设置为“2”,回放脚本,查看test results,发现第一次迭代发布帖子成功,第二次迭代"上传附件"与“发布帖子”全部失败。

解决办法:重新录制一遍脚本,注意用不同的用户登录进行录制,发现uid有变化,需要对uid做关联。 

结果:两次迭代全部成功;

 

6.对论坛模块做参数化

lr_save_string(lr_paramarr_random("fids"),"fid");

 

大功告成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: