没接触过web测试相关,不了解LR,第一次做关联,简直让人崩溃,主要有以下原因:
1、不理解关联的原理
2、不了解怎么检查业务
3、对web业务欠佳
4、抓包工具使用不熟练
5、动手能力差
对于技术知识死机硬背,不理解,坚持太可怕了,我苦思冥想,百度,搜各种资料,那简直叫一个绝望。。。后来自己摸索着用一下方式解决自己的学习阻碍,笨办法,智者请绕过:
1、不理解关联原理
还好这是一个open的网络时代,可以百度,搜各种问答、技术网站,研究了N边,主要还是老师的讲解,才弄懂了关联,简要总结有以下几点:
1)是一个参数。确定范围在URL中?后面
2)服务器返回的。非手动输入的参数,手动的输入的参数可以全部忽略掉了。。。
3)明显的是一个动态变化的数值。
比如:同一个网页请求两次,两次请求返回中的A有两个不同的值,且改参数A会在下面的请求中用到,这个值80%、90%是一个需要关联的参数。
关联的原理就是LR模拟浏览器把自己脚本中固定写死的动态值,变为参数保存起来,然后回放时绕过新的动态值继续成功执行脚本(我理解不够好,后续补充)
2、不了解怎么检查业务
1)在请求A返回之前,通过web_reg_find()函数增加检查点(文本,或者image检查点),检查点设置可在running time setting中开启,如图:
2)打印标准日志中,勾选如下,打印日志,搜索check检查点,以包保证业务成功;
需要注意的是,data returned by server这个log打印耗费时间,是不是也消耗内存啊??(请知道的大神回复下,感谢)
3)回放时,可开启回放视图,可检查业务是否成功。
页面snapshot是否符合自己的case业务,比较直观。
不过这个应该也会消耗多余的内存(疑问?)
3、不了解web业务。
没办法,只能查看搜各种资料,自我普及了下http、request、response等相关知识。。。。。未完待续。。。
4、抓包工具使用不熟练
返回搜索资料,可用抓包工具fiddler、Charles等,先用fiddler,困哪,直接上图看设置,可以指定域名:
抓包主要是抓接口请求,可把其他加载出来的js、css、XML、重定向的请求删掉,图标如下图:
截图摘自http://blog.csdn.net/ohmygirl/article/details/17849983/
5、动手能力差
1)多看书,多看视频,不懂的反复看,慢回放,边看边操作;
2)善于总结,定期整理自己学到的知识;
3)LR仅是个工具,利用好而不是,死磕。。。
艾玛,说了那么多,还没有进入正题,我要写脚本了:
1、fiddle抓包。主要抓取接口请求,一般公司都会给出现成的接口文档。。抓包主要抓post提交数据和get从服务器获取数据的请求URL;
2、可用web_submit_data()/web_url()/web_custom_request()函数来写脚本;
1)web_submit_data()函数:
step名称可自定义;
请求method(post/get);
action。方法后面的URL,不要带空格。。
recording mode。手写脚本选取http(有疑问??)
添加data数据,webform表单中的body中的参数
2)web_url()函数:
step名称可自定义;
请求method:get
action。get方法后面的URL,不要带空格。。
recording mode。手写脚本选取http
3)web_custom_request():推荐改函数,好用,简单
step名称可自定义;
请求method(post/get);
action。方法后面的URL,不要带空格。。
body。raw中的最下方的参数
recording mode。手写脚本选取http(有疑问??)
2、脚本写完后,要先保存;
3、回放一次。如果log无错误日志,回放视图有system error,则说明是没有关联。
4、手动关联。从一个URL检查参数,符合楼上所述,则在URL的response页面搜索该参数,那个请求域名搜索到改参数,则把关联函数放在该请求的前面(因为web_reg。。。shi是注册函数)(这儿有疑问)
5、回放
6、参数化还没弄。。。