脚本排错(访问论坛发布带附件帖子)
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");
大功告成。
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");
大功告成。
相关文章推荐
- Syntax error, insert "]" to complete MemberExpression XXX.js (Java Web Project 导入Jquery的文件后报错)
- Fragment( Google官方文档)
- java程序设计基础_陈国君版第五版_第三章习题
- Spring XML中<beans>中属性概述
- PostgreSQL学习手册(常用数据类型)
- android 画图基础入门法
- firefox汉化
- 《iOS Human Interface Guidelines》——Toolbar Bar
- tony_nginx_02_URL重写
- eclips安装vi插件
- CentOS安装rar、unrar解压缩软件的方法
- [Ubuntu]Linux kernel degrade
- logstash+es+kibana+redis搭建
- 机房重构—报表添加
- RecyclerView实现下拉刷新和上拉加载更多
- ApacheCXF-webservice
- 新闻布局加其网络获取实现(ListView 的再次优化 )
- 113.Examine the structure of the ORDERS table:
- centos7 安装 navicat for mysql
- C语言 共用体