`
yanzhu2011
  • 浏览: 17776 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

LoadRunner小技巧

阅读更多
一、录脚本——VUser
1、http协议:可监测吞吐量(through)
2、java Vuser:不能监测吞吐量(through)
     runtime-settings   ——>class path:加入需要的jar包,包括 jdk/lib 下的
3、runtime-settings   ——>log:always send messages 或 只当有错误时(根据情况)
4、录制页面时,忽略非html元素
      Tools——》recording  opinions——》recording:Non Html-generated elements——》Do not record


二、跑场景——Controller
1、登陆放init;退出放end
2、runtime-settings   ——>Think time:ignore think time


三、分   析——Analysis
1、吞吐量(http协议)、TPS、点击率等
2、监控windows或linux系统 ——》add measurements:机器IP
3、 监控 Oracle数据库

四、其它
1、录制脚本中包含中文,出现乱码怎么办?

把录制选项中的Support charset选中UTF-8





录制脚本后,切换到树视图中,打开相应的脚本页面。在右侧的PageView中录制的脚本呈现中文版式,但是当切换到Server Response中,所有的中文全部换成的乱码,如“勌缞仫訆”。



原因是服务器端没有把响应的编码设置为gb2312



在IIS中找到Web.Config文件,在<system.web>….</system.web>节加 入<globalization requestEncoding="gb2312" responseEncoding="gb2312"  fileEncoding="gb2312"/>后再次录制脚本,乱码变中文。


2、录制到的脚本是空白的

有可能是由于录制的URL地址采用的是localhost的问题,改成分配的IP地址或127.0.0.1试试。




3、插入文本检查点步骤时,使用web_reg_find,通常TextPfx和TextSfx中会包含双引号,需要进行转义(用斜杠),例如:



       web_reg_find("Search=Body",

              "SaveCount=Welcome",

              "TextPfx=欢迎<a class=\"drop\" id=\"viewpro\" onMouseOver=\"showMenu(this.id)\">",

              "TextSfx=</a>",

              LAST);


4、使用web_image_check插入图片检查点时需要主要设置Run-Time Setting中的Enable Image and text check选项:





使用web_find函数插入文本检查点也一样要做此设置


5、性能测试往往需要准备大批量的数据,大批量数据的生成方法有很多种,常见的有:

       (1)编写SQL语句来插入数据

(2)使用DataFactory等专业的数据生成工具

       (3)通过LoadRunner录制回放的方式重复执行生成大批量数据



Tips:

使用DataFactory插入nchar数据类型的数据时会出现空值的情况,可以先修改数据库的数据类型设置,插完数据后再改回来


6、在录制脚本的过程中插入注释,录制后查看和理解脚本会更加方便。




7、LoadRunner回放脚本时,在浏览器显示的中文是乱码



解决办法(1):

首先设置Run-Time Settings – Browser – Browser Emulation – User-Agent





然后设置IE:

查看-编码-钩上“自动选择”和Unicode(UTF-8)。



解决办法(2):

使用lr_convert_string_encoding函数来转换编码



下面是一个使用的例子:

lr_convert_string_encoding(lr_eval_string("{ReplyContents}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"ReplyMessage");



       web_submit_data("postreply.aspx_2",

              "Action=http://127.0.0.1/postreply.aspx?infloat=1&topicid=2&&inajax=1",

              "Method=POST",

              "EncType=multipart/form-data",

              "RecContentType=text/xml",

              "Referer=http://127.0.0.1/showtopic-2.aspx",

              "Snapshot=t9.inf",

              "Mode=HTML",

              ITEMDATA,

              "Name=iconid", "Value=0", ENDITEM,

              "Name=title", "Value=", ENDITEM,

              "Name=wysiwyg", "Value=0", ENDITEM,

              "Name=checkbox", "Value=0", ENDITEM,

              "Name=message", "Value=[localimg=180,112]1[/localimg]\r\n\r\n{ReplyMessage}", ENDITEM,

              "Name=e_mediatyperadio", "Value=on", ENDITEM,

              "Name=sl_attachdesc", "Value=", ENDITEM,

              "Name=attachid", "Value=", ENDITEM,

              "Name=attachdesc", "Value=", ENDITEM,

              "Name=localid", "Value=", ENDITEM,

              "Name=attachdesc", "Value=", ENDITEM,

              "Name=localid", "Value=1", ENDITEM,

              "Name=attachdesc", "Value=", ENDITEM,

              "Name=localid", "Value=2", ENDITEM,

              "Name=emailnotify", "Value=on", ENDITEM,

              "Name=postreplynotice", "Value=on", ENDITEM,

              "Name=postfile", "Value=", "File=Yes", ENDITEM,

              "Name=postfile", "Value=D:\\\\图片收集\\\\It's about time.JPG", "File=Yes", ENDITEM,

              "Name=postfile", "Value=", "File=Yes", ENDITEM,

              "Name=uploadallowmax", "Value=10", ENDITEM,

              "Name=uploadallowtype", "Value=jpg,gif", ENDITEM,

              "Name=thumbwidth", "Value=300", ENDITEM,

              "Name=thumbheight", "Value=250", ENDITEM,

              "Name=noinsert", "Value=0", ENDITEM,

              LAST);


8、可以在LR测试脚本的目录中找到参数文件,直接修改参数文件

The parameter file is stored in the script directory as .dat file  extension.  It can be opened with a simple text editor like Notepad as  it is stored in pure text format.  Therefore, you can manipulate the  files via the Notepad.  You can also use office applications such as  Microsoft Excel or OpenOffice.org Calc to work on the file.  This  greatly the amount of work required for maintaining a long list of data.


9、LR9.x启动VUGen时提示"Failed to connect to server"

After upgrading to LoadRunner 9.x I started getting a window popup  which said "Failed to connect to server" every time I opened virtual  user generator (vugen.exe).





The solution to this was to close virtual user generator and delete the [vugen.ini] file.

vugen.ini is found in the %systemroot% folder on your Windows PC (usually C:\WINDOWS or C:\WINNT).



Once you've deleted the file, virtual user generator will open without any issues and create a new vugen.ini file automatically.






10、怎样抓取有相同左右边界的动态value?

怎样抓取有相同左右边界的动态value?例如:

stateID="d7lg0ehmjkkm6uin3s4boei7oq">

stateID="cvopakp46ftsf8mh6l37ti3ubm">

stateID="bv9mja8gtgr39ddibm5t9163re">

web_reg_save_param里的ORD应该怎样设置?









ORD: Indicates the ordinal position or instance of the match. The  default instance is 1. If you specify "All," it saves the parameter  values in an array.



例子:

char outFlightParam[50]; // The name of the parameter for correlation

char outFlightParamVal[50]; // The formatted value of outFlightParam

web_reg_save_param("outFlightVal",

        "LB=outboundFlight value=", "RB=>",

        "ORD=ALL",

        "SaveLen=18",

        LAST);



    web_submit_form("reservations.pl",

        "Snapshot=t4.inf",

        ITEMDATA,

        "Name=depart", "Value=London", ENDITEM,

        "Name=departDate", "Value=11/20/2003", ENDITEM,

        "Name=arrive", "Value=New York", ENDITEM,

        "Name=returnDate", "Value=11/21/2003", ENDITEM,

        "Name=numPassengers", "Value=1", ENDITEM,

        "Name=roundtrip", "Value=<OFF>", ENDITEM,

        "Name=seatPref", "Value=None", ENDITEM,

        "Name=seatType", "Value=Coach", ENDITEM,

        "Name=findFlights.x", "Value=83", ENDITEM,

        "Name=findFlights.y", "Value=16", ENDITEM,

        LAST);



    sprintf(outFlightParam, "{outFlightVal_%s}",

        lr_eval_string("{outFlightVal_count}"));

    sprintf(outFlightParamVal, "Value=%s",

        lr_eval_string(outFlightParam));

    lr_message("The value argument is : %s", outFlightParamVal);



    web_submit_form("reservations.pl_2",

        "Snapshot=t5.inf",

        ITEMDATA,

        "Name=outboundFlight",outFlightParamVal, ENDITEM,

        "Name=reserveFlights.x", "Value=92", ENDITEM,

        "Name=reserveFlights.y", "Value=10", ENDITEM,

        LAST);






11、运行场景时提示“Step download timeout (120 seconds) has expired when downloading resource(s)”



vuser_init.c(12): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)(出现个别,可以忽略)

vuser_init.c(12): Error -27727: Step download timeout (120 seconds)  has expired when downloading resource(s). Set the "Step Timeout caused  by resources is a warning" Run-Time Setting to Yes/No to have this  message as a warning/error, respectively





如果觉得下载一个页面超过2分钟不是错误的话,可以在Run-Time设置中选择Preferences->Options,修改Step download timeout(sec)的时间

或者把“Step timeout caused by resources is a warning”设置为Yes,这样下载资源超时也只是作为警告,不作为错误提示,但是对于非资源的下载超时,则总是会提示错误的


12、用strtok函数分割字符串

需要在loadrunner里面获得“15”(下面红色高亮的部分),并做成关联参数。

//Body response 内容: <BODY><; PRE>//OK[8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1



用web_reg_save_param取出“8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1”这一段,然后用strtok函数切割出一个个数字,第四个数字就是要找的值



例如:

extern char * strtok(char * string, const char * delimiters ); // Explicit declaration

char separators[] = ",";

char * token;

lr_save_string("1,2,3,4,5,6","str");

token = (char *)strtok(lr_eval_string("{str}"), separators); // Get the first token

if (!token) {

        lr_output_message ("No tokens found in string!");

        return( -1 );

    }

while (token != NULL ) { // While valid tokens are returned

        lr_output_message ("%s", token );

        token = (char *)strtok(NULL, separators); // Get the next token

    }








13、LoadRunner没有购买webservice协议的license,只有http的,可不可以完全用http协议模拟webservice?



可以,参考:

http://blog.testsautomation.com/2009/01/web-services-performance-using-loadrunner/

http://blog.testsautomation.com/2009/05/validating-web-service-response-with-xpath/








14、在场景设置中不忽略思考时间,但是在查看响应时间的时候怎样让LR自动在响应时间里减去思考时间?



在analysis中找到了设置是否在报告中包含思考时间的地方做相应的设置即可:










15、LoadRunner在运行过程中停掉1半虚拟用户



Another issue that I’m facing from time to time is that LoadRunner  stops 50% of running users without any notification, issue, error  message etc. I’ve find out that it happens only when running with log  level set to ‘always send a message’. Because of that, I suggest to run  with log level set to ‘Send message only when error occur’.






16、LoadRunner录制不了任何东西



Sometimes LoadRunner is not recording anything while browsing using  IE. I have no idea why but the fastest solution is to restart whole LR.  Maybe some of you have good explanation for that?








17、测试RTMP协议应该在LoadRunner选择什么协议来录制?



用flex协议



有这几个函数可用:

flex_rtmp_connect  Connects a client to an RTMP server and sets connection options. 

flex_rtmp_disconnect  Disconnects a client from an RTMP server. 

flex_rtmp_send  Sends messages to an RTMP server. 

flex_rtmp_receive  Receives responses from an RTMP server



Flex can record and replay scripts involving RTMP (Real Time  Messaging Protocol). In order to enable RTMP simulation, you must  configure the recording options for the Flex protocol.

To enable RTMP:

1 Open the Recording Options dialog box by selecting Tools >  Recording Options or clicking the Options button in the Start Recording  dialog box.

2 In the Network > Port Mapping node click Options.

3 Set the Send-Receive buffer size threshold to 1500.






18、如何在LoadRunner中运行QTP脚本?

  1、运行准备:

  1)勾选QTP的Tools--Options--Run的"Alow other Mercury products to run tests and components"

  2)录制需要在lr中运行的QTP脚本,并且在QTP脚本中设置事务,Services.StartTransaction "start"与Services.EndTransaction "start"

  2、运行QTP脚本

  在LR中运行时选择QTP脚本,为QTP脚本存放目录下文件扩展名为.usr的文件。

  注:LR中运行QTP脚本时,只能有一个Vuser,否则将报错:

  The load generator is currently running the maximum number of Vusers of this type








19、在LR中如何忽略Socket接收数据的验证

在LR中对Socket进行性能测试时,LR会自己判断lrs_receive回来的数据的长度,而如果长度不符的话会有时间延迟的情况(这是性能测试完全不能接受的事情),如果做到这一点呢,经过反复尝试,发现一种简单的方法(用*代替具体的长度):



类似于将:

recv buf1 12

"Hello, Denny"



改为:

recv buf1 *

"Hello, Denny"



一切OK。






20、LoadRunner9.5的Controller中不能添加Apache的监控





在C:\Program Files\HP\LoadRunner\dat\online_graphs中找到online_resource_graphs.rmd文件,修改[Apache]部分中的EnableInUI为1

参考:

http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1274450165814+28353475&threadId=1229523




21、VB Vuser开发ADO脚本,提示“user-defined type not defined”

想在VB Vuser写入模拟数据操作的过程,然后在VB Vuser里定义了这个全局变量

Private m_Conn As ADODB.Connection '连接对象

Private m_Reco As ADODB.Recordset  '结果集

但是在VB Vuser中不识别这个对象,报出user-defined type not defined





需要在Run-Time 设置中的VBA部分把ADO的库选上

如果用VB Script虚拟用户来开发就不要,直接用CreateObject来创建ADO对象即可




22、loadrunner9.5录制脚本时出现c:\PROGRA~1\MICROS~1\office12\Grooveutil.DLL时出错内存位置访问无效



Office2007的问题,IE加载项禁用Groove  GFSBrowser Helper 组件




23、LR自带的例子端口号怎么修改?

LR自带的例子端口号是1080,我怎么样把这个端口设置我自己想用的端口号8088,在什么地方设置





在LR安装目录下,找到Xitami.config文件,找到portbase,可以修改它(默认是1000);

默认的端口号是portbase+80;

要把端口号改成8088,就把portionbase改为8008,保存之后就是了(8088=8008+80)。


24、用Web_reg_find查找中文字符串时查找不到



脚本文件里有个default.cfg ,里面有个参数是 UTF8InputOutput ,将其值改为0






25、替代IP Wizard的脚本



http://hi.baidu.com/higkoo/blog/item/39bbb21bc33d76dcac6e751c.html



LoadRunner自带的“IP Wizard”用起来非常麻烦,要不停的点,重要的是最后还必须重启系统生效。

于是乎写个脚本替代之:

1. 假设客户端IP为 192.168.10.31

2. 假设服务端IP为 192.168.10.10

3. 需要模拟的IP为 110.119.120.122



那么,客户端提供添加虚拟IP的BAT脚本:

netsh    interface    ip    add    address    本地连接    110.119.120.122    255.255.0.0

对应的删除设置为:

netsh    interface    ip    del    address    本地连接    110.119.120.122



对应服务器添加虚拟路由的Shell脚本:

route add -host 110.119.120.122 gw 192.168.10.31

删除路由的脚本:

route del -host 110.119.120.122 gw 192.168.10.31



这样就非常方便了,不用重启任何机器,执行脚本就生效,再执行脚本就取消。




26、如何从命令行调用LoadRunner脚本?



Here is the command line that you need to execute to run a VuGen script from the command prompt:

   <LoadRunner>\bin\mmdrv.exe -usr <path to usr file>

Note:
In order to get all the other options that go with the command, run mmdrv.exe from the command prompt without any options.




27、请问"int64这个类型,在LR中怎么表示"。我将一段C的代码放在LR中,LR不认int64这个类型,怎么解决?



把那段C代码做成DLL,然后在LR中调用




28、LoadRunner监控远程机器Windows资源,提示“net use failed”



解决办法:

在被监控机器上更改本地帐户的共享和安全模式为经典模式。控制面板->管理工具->本地安全策略->网络访问:本地帐户的共享和安全模式->经典模式。



监视连接前的准备工作:

首先保证被监视的windows系统开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Service

被监视的WINDOWS机器:右击我的电脑,选择管理->共享文件夹->共享 在这里面要有C$这个共享文件夹,(要是没有自己手动加)

然后保证在安装LR的机器上使用运行.输入\\被监视机器IP\C$ 然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了


参考:http://www.cnblogs.com/preftest/archive/2010/08/02/1790569.html
分享到:
评论

相关推荐

    LoadRunner小技巧集锦

    ### LoadRunner小技巧集锦 #### 一、解决录制脚本中出现中文乱码问题 在使用LoadRunner进行脚本录制时,如果发现脚本中包含的中文字符出现了乱码,可以通过以下步骤来解决: 1. **录制选项设置**:在录制选项中...

    loadrunner 小技巧集锦

    录制脚本中包含中文,出现乱码怎么办?录制到的脚本是空白的, web_find、web_image_check等函数介绍

    loadrunner 小实例

    【LoadRunner小实例详解】 LoadRunner是一款由HP公司开发的负载和性能测试工具,它广泛应用于软件测试领域,尤其在企业级应用系统性能评估中扮演着重要角色。本实例将深入探讨LoadRunner的基础操作和应用,帮助你...

    loadrunner性能测试视频5

    9. **最佳实践**:学习LoadRunner的使用技巧和最佳实践,如何有效地组织测试计划,以及如何报告和沟通测试结果。 通过“51CTO下载-小强老师软件测试之LoadRunner使用指南16-19”的视频学习,你将掌握LoadRunner性能...

    loadrunner录制脚本的小问题.zip_录制LoadRunner

    小技巧loadrunner录制脚本的小问题loadrunner录制脚本的小问题

    性能测试工具Loadrunner11的汉化包1

    8. **学习资源**:尽管汉化后的LoadRunner11降低了语言障碍,但性能测试的知识和技巧仍然需要通过学习和实践来掌握。可以参考LoadRunner11的帮助文档、在线教程、专业书籍以及社区论坛,提升自己的测试技能。 通过...

    loadrunner11迅雷下载地址

    ### LoadRunner 11.00迅雷下载指南与性能测试工具详解 #### 一、LoadRunner 11.00简介 LoadRunner 是一款由Micro ...对于从事软件开发和测试工作的专业人士来说,熟练掌握LoadRunner 11.00的操作技巧是非常有价值的。

    LoadRunner从入门到精通

    LoadRunner从入门到精通,主要涉及LoadRunner的基本使用方法和技巧,帮助用户从零基础开始,逐步深入掌握LoadRunner的高级功能,最终达到独立完成性能测试项目的能力。 在入门阶段,用户需要了解LoadRunner的基本...

    loadrunner性能测试视频

    9. **最佳实践与技巧**:分享LoadRunner使用过程中的最佳实践,如脚本优化、参数化、关联等技巧,以提高测试效率和准确性。 10. **问题排查与解决**:讲解在遇到测试问题时如何进行调试和解决,以及LoadRunner提供...

    LoadRunner80入门教程

    ### LoadRunner80入门教程知识点详解 #### 一、LoadRunner简介 - **LoadRunner**是一种广泛应用于软件性能测试...通过对以上知识点的深入理解,相信您能够更好地掌握LoadRunner的应用技巧,为软件开发项目保驾护航。

    MySQL LoadRunner libraries

    为了更好地进行测试,测试工程师需要对MySQL的SQL语法和数据库原理有深入理解,同时掌握LoadRunner的工作机制和脚本编写技巧。在进行性能测试时,还需要关注一些关键参数,比如MySQL的`max_connections`(最大连接数...

    性能测试从零开始LoadRunner入门与提升pdf

    ##### 4.3 高级分析技巧 - **性能瓶颈定位**:结合服务器端监控数据,深入分析导致性能下降的原因。 - **趋势预测**:基于历史测试数据,预测未来可能出现的性能问题。 #### 五、LoadRunner实践案例 - **电商网站...

    Loadrunner中文教程

    通过对上述知识点的学习,我们不仅可以深入了解Loadrunner的功能特性,还能掌握其实现性能测试自动化的基本步骤和技巧。这对于提高软件产品的质量和用户体验具有重要意义。希望以上总结能为学习Loadrunner的读者提供...

    LoadRunner Winsocket协议知识总结

    本文旨在详细介绍 LoadRunner 中 Winsocket 协议的相关知识与使用技巧,希望能帮助读者更好地掌握这一功能。 #### 一、函数 **1. 基本函数** - **lrs_accept_connection**:此函数用于接受侦听套接字的连接请求。...

    性能测试进阶指南——LoadRunner11实战 part2

    第四步(进阶提升):对一些当下流行的或比较特殊的协议和开发技巧通过真实案例进行介绍。 基础篇 第1章 性能测试基础 1.1 性能测试工程师的标准及挑战 1.1.1 性能测试工程师的考评指标 1.1.2 性能测试工程师的挑战 ...

    LoadRunner参数化取值与连接数据库

    手动编辑适合小规模的数据,但对于大型业务的压力测试,这种方法显然不适用,因此连接数据库成为更优的选择。 在LoadRunner中,要连接数据库进行参数化,首先需要通过ODBC(Open Database Connectivity)建立数据源...

    性能测试进阶指南——LoadRunner11实战 part1

    第四步(进阶提升):对一些当下流行的或比较特殊的协议和开发技巧通过真实案例进行介绍。 基础篇 第1章 性能测试基础 1.1 性能测试工程师的标准及挑战 1.1.1 性能测试工程师的考评指标 1.1.2 性能测试工程师的挑战 ...

    HP_LoadRunner_12.02_Community_Edition_T7177-15059.rar

    本篇将深入探讨HP LoadRunner 12.02 Community Edition,帮助读者理解和掌握这一版本的核心特性和使用技巧。 HP LoadRunner 12.02是LoadRunner系列的某一重要版本,其Community Edition为用户提供了一个免费的基础...

Global site tag (gtag.js) - Google Analytics