C/S架构的性能测试

发表于:2010-3-15 12:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:tttrrryyy    来源:51Testing软件测试论坛

  很多人关心LR在C/S架构上如何实施性能测试,我想根本原因在于两个方面,一是很多时候脚本无法录制,即LR无法成功调用被测的应用程序,二是测试脚本即使录制下来,可读性不强,往往不能运行通过,调试时无从下手,像音视频、电子地图类的测试差不多也是这个问题。

  根据我以往的项目经验,LR是可以做到的,因为它提供了Windows Sockets协议,解决方案实施起来简单但需要足够的细心以及一定的判断力、想象力,可参考如下步骤进行:

  1、通过抓包工具捕捉客户端与服务器之间的所有通讯。

  关键点:IP过滤,端口过滤,报文类型过滤

  目的:弄清楚业务操作过程中,客户端向服务器提交的请求原型,以及服务器对我们请求所做的正确响应

  2、将过滤后的报文整理成测试脚本。

  关键点:Socket的建立与关闭,send buf的整理,receive buf的整理

  目的:将抓包获得的报文转成LR测试脚本(提示:选取合适的抓包工具,使得报文能被保存成文档格式;开发小工具,通过报文中的各个关键字抽取报文中 Data Area中的部分作为buf 区的内容,根据IP字段,端口号等特征完成lrs_send,lrs_receive语句的填写。这部分看上去挺难,但只要对报文做好分析,把握规律,编程的事随便拉个开发都可以轻松搞定)

  3、调试脚本

  关键点:定位错误,添加校验点

  目的:使脚本真正可以拿来进行压力测试

  这是最难的一个环节,耐心、细心、判断力都体现在此处。每个人处理问题的方式的不同,我只能提供自己的一点经验。

  将脚本RUN-TIME SETTINGS中的扩展日志全部打上钩,并且将脚本拿到controller中单用户执行,注意设置好日志路径。

  脚本出错后,用EDIT PLUS或其他的文本工具打开log,找到出错行,然后向上逐一对比服务器返回的数据与录制过程中抓包获得的报文。

  在这里,我用了一个小技巧,生成buf内容时,使buf的编号与该buf在抓包获得的报文中编号保持一致,比较起来很方便。

  如果服务器返回的buf与抓包时的原始数据一致,自然表示该步骤回放成功,如果不一样,则需要具体情况具体对待。就我的经验来说,往往是因为数据唯一性问题或者是关联的问题造成某一步骤返回的BUF为0或-1,从而导致最终脚本失败。

  找到第一个出错的地方后,参数化,关联等手段都可以用上了,这里可能需要重复两次抓包过程,先行比较自己发送的报文是否有区别。

  总体思路便是如此,写了一堆,也不知道对大家是否有帮助,对于此类问题,网络上的协助很难派上用场,事情还是要在现场才有可能得到解决啊。本来有意将这东西工具化,甚至产品化,但几个项目实施下来发现变数较多,特别是最后一个环节,完全依赖于测试工程师的自身能力,只好就此作罢。(以上言论仅代表作者的个人观点,不代表51Testing观点)

版权声明:本文为51Testing论坛会员tttrrryyy原创。

原帖地址:http://bbs.51testing.com/thread-182981-1-2.html

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • cap5210
    2010-3-29 18:01:07

    bucuo

  • caojianjian
    2010-3-29 14:59:17

    有时因为浏览器的问题所以才会无事件无脚本

  • yun__qing
    2010-3-23 10:43:20

    好文章,收藏先

  • fishy
    2010-3-22 17:33:51

    回复1楼,建议去帖子里面直接和作者沟通

  • liumm
    2010-3-15 14:37:12

    好及时! 可是我遇到的状况是LR可以启动应用程序,但是却没有Events无脚本,但是应用程序的功能(向服务器上传文件)成功实现,请教作者对这个问题有什么看法?另外想请教下,对于一个从来没用过LR以及没亲手写过脚本的人做这样CS的测试(您在文章中提到类型的)是不是难度很大?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号