C/S架构的性能测试

很多人关心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

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

时间: 2024-12-02 08:34:06

C/S架构的性能测试的相关文章

大型网站技术架构 笔记

大型网站架构演化 特点: 高并发.大流量 高可用 海量数据 用户分布广泛.网络情况复杂 安全环境恶劣 需求快速变更.发布频繁 渐进式开发 演化发展历程 0. 演变原因 在现有架构下,我们来看看数据存储的瓶颈是什么? 数据量的总大小  一个机器放不下 数据的索引(B+ Tree)一个机器的内存放不下 访问量(读写混合)一个实例不能承受 只有当以上3件事情任何一件或多件满足时,我们才需要考虑往下一级演变. 1. 初始阶段: 应用程序.数据库.文件都在一台服务器,如常用的Linux+PHP+Apach

JMeter 深入进阶性能测试进阶案例实战

第1章 性能测试整体认知了解性能测试的目的,想做好性能测试都需要掌握哪些方面的技能(开发语言.操作系统.网络.工具等).性能测试.稳定性.压力.疲劳.容量预估.多并发逻辑.掌握如何开始性能测试,并且掌握在性能测试中每个部分的工作重点,了解软件架构.监控部署.脚本准备.场景设置及知道为什么需要做这些.掌握:事务.请求响应时间....1-1 性能测试行业分析1-2 性能测试技能树1-3 性能测试的目的及分类1-4 性能测试的工作流程1-5 常见系统应用分层架构1-6 性能测试指标定义1-7 性能测试

性能测试入门-Jmeter工具与监控全方位打造

第1章 性能测试整体认知了解性能测试的目的,想做好性能测试都需要掌握哪些方面的技能(开发语言.操作系统.网络.工具等).性能测试.稳定性.压力.疲劳.容量预估.多并发逻辑.掌握如何开始性能测试,并且掌握在性能测试中每个部分的工作重点,了解软件架构.监控部署.脚本准备.场景设置及知道为什么需要做这些.掌握:事务.请求响应时间.... 1-1 性能测试行业分析 1-2 性能测试技能树 1-3 性能测试的目的及分类 1-4 性能测试的工作流程 1-5 常见系统应用分层架构 1-6 性能测试指标定义 1

高并发大访问量架构设计演进之路 归纳总结

第01:大型架构的演进之路第02(上):分布式缓存第02(下):分布式缓存第03:分布式消息队列第04:分布式数据存储第05:分布式服务框架第06:高性能系统架构第07:高可用系统架构第08:系统的安全架构第09:架构实战案例分析第10:如何成为技术专家 系统的垂直伸缩,水平伸缩系统的性能瓶颈:分部式缓存:分布式数据存储,分布式服务架构: 强烈的好奇心,工程技术,产生价值赚钱(科学研究不同)扎实的软件技术基础:操作系统,数据结构,设计模式,编程语言,出色的编程能力:优秀的代码深刻领悟主流技术产品

阅读笔记05

我们在浏览网站时,总会区分出网页速度的快慢,没有人会钟爱于速度慢的网页.这就涉及到了网页的高性能架构.性能测试是性能优化的前提和基础.从开发人员和测试人员的角度,网站的性能测试指标有响应时间.并发数.吞吐量.性能计数器等.其中性能测试包括了不同视角下的网站性能.性能测试指标.性能测试方法.性能测试报告.性能优化策略五个反面.其中Web前端的优化是业务逻辑之前的部分.包括浏览器的加载.网站视图模型.图片服务.CDN服务等.具体介绍了浏览器的优化:减少http请求:使用浏览器缓存:启用压缩:CSS放

MongoDB---性能优化---(1)

MONGODB数据架构 升级解决.方案 问题发现 应用服务器突然涌入的用户人数,造成服务器响应变慢 检查服务器,发现每次响应速度极慢,为30ops 检查过程 .发现数据库查询缓慢 .检查索引 .检查内存占.用量 .检查TCP连接 对比测试1 .硬件配置: .客户端: .阿.里云,2cpu,2g内存,windows2008 .服务端: .阿.里云,router:4cpu,4g内存,centos6.5 64位 .阿.里云,mongod:2cpu,8g内存,centos6.5 64位 .1.对rout

LVS+Keepalived实现DBProxy的高可用

背景 在上一篇文章美团点评DBProxy读写分离使用说明实现了读写分离,但在最后提了二个问题:一是代理不管MySQL主从的复制状态,二是DBProxy本身是一个单点的存在.对于第一个可以通过自己定义的检测规则进行操作Admin接口,实现主从状态异常的处理.而对于第二个问题,需要再起一个DBProxy来防止单点故障,本文通过介绍LVS来实现DBProxy的负载均衡和高可用.MySQL的架构如下: LVS基础 http://www.linuxvirtualserver.org/zh/lvs1.htm

面试记录留给自己做纪念

新浪:java/python 1.安卓怎么测试.专项测试关注那些. 2.app安全怎么测试 3.jmeter怎么自定义协议,分布式怎么部署 4.jvm原理.算法.垃圾算法有几种,怎么在tomcat中修改参数 5.HashMap有几种遍历.java集合分几种,有什么不同 6.性能测试中怎么定位问题.怎么解决问题.如果有内存泄漏怎么定位.java线程堆栈怎么分析: 7.性能测试流程是什么?如何开展性能测试 性能报告怎么写,包含什么 旷视:(python) 1.一个文件夹中有100万图片.文件夹.其他

极客时间每日一课(十九)

19-06-01(06-09补) 区块链技术实践_邹亮 以太坊合约的执行 EVM字节码,EVM存储系统,EVM交易传参,EVM Memory,EVM执行模型 EVM的局限性 确定性带来的问题,安全性问题,安全性主要考虑方向 Go语言的优势,Go智能合约的应用 19-06-02(06-09补) 效率玉公平--联盟链场景治理体系设计思路_杨孟哲 中心化.去中心化.多中心化系统对比 公有链 vs 联盟链 --玩法不同 EOS.Fabric:选择效率,优化公平 Fabric的能与不能--权限篇:权限篇: