如何调试脚本,解决脚本回放成功但失败的情况.docVIP

如何调试脚本,解决脚本回放成功但失败的情况.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何调试脚本,解决脚本回放成功但失败的情况

背景 讲一个故事 以前我们公司招了一个自称非常熟练loadrunner的员工,有一次分配给他测试sso单点登录系统的性能测试。登录一个网站A,需要输入用户名密码,然后在访问另一个网站B,因为在网站A已经登录过,所以B应该不需要再登录,直接就可以访问B页面。让该员工测试下可以支持多少用户,及稳定性。 该员工使用loadrunner测试了2天,然后给我们报告说支持320左右个用户并发。然后,我们跟他一起验证下,确实在320并发时就出现用户失败。但检查系统A与B,发现A确实登陆了,但B没有数据,后面他定位了半天也没解决问题,最后我帮他定位下,结果发现是发给B系统请求B页面的HTTP的会话信息里没有包括用户已经登陆的信息,会话在Cookie与URL的参数都存在。 还有另外一个问题,当时由于没研究loadrunner是如何模拟用户的,后来参与开发了kylinPET性能测试工具,才对性能工具的原理有深入的了解。其实之前loadrunner工具测试的并发用户数最大支持320,是错误的,大家可以看我写的“如何测试服务器的最大并发数”,网址:/dow_6_1.html 该故事说明了什么 该故事说明了,一个熟练loadrunner的人进行系统性能测试,还是出现花费了2天多的时间是白费的,因为实际B系统还需要登录,因此无法访问B页面。 为什么呢,因为他对业务了解不透,还有认为loadrunner回放通过就表示脚本没问题,虽然他做了一些关联参数,但脚本其实还是错误的。因此,会使用性能测试工具只是一项技能,真正掌握性能测试,还需要结合业务与协议、网络知识,另外还需要掌握测试工具调试脚本方法。 在网络上经常出现求助帖:测试工具脚本回放成功,但实际是失败 在网络论坛上经常出现求助帖:测试工具loadrunner或jmeter的脚本回放成功,但检查后台,数据不存在或用户其实没登陆。 很多测试人员对系统不了解,有不懂HTTP协议,也不了解网页怎么产生的,然后就使用测试工具进行测试;有些人员会检查后台发现脚本有问题,但不会定位;有些经验丰富的人,知道怎么调试脚本,验证脚本,并定位问题修改;然而,有些新手或经验不足的测试人员会出现做无用功,而且还不知道自己做了无效的性能测试,因为他认为测试工具回放成功就表示OK。 其实,很多开发人员或设计人员也不能完全了解被测系统,另外也不了解HTTP协议,因为HTTP是底层的,都被封装了,如spring开发基本就不需要了解HTTP。所以,测试人员要掌握一些基本知识,如HTTP协议、基本的网络知识,还有掌握系统架构、场景、还有业务流程,也是很有技术含量的。对于WEB学会使用浏览器调试功能或httpwatch了解系统业务交互流程,学习HTTP。如果有这样的基础,使用性能测试工具调试脚本就事半功倍啦。 介绍怎么调试脚本(这里只介绍WEB) 很多测试人员或开发人员对HTTP或HTML不熟悉,很大可能还不了解业务细节,所以自己修改脚本有一定的难度,需要借助工具提供的调试功能来调试脚本。主要解决业务动态的地方:参数化、关联参数、Cookie。 测试工具怎么判断脚本失败 当如下情况发生时: 发送请求消息参数化失败 出现响应码错误,如收到500、505等错误码 出现超时,请求HTTP,但它的响应时间超过期望时间 建立TCP连接失败 脚本回放成功并不代表业务成功 一个脚本执行成功通过上面条件判断是不够的,因为可能存在这样的情况,登录成功,服务器回302定位到正常页面;登录失败,服务器回302或200定位到错误页面或登录页面。登录失败时,其实所有HTTP请求都是成功的,只是业务失败,所有根据上面条件,测试工具会认为脚本执行成功。如下图,登陆失败跳到error.jsp,但响应码是302。如: 如果没有判断响应码或检查页面内容(检查点),则测试工具会认为脚本正常,继续请求已录制的后面的HTTP请求,但其实脚本已经失败,因为业务失败啦,没出现正常页面。 这种情况是常发生的,即得到的内容或页面不是正常的。 很多工具只提供检查页面内容,没有提供检查响应码,但没经验的测试人员,可能不会设置或忽略设置,因为脚本执行成功,他认为脚本没问题,这将导致性能测试无效。 loadrunner不支持检查响应码但支持设置检查点,kylinPET支持检查响应码与检查点,响应码自动根据录制设置。 脚本回放成功,需进一步验证 脚本回放成功后,还需要进一步验证,验证方法: 检查服务器 在服务器上查看数据是否正确,如检查用户提交了数据是否存在;但只有用户提交数据并保存到数据库或日志才可以检查,很多系统可能没用户提交,用户只是获取数据,但可能存在由于参数错误,获取的数据失败,如获取json内容错误(HTTP仍然是回200) 所以,检查服务器并不是最好的方法,因为有些系统可能无法检查

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档