最近项目用到的loadrunner终于告一段落,现在趁还记得LR的使用方法,写下自己在项目中遇到的困难和解决方法,方便有需要的同志。我不是专门研究LR的人,只是作为职场新人服从上级安排,临时研究,若有不合理的地方请多多包涵。
简单的说下用到的LR,socket协议~需要IP欺骗,监控服务器的性能,模拟用户与平台进行交互。
用户是IP认证的~一个IP唯一一用户。
遇到的难点主要有以下几个方面:
(1) IP认证
因为需要模拟大量的IP,所以需要借鉴LR的IP欺骗,具体的实现方法可以google一下。说的很详细。
难点在于为什么设置了IP欺骗的操作后,还是无法实现IP欺骗?
首先确认测试机是否是XP系统,我曾经在win7系统上实验,绞尽脑汁无法实现,平台的日志看到是同一的IP不同的端口建立的socket链接。但是在XP系统上,可以完美的实现IP欺骗。
其次要确认选择的是LR的scenario是否开启了”enable IP Spoofer“
(2)关于socket的buf内容(也就是data.ws),在测试的时候我们可能需要变量化参数,因为我这边的IP地址是和用户名是一一对应的。所以我在录制脚本完后,再需要变量化的地方右键,选择file,然后可以用其他工具批量生成用户名,再参数那边设置如下
这样他会根据虚拟的IP顺序,一一对应上的用户名
(3)关于socket的response的判定。
LR不会自动给你判断response是否正确,这样需要我们加代码去判断,但是对于变长的buf内容我们如何去判断呢?如果采取固定写死的方法,写的太笨拙,不利于脚本的二次利用,再万能的google后,可以用
lrs_save_searched_string()方法进行判断。具体的含义英文好的看官网文档,英文不好的可以看各种博客~下面贴上我的代码,写的不太好见笑了~
lrs_send("socket1", "buf0", LrsLastArg); lrs_receive("socket1", "buf1", LrsLastArg); lrs_save_searched_string("socket1", LRS_LAST_RECEIVED, "result", "LB/BIN=result", "RB/BIN=\\\"", 1, 2, -1);
这样会把上一个receive的buf内容里面第一个含有result的字符开始从你设置的"LB/BIN” 与“RB/BIN”之间部分截取下来,so我要比对result后面是什么~我关心的只是result是否是OK的,所以
re=lr_eval_string("<result>"); result = stricmp(re, tmp); if(result==0){ lr_output_message("result is OK"); }else{ lr_output_message(" result is NOT OK"); return -1; }
return -1 是直接退出,貌似有点太粗鲁了。。。
(4)关于接收的buff与录制脚本的buff长度不一致,mismatch的解决办法
有时候因为这个那个原因,我们实际的buf可能与录制脚本的buff不太一样,所以导致系统提示XXX mismatch
这时候我的处理办法很简单,加入lrs_set_receive_option(EndMarker, StringTerminator , "XXX");
其中XXX是你消息的结尾表示。譬如,
lrs_send("socket1", "buf0", LrsLastArg); lrs_set_receive_option(EndMarker, StringTerminator , "</xml>"); lrs_receive("socket1", "buf1", LrsLastArg);
这样buf在读取的时候,读到/xml 就停止了,不会提示mismatch什么的,具体还是查查官方文档关于lrs_set_receive_option的用法~但是有一点一定要注意,lrs_set_receive_option好像是只起一次作用,所以在每个receive前面我都加了这个lrs_set_receive_option
(5)虚拟机与另外一台局域网下的物理机之间的设置
再记录win7的server之前,我想告诫一下自己多学习一下网络的基础知识。
win7物理机serverIP是 192.168.1.2 255.255.255.0 192.168.1.1
XP虚拟机设置的IP是 192.168.1.4 255.255.255.0 192.168.1.1
win7 ping不通XP虚拟机。。。
XP虚拟机可以ping通 win7 sever,可以访问win7 server
但是XP虚拟机IP改为192.168.2.4 ,双方都ping不通了~
后来查了半天原因,忙上忙下解决不了,被逼无奈只能求助于高手,高手问了问我的需求后说,把子网掩码改大一点点就可以了。。。于是乎我改为以下设置
win7 server 是 192.168.1.2 255.255.0.0
XP虚拟机 是 192.168.1.4 255.255.0.0
不设置网关也不设置DNS,因为我的机器只需要虚拟机与server交互即可,其他的不在乎~
(6)XP虚拟机如何远程监控win7的server
其实很简单,
首先WIN7开启服务Remote Procedure call、Remote Procedure Call (RPC) Locator、Remote Registry
其次右击“我的电脑”——“管理”——“共享文件夹”——选择“共享”,查看是否存在C$,如若不存在就要新建一个。
然后在测试机,也就是XP虚拟机下,在地址栏输入\\win7的IP地址\C$ 回车,再弹出的对话框输入win7系统的用户名和密码,如果能登陆成功,就可以了
最后再测试机XP虚拟机的LR的scscenario的下按照如图设置
选择add measurements 然后点击add 输入win7的IP 然后选择vista 然后确定,就可以了
(7)关于LR的transaction的理解
起初我总是录制完脚本,然后一同乱改,没有加入transaction的概念,最后总是觉得很怪异,后来加入transaction,才发现原来如此美妙。
起因是我们需要对响应时间进行分析,优化工程代码,开始我决定用timer,也就是LR自带的定时器,发现这样只能算出用时多少,不能算avgtime,后来再某一LR_send与LR_receive之间加入transaction的定义,才发现,原来如此简单,不多说,贴上我的例子,大家参考
lr_start_transaction("demo transaction"); lrs_send("socket1", "buf0", LrsLastArg); lrs_set_receive_option(EndMarker, StringTerminator , "</xml>"); lrs_receive("socket1", "buf1", LrsLastArg); lr_end_transaction("demo transaction",LR_AUTO);
这样在脚本的log中会出现Notify: Transaction "demon transaction" ended with "Pass" status (Duration: 0.2552).
再scenario中会出现
相关推荐
### LoadRunner的使用心得 #### 一、LoadRunner概述与准备 LoadRunner是一款业界领先的性能测试工具,由美国惠普公司开发,后被Micro Focus收购。它主要用于预测系统行为并优化性能,支持Web、云、移动等多种应用...
HP LoadRunner通过模拟一个多用户并行工作的环境来对应用程序进行负载测试。通过使用最少的硬件资源,为这些虚拟用户提供一致的、可重复并可度量的负载,像实际用户一样使用所要测试的应用程序。
对业界权威性能测试工具LoadRunner的学习心得。如: 1)对于浏览器应用程序,使用基于HTML的级别录制脚本 2)非浏览器,使用基于URL级别 3)如果是使用javascript进行交互的ajax,也是应该用url级别
在这次“LoadRunner培训”过程中,我深入学习了其核心概念、工作原理以及实际操作技巧,以下是我对LoadRunner的一些心得分享。 首先,LoadRunner的核心理念在于模拟大量并发用户的行为,以测试系统的负载能力和压力...
在我深入学习和使用LoadRunner的过程中,积累了丰富的经验和心得,以下是一些关键知识点的详细说明。 1. **虚拟用户(Vusers)**:LoadRunner的核心概念之一是虚拟用户,它们模仿真实用户的操作,对系统施加负载。...
本篇文章将基于“loadrunner培训心得”这一主题,结合描述和提供的LR培训心得.pdf文件,深入探讨LoadRunner的核心概念、安装步骤、基本使用方法以及如何分析测试结果。 LoadRunner的主要功能是模拟大量虚拟用户同时...
3. **社区论坛**:加入LoadRunner相关的社区或论坛,如Stack Overflow,可以与其他用户交流心得。 4. **视频教程**:YouTube上有许多免费的LoadRunner教学视频,适合初学者观看。 5. **实战项目**:通过参与实际项目...
(3)loadrunner脚本录制 (4)loadrunner序列号 (5)PIX基本配置 (6)VSS简单入门 (7)web测试技术经典案例 (8)WIN2003邮件服务器构建 (9)测试总结 (10)防火墙技术 (11)路由器配置命令 (12)企业防火墙安全防护配置七大问题...
- “QTP学习笔记-zhl更新.doc”可能是个人学习过程中的笔记,记录了使用QTP进行测试的具体步骤和心得。 5. LoadRunner教程: - “Loadrunner使用教程(免费).doc”提供了LoadRunner的基本操作和测试流程,适合初学...
### LoadRunner 测试总结与心得 #### 一、功能测试用例编写心得 1. **用例编写过于简单,语言不规范**: - **改进措施**:在编写测试用例时,应确保语言规范、逻辑清晰。可以参考现有的最佳实践文档或指南,确保...
包括性能测试的术语、指标、分类、模型,LoadRunner VuGen、LoadRunner Controller、LoadRunner Analysis、JMeter、ab等各种性能测试工具的详细使用,以及测试脚本的开发。, 第二篇 新硎初试:以实战方式讲解.NET...
比较普遍的性能测试工具是Loadrunner7.51,但是很多人对此性能工具不是很熟悉。本人也是总结心得体会,将做过的性能测试实例以饷大家,希望对各位做测试的朋友有所帮助。该方案是针对某公司 随着测试越来越重要,...
随着测试越来越重要,其中的性能测试也受到...比较普遍的性能测试工具是Loadrunner7.51,但是很多人对此性能工具不是很熟悉。本人也是总结心得体会,将做过的性能测试实例以饷大家,希望对各位做测试的朋友有所帮助。