`
nannan408
  • 浏览: 1771020 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

LR的在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
分享到:
评论

相关推荐

    利用LR插件完成性能测试脚本

    这一过程不仅繁琐而且容易出错,尤其是在处理复杂的应用程序或客户端/服务器(C/S)架构下的应用时更为明显。 #### LoadRunner Add-In 方案简介 LoadRunner提供了一种名为“Add-In”的方法来简化这一过程。通过利用...

    自动化负载压力测试工具LR培训

    LoadRunner是一款强大的性能测试工具,能够模拟大量用户并发执行任务,以此来评估系统在高负荷下的表现。 在LR中,**创建测试**是整个流程的基础。首先,你需要选择合适的**协议**,例如Web(HTTP/HTML)、Winsock...

    软件测试参考学习方法

    - **计算机硬件**:尤其是对于C/S架构测试和性能测试,需要了解硬件基础,如IO和IOPS。 - **测试工具**:熟悉并熟练使用QC/TD/BUGfree/QTP/LR等测试工具。 - **软件测试基础知识**:扎实的测试理论基础是必不可少的...

    赋值语句的LR分析方法翻译程序设计

    《赋值语句的LR分析方法翻译程序设计》是一篇关于编译原理课程设计的报告,主要探讨了如何使用LR分析法对赋值语句进行语法分析和语义分析,并生成逆波兰式作为中间代码。LR分析法是一种广泛应用的自底向上的语法分析...

    LR函数经验分享

    在LoadRunner(以下简称LR)性能测试工具中,LR函数扮演着至关重要的角色,它们能够帮助我们更有效地进行脚本调试、监控和优化。本文将重点介绍几个核心LR函数,包括`lr_set_debug_message`、`lr_debug_message`、`...

    编译原理 LR(0)项目集规范族的构造 LR(0)分析表+分析串的代码实现

    编译原理作业:输出LR(0)分析表,并且可以判断一个语句是否符合文法。整个过程我是使用codeblocks的c++编写的,其中用了一下STL标准库中的队列、映射。这是实现功能的详细代码,有注释的伪代码以及测试用的相关...

    (word完整版)软件测试报告模板.doc

    在本模板中,术语定义部分列出了多个软件测试相关的术语,包括操作系统(OS)、客户端/服务器(C/S)、浏览器/服务器(B/S)、负载测试工具(LR)等。 测试依据 测试依据是软件测试的基础,旨在确保测试的合法性和...

    LR知识点回顾及入门

    通常情况下,测试人员需要对被测系统有一个清晰的理解,包括其架构(如B/S架构或C/S架构)以及所使用的通信协议。例如,如果目标应用是一个基于Web的应用程序,则可能需要使用HTTP/HTML协议来进行测试;如果是数据库...

    LR性能测试实战之监控服务器系统资源

    "LR性能测试实战之监控服务器系统资源" 监控 Linux/Unix 系统资源是性能测试中非常重要的一步骤。为了更好地监控系统资源,需要了解如何配置和使用 rstatd 守护程序、top 命令等工具。 配置 rstatd 守护程序 在 ...

    LR 8.1 Controller User’s Guide.pdf

    LoadRunner是一种广泛应用于性能测试领域的工具,旨在评估和优化软件应用在不同负载条件下的表现。通过模拟大量并发用户对系统进行压力测试,LoadRunner能够帮助识别系统的瓶颈,确保其在高负载下依然稳定运行。 ##...

    LR录制常见问题

    通常情况下,LoadRunner默认采用进程模式,但在某些特定情况下,如需要模拟高并发的测试场景时,可以选择线程模式以提高效率。 #### 十三、Controller在Web负载测试中有时显示吞吐量较低? 在进行Web负载测试时,...

    编译原理LR0语法分析程序加报告

    在编译原理中,LR0(Left-to-Right, Shift-Reduce, 0-follow set)是一种广泛应用的自底向上的语法分析方法。本项目提供的“LR0语法分析程序”是基于C++实现的,适用于理解和实践编译器设计中的语法分析阶段。下面将...

    白盒测试之基本路径测试法

    在软件测试领域,白盒测试(也称为透明盒测试、结构测试或逻辑驱动测试)是一种测试方法,它根据程序内部的工作流程来设计测试案例。这种方法允许测试人员评估程序的内部结构,并通过检查程序的逻辑路径来识别潜在的...

    LoadRunner自动化测试工具[归纳].pdf

    它通过模拟大规模并发用户负载,对整个企业架构进行压力测试,以找出可能存在的性能瓶颈和问题,确保系统在高负载下的稳定运行。LoadRunner的测试范围广泛,涵盖了各种应用程序,包括C/S和B/S系统。 【安装...

Global site tag (gtag.js) - Google Analytics