当前位置:文档之家› LoadRunner脚本开发与编程规范

LoadRunner脚本开发与编程规范

LoadRunner脚本开发与编程规范
LoadRunner脚本开发与编程规范

Loadrunner脚本开发与编程规范Loadrunner脚本开发规范

1、一般约定

1.1、具体脚本规则,必须在具体代码中加注释,以便脚本开发人员阅读和理解脚本。1.2、脚本的存放规则:

测试脚本应该存储在指定的库中,例如一个共享的驱动盘或测试管理工具中。为节省空间,便于复用,测试脚本的文件夹下的:result,res,date文件夹,后缀名为:.idx .log .txt文件都可不必保留。

1.3、脚本中action的命名规则:

录制脚本前有个名字规则非常有必要,否则同一动作会有多个事务,会给数据收集、分析带来不必要的麻烦。

假设某J2EE系统实现开户、销户业务,那么自然会有Login、OpenAccount、DestroyAccount和LoginOut动作。那么录制LR脚本时,脚本中的Action列表应该为:脚本1:初始化-Login-OpenAccount-LoginOut-结束动作

脚本2:初始化-Login-DestoryAccount-LoginOut-结束动作

(即只有一个动作不同)

这样做其目的是创建场景Scene时,在Login、Loginout的事务只被记录一次

1.4、变量命名规则

变量的命名的基本原则是使得变量的含义能够从名字中直接理解。可以用多个英文单词拼写而成,每个英文单词的首字母要大写,其中英文单词有缩写的可用缩写;变量的前缀表示该变量的类型;对于作用域跨越10行以上的变量名称不能少干4个字符,除循环变量,累加变量外不得使用I、J、K等名称。变量分为取全局变量和局部变量,对干全局变量以加前缀“g…”来区分。

1.5、常数名规则

常量所有的字母均为大写。并且单词之间使用下划线“_”隔开。例如:

USER_LIST_MAX

NEW_LINE

1.6、函数名命名规则

函数/过程名称应该尽量使用能够表达函数功能的英文名称,函数名称中应该禁止使用如同function,function2等含义不清的名称。单词间应该使用大小写分隔。全局函数/过程名称以“g_”前缀开始。代码注释约定。

2、代码注释约定

在软件中对每个文件夹头,自定义函数和变量,重要的处理过程都要有必要的注释。

2.1、源程序头的注释和规范

每个文件头插入注释,标明文件的用途和作者,注释如下:(注释尽量用中文)

//程序名称

//版权说明

//版本号:

//功能:

//开发人:

//开发时间:

//修改者:

//修改时间

//修改简要说明

//其它

2.2、函数的注释

每个函数前面注明函数的功能和输入,输出。注释为:

//名称

//功能:(说明函数的功能)

//输入参数:(说明每个输入参数的用途和取值约定)

//输出参数:(说明每个输出参数的用途和取值约定)

//返回:(说明返回值,返回值的含义和约定)

2.3、变量注释

直接在变量后面注明的用途和取值约定,如:

Int status; //记录处理状态,0:成功,1:错误

2.4、类型定义注释

指类和记录等等定义的注释,在注释中标明定义的用途。

2.5、区的注释

同一个类的成员方法要求排列在一起,共同协作而实现同一个功能的函数和过程要求排列在一起。代码通常使用几个函数和过程来实现某一功能,这时候需要使用区注释将这些具有共同目的的函数和过程标明出来。

使用整行的“*”作为隔离行,让程序清晰可读。

一般删除的代码不建议直接删除,最好用“//”注释起来。

2.6、代码中的注释

在代码中要求注释地方:

代码中的关键部分;

在使用特殊算法或者逻辑性较强的代码;

在修改或删除代码部分,需要加注释;修改/删除人,目的。

3、格式化代码

程序应采用缩进风格编写,每层缩进使用一个制表符(TAB),类定义、方法都应顶格书写;

左边括号要另起一行,不能跟在上一行的行末;

一个变量定义占;

对独立的程序模块之间,变量说明之后必须加空行;

对于较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操符处划分新行,操作符放在新行之首,划分出的新行要进行当的缩进,使排版整齐,语句可读;

循环、判断等语句中若有较长的表达式或语句,则要进行适应划分;

在结构成员赋值等情况,等号对齐,最少留一个空格。

若函数或过程中的参数较长,则要进行适当的划分。

形参的排序风格;

最常使用的参数放在第一位;

输入参数列表应放在输出参数列表的左边;

将通用的参数放在特殊的参数的左边

LoadRunner 脚本编程规范

1、引言

本文档讨论的是如何转较为合理的制定LoadRunner脚本规范。其实是针对C语言

系统的编程规范,同样适用于LoadRunner的脚本编程,在工作流系统测试性能时,

合理管理脚本。

1、脚本命名规则原则

以下是我总结的规范原则,建议在Loadrunner脚本编程中一定遵守此规范。

A、程序缩进采用相同的风格,建议使用VuGen中默认的风格。

B、变量命名要规范,要建议所有的脚本遵守一套同样的命名规范。比如定义一个

整形变量:count;如果按一般的形式定义的话:int count; int icount; 加i,什么

样的字符代表什么样的变量类型;比如:float fcount; long lcount;这样当你的代

码上万行时,当你读到变量count时,你就可以根据它前面的字符,知道它是

什么类型换变量了,不用再云费事的找了,还有,譬如类变量Test是int的,

你可以定义成m_iTest,m_表示是类变量,i表示int。

C、变量(包括数组)在使用前一定前一定要经过初始化在做练习时已经有体会,

如果没有显示的初始化,就把变量当作值使用,脚本可能会出现问题的。

D、防止脚本运行过程中变量的溢出(overflow/underflow),LoadRunner脚本中的

变量也有具体的取值范围,如果使用不当也会发生溢出的,如int

test=2000000000就会发生上溢出,导致脚本运行错误。

E、一行最好只写一条语句,包括一行只声明一个变量。

F、在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、

之后或者前后要加空格,如不要写result=tmp1*tmp2;应该这样result=tmp *

tem2;文件操作结束后,要及时关闭文件句柄,如fclose(MyFile);

G、Switch case结构最好包含default, if最好包含对应的else。

H、函数功能尽量单一,降低函数之间的耦合性,方便以后的重用。

I、尽量少用全局变量,如果必须用,一定要加注释。

J、关键路径时要有注释,如switch case结构、if分支等最好有注释。

K、数组声明时要显式的标识大小

如最好不要这样声明:char TempArray[]=\”HP Mercurry\”;

2、举例说明

A、Script Name命名

如果命名三个用例,录好脚本后我把三个脚本命名如:项目名称1_S1_功能1_V1_080922

B、Action Name命名

我们在做脚本的时候也需要对Action Name进行命名,因为loadrunner是默认把Action 当作一个Transaction.所以在这里对其命名主要是在察看数据的过程中能将Action和包含在其中的Transaction好排序。我把Action的命名如下:S1_按照字母排序(A,B,C…)_项目名称1_功能名称1_V1_080922

C、Transaction Name命名

S1_A_操作1

S1_B_操作2

S1_C_操作3

S1_D_操作4

S1_E_操作5

如S1_A_打开登录网页

S1_B_登录

S1_C_点击查询

S1_D_显示查询结果

S1_E_ 登出

D、Result Name in Controller命名

项目名称_S1S2S3_stress_test_results_080922

这里是S1S2S3是这次测试你载入的是那些脚本。如果这次只测了S1,那就是:

项目名称_S1_stress_test_results_080922

E、HTML Report命名

该项目与Result Name in Controller相同。

F、Scenario命名

项目名称_S1S2S3_Stress_test_300Users_080922

同时在进行文档管理时,可以设立如下的文件结构。

项目1

Scripts

Scenaros

Results

Reports

然后将生成的各个文件存储在相应的文件夹中。

参考文献:

匈牙利命名法规则大全

高质量C++/C编程指南

Visual C++编程命名规则

LoadRunner脚本编写教程

LoadRunner生成脚本的方式有两种,一种是自己编写手动添加或嵌入源代码;一种是通过LoadRunner提供的录制功能,运行程序自动录制生成脚本。这两种方式各有利弊,但首选还是录制生成脚本,因为它简单且智能化,对于测试初学者来说更加容易操作。但是仅靠着自动录制脚本,可能无法满足用户的复杂要求,这就需要手工添加函数,进行必要的手动关联或在函数中进行参数化来配合,增强脚本的实用性。手写添加增强脚本的独特之处在于: 1.可读性好,流程清晰,检查点截取含义明确。业务级的代码读起来总比协议级代码更容易让人理解,也更容易维护,而且必要时可建立一个脚本库。而录制生成的代码大多没有维护的价值,现炒现卖。 2.手写脚本比录制的脚本更能真实地模拟应用运行。因为录制的脚本是截获了网络包,生成的协议级的代码,而略掉了客户端的处理逻辑。 3.手写脚本比录制脚本更能提高测试人员的技术水平。LoadRunner提供了Java user、VB user、C user等语言类型的脚本,允许用户根据不同的测试要求自定义开发各种语言类型的测试脚本。 增强脚本的好坏关系到这个脚本是否能在实际运行环境中更真实地进行模 拟操作。 至于具体使用哪种方式来生成脚本,还应该以脚本模拟程序的真实有效为准。例如,有些程序只需要执行迭代多次操作,没有特殊要求,选择自动生成的脚本就可以了;有些程序需要加入参数化方可满足用户的要求,此时应该使用增强的手工脚本。再就是结合项目进度、开发难易程度等因素综合考虑。 3.1 插入检查点 在进行Web应用的压力测试时,经常会有页面间数据传递的操作,如果做性能测试时传递次数逐渐增多,页面间就会发生传递混乱的情况,或者客户端与服务端数据传输中断或不正确的现象。为了解决这些问题,LoadRunner提供了在脚本中插入检查点的方法,就是检查Web服务器返回的网页是否正确。在每次脚本运行到此检查点时,自动检查该处的网页是否正确,省去执行结束后人工检查的步骤和时间,进而加快了测试进度。 插入检查点的方法,在工作原理上说就是在VuGen中插入“Text/Image”检查点。这些检查点验证网页上是否存在指定的Text或者Image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。VuGen在进行Web测试时,有“Tree View”和“Script View”两种视图方式。前面我们见到的一直都是“Script View”,但在插入“Text/Image”检查点时,使用“Tree View”(树视图)视图方式会比较方便。这种视图之间切换,可以通过菜单或者工具栏的方式进行,如图3-1所示。

loadrunner学习总结

Loadrunner学习总结 LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于各种体架构的自动负载测试,能预测系统行为并评估系统性能。操作流程如下: 1.录制脚本: 选择适当的协议,web服务器一般选择http协议。 录制方式一般选择HTML-based Script,但有下列情况选择URL-based Script:不是基于浏览器的应用程序,应用程序中包含javaScript脚本且产生了请求,基于浏览器的应用程序使用了https协议

默认设置记录的浏览器为IE,不要使用其他浏览器 在录制过程中不要后退页面 2.录制结束后点绿色方块按钮结束录制,系统会自动生成录制脚本。

3.录制完之后就是对脚本的回放处理,可以在运行时设置界面设置回放的设置, 如:迭代(重复次数)、步(开始新迭代时候的时间设置)、思考时间(录制时间的停留时间)等,设置好之后就开始回放。 4.回放结束后,回放的情况会显示出来,没有错误表示录制的进程没有问题。 5.负载测试运行

选择录制的脚本添加,然后确认。

可以在场景计划 可以在场景计划这里设置要测试的参数,比如开始用户数,持续时间,停止方式等。 如果想测定某个操作的响应时间,可以在脚本中插入事务,使用事务把该操作包装起来。分析执行结果的时候可以查看到该事务的响应时间。 插入集合点,可以使多个用户并发进行同一操作,提高操作的并发程度,以对服务器增加负载,测试并发能力。 在Run-Time Setting设置中,设置网络带宽以模拟不同带宽的网络;设置block、action的迭代次数。 对脚本进行参数化,设置参数变更方式

LoadRunner 操作技巧(个人经验总结)

Load Runner 相关概念解析 集合点 1)集合点用以同步虚拟用户以便恰好同一时刻执行任务。在没有性能测试工具 之前,要实现用户的并发是很困难的,最常见的方法就是把公司的所有或者部分员工召集起来,有一个同志喊123开始。然后大家一起提交数据。 2)Load Runner的集合点则可以完全实现用户的同步问题,而且可以模拟成千 上万的用户操作是轻而易举的事情。 3)集合点的设置方法 A.在录制过程中可以设置集合点。 B.在使用Load Runner的Controller进行负载时,可以通过依次选择【Scenario】>【Rendezvous…】项实现。 C.可以选择某个虚拟用户后单击enable rendezvous或disable rendezvous. 可以设置许启用或者禁止某个集合点. D.可以设置集合点策略,在Rendezvous information,点击Policy按钮。这个很重要。有三种情形。 E.在集合点设计策略窗体中也可以设计集合点释放比例。还可以设置Timeout between Vusers虚拟用户之间的超时间隔。一般默认是30秒。 可以根据实际情况进行设置。 事务 事务是要度量其服务器响应时间的任务或操作集。一个完整的事务由事务开始、事务结束以及一个或多个业务操作/任务构成。 重点提示 事务必须是成对出现,即一个事务有事务开始,必然要求有事务结束。 不要将Lr_think_time放在事务里,影响分析和统计,除非有特殊的情况需要这么做。 检查点 检查点的作用是在回放脚本期间搜索特定的文本字符串或者图片等内容,从而验证服务器响应内容的正确性。 添加检查点方法: 切换到脚本数视图,然后在左侧切换到“Server response”页,然后添加一个文本Add a Text check。也可以检查图片。P14 重点提示 检查点设置完成后,要保证检查点能使用,需要在Run Time settings –Preferences >Enable Image and Text check 复选框选上,否则的话检查点失效。

LoadRunner性能测试实战教程

LoadRunner性能测试实战讲解 内容介绍: 很多使用LoadRunner的测试人员经常面临两个难题:脚本开发与性能测试分析。本书就是基于帮助测试人员解决这两个问题而编写,致力于使读者学精LoadRunnner这一强大的性能测试工具。 全书共分为四部分:入门篇、基础篇、探索篇、实战篇。第一篇入门篇的内容包括第1章和第2章,着重于讲解性能测试与LoadRunner的基础理论知识。第二篇基础篇的内容包括第3章至第5章,是LoadRunner 的基本使用部分,着重讲解Virtual User Generator、Controller、Analysis的使用方法。第三篇探索篇的... 第1部分入门篇.. (1) 第1章性能测试基础知识.. 3 1.1 性能测试基本概念 (4) 1.1.1 什么是性能测试 (4) 1.1.2 性能测试应用领域 (6) 1.1.3 性能测试常见术语 (8) 1.2 全面性能测试模型 (11) 1.2.1 性能测试策略模型 (14) 1.2.2 性能测试用例模型 (17) 1.2.3 模型的使用方法 (20) 1.3 性能测试调整基础 (21) 1.4 如何做好性能测试 (24) 1.5 本章小结 (28) 第2章LoadRunner基础知识.. 29 2.1 LoadRunner简介 (29) 2.1.1 LoadRunner主要特点 (29) 2.1.2 LoadRunner常用术语 (31) 2.2 LoadRunner工作原理 (32) 2.3 LoadRunner测试流程 (33) 2.4 LoadRunner的部署与安装 (35) 2.5 本章小结 (41) 第2部分基础篇 (43) 第3章脚本的录制与开发.. 45 3.1 Virtual User Generator简介 (45)

LoadRunner常见问题分析及解决办法

LoadRunner常见问题分析及解决办法 2010-09-23 08:02 在运行脚本回放过程中,有时会出现错误,这在实际测试中是不可避免的,毕竟自动录制生成的脚本难免会有问题,需要运行脚本进行验证,把问题都解决后才加入到场景中进行负载测试。下面结合常用的协议(如Web、Web Services协议)录制的脚本进行回放时出现的问题介绍一下解决的方法。 需要注意的是,回放脚本时出现的错误有时是程序自身的原因导致的,因此在解决脚本回放问题前必须保证程序录制出的脚本是正确的。 1.LoadRunner超时错误:在录制Web协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同。 错误现象1:Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)。 错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner 中修改),客户端发送一个请求到服务器端,如果超过120秒服务器端还没有返回结果,则出现超时错误。 解决办法:首先在运行环境中对超时进行设置,默认的超时时间可以设置长一些,再设置多次迭代运行,如果还有超时现象,需要在“Runtime Setting”>“Internet Protocol:Preferences”>“Advanced”区域中设置一个“winlnet replay instead of sockets”选项,再回放是否成功。 错误现象 2:Action.c(81):Continuing after Error -27498: Timed out while processing URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/ subOrderQuery.do 错误分析:这种错误常常是因为并发压力过大,服务器端太繁忙,无法及时响应客户端的请求而造成的,所以这个错误是正常现象,是压力过大造成的。 如果压力很小就出现这个问题,可能是脚本某个地方有错误,要仔细查看脚本,提示的错误信息会定位某个具体问题发生的位置。 解决办法:例如上面的错误现象问题定位在某个URL上,需要再次运行一下场景,同时在其他机器上访问此URL。如果不能访问或时间过长,可能是服务器或者此应用不能支撑如此之大的负载。分析一下服务器,最好对其性能进行优化。 如果再次运行场景后还有超时现象,就要在各种图形中分析一下原因,例如可以查看是否服务器、DNS、网络等方面存在问题。 最后,增加一下运行时的超时设置,在“Run-Time Settings”>“Internet Protocol:Preferences”中,单击“options”,增加“HTTP-request connect

loadrunner常见问题及解决方法

loadrunner常见问题 1..关于loadrunner11录制脚本时IE打不开问 1、ie浏览器去掉启用第三方浏览器扩展 2、loadrunner11 键盘F4,在browser Emulation点击change,在弹出的提示框中Browser version 选择8.0,platform. 选择windows7 3、loadrunner11 键盘ctrl+F7在弹出的提示框中选择最后一项Correlation,将Enable correlation during recording 下面的勾全去掉,有需要的再勾 4、退出杀毒软件(金山啊360啊什么的都退了) 5、退出迅雷软件 6、计算机——属性——高级系统设置——性能里的设置——数据执行保护——选择“为除下列选定程序之外的所有程序和服务启用”——添加IE浏览器——应用——确定 1.2.controlle打开失败: controller一添加完脚本就崩溃了,报错:试读执行系统不支持的操作;Runtime error!c:\Program Files\hp\LoadRunner\bin\Wlrun.exe abnormal program termination。 解决方案:1.E:\Program Files (x86)\HP\LoadRunner\bin文件下将wlrun.exe文件删除,2.进入“我的电脑”下---控制面板\卸载或更改程序中---右击HP Loadrunner修复。 1.3.设置并发数: User generator tools—create controller scenario—number of vusers 1.4.Loadrunner11安装: 1. 安装完成后,退出loadrunner 2. 把下载的lm70.dll,mlr5lprg.dll 拷贝到../HP/Loadrunner/bin覆盖掉原来的 3. 使用注册表删除工具,点击deletelicense.exe 删除注册表信息 4. 再次打开loadrunner, configuration->loadrunner license->new license,在弹出的输入框中输入license序列号

精通软件性能测试与loadrunner实战

最新版LoadRunner性能测试实战 内容介绍: 很多使用LoadRunner的测试人员经常面临两个难题:脚本开发与性能测试分析。本书就是基于帮助测试人员解决这两个问题而编写,致力于使读者学精LoadRunnner这一强大的性能测试工具。 全书共分为四部分:入门篇、基础篇、探索篇、实战篇。第一篇入门篇的内容包括第1章和第2章,着重于讲解性能测试与LoadRunner的基础理论知识。第二篇基础篇的内容包括第3章至第5章,是LoadRunner 的基本使用部分,着重讲解Virtual User Generator、Controller、Analysis的使用方法。第三篇探索篇的... 第1部分入门篇.. (1) 第1章性能测试基础知识.. 3 1.1 性能测试基本概念 (4) 1.1.1 什么是性能测试 (4) 1.1.2 性能测试应用领域 (6) 1.1.3 性能测试常见术语 (8) 1.2 全面性能测试模型 (11) 1.2.1 性能测试策略模型 (14) 1.2.2 性能测试用例模型 (17) 1.2.3 模型的使用方法 (20) 1.3 性能测试调整基础 (21) 1.4 如何做好性能测试 (24) 1.5 本章小结 (28) 第2章LoadRunner基础知识.. 29 2.1 LoadRunner简介 (29) 2.1.1 LoadRunner主要特点 (29) 2.1.2 LoadRunner常用术语 (31) 2.2 LoadRunner工作原理 (32) 2.3 LoadRunner测试流程 (33) 2.4 LoadRunner的部署与安装 (35) 2.5 本章小结 (41) 第2部分基础篇 (43) 第3章脚本的录制与开发.. 45

LoadRunner设置检查点的几种方法介绍

LoadRunner设置检查点的几种方法介绍 前段时间在群里跟大家讨论一个关于性能测试的问题,谈到如何评估测试结果,有一个朋友谈到规范问题,让我颇有感触,他说他们公司每次执行压力测试的时候,都要求脚本中必须有检查点存在,不然测试结果将不被认可,这是他们公司的规范。其实,在做压力测试过程,我们很容易忽略很多东西,而且随着自身的技术演变,我们很容易去丢失掉一些很好的习惯,当我们再碰到这些问题的时候,我们才发现其实是我们太粗心大意了,所以说好的习惯要保持。这次我刚好也要接手一些性能工作,因此就如何规范设置检查点来谈谈一些基本的流程和方法。 使用LoadRunner做压力测试,大致如下几个流程: 1、明确测试目标 2、录制测试脚本 3、脚本优化、调试 4、场景运行 5、分析测试结果 当然这里都是概况性的标题,但从这里我们可以明确的是测试脚本是整个压力测试过程中的重点步骤,如果测试脚本都不能确保正确与否,后面的测试过程就无从说起了。很多时候我们把脚本调试就简单的认为是脚本回放没有错误就认为脚本是没有问题的,这当然不能这么肯定,脚本调试是一个非常严谨的过程,我大致归纳如下几步: 1、明确每一行脚本的作用,也就是说每一行脚本执行的功能是什么; 2、删减不需要的脚本语句,比如在录制过程由于LR默认设置导致录制之后出现很多冗余的脚本,这些个脚本对我们的测试过程没有用途的应该删除掉,至于哪些是冗余就要具体分析了,所以说脚本录制完之后要分析脚本运行的过程,方能理解脚本执行的用途,不然在后面施压时运行错误,就会开始到处找问题,而又找不出问题; 3、查找存在的关联并进行相关设置 4、设置检查点,设置检查点的目的就是为了验证页面每次运行之后是否正确,设置检查点的过程总要通过不能的回放来进行验证检查点设置是否正确。 5、通过测试目标明确脚本执行的目标事务,并添加事务; 6、对需要进行并打操作的功能设置集合点 7、根据实际情况设置ThinkTime 8、在以上所有脚本调试步骤完成之后,设置迭代次数,通过在V user中设置多次迭代来验证脚本在多次循环运行时是否存在错误 注意:在V user中运行和回放脚本的过程,要密切关注replay log,也就是回放日志,很多问题通常都暴露在回放日志中,只不过我们没有认真去检查,所以没发觉。因为大多数情况是我们在回放脚本之后只观察回放日志中有没有红色的错误提示信息,如果没有我们就认为我们的脚本是ok的,其实不然,很多时候一些隐藏的错误就在回放日志中可以被

Loadrunner脚本的录制与调试

Loadrunner脚本的录制 与调试

目录 Loadrunner简介 (3) 脚本的录制 (3) 选择协议 (3) 脚本结构 (4) 查看日志 (6) 脚本的回放 (7) 脚本中的关联 (8) 录制前关联(Correlation) (8) 录制后关联 (10) 手动关联 (11) 脚本中的参数化(Parameters) (13) 参数的创建 (14) 定义参数的属性 (19)

Loadrunner简介 LoadRunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。 LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个系统,它通过模拟实际用户的操作行为和实行实时性能监测,来更快的查找和发现问题。此外,LoadRunner能支持广泛的协议和技术,为特殊环境提供特殊的解决方案。 使用LoadRunner的Virtual User Generator,能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程,然后将其转化为测试脚本。 下面就来介绍一下LoadRunner是如何录制脚本的。 脚本的录制 VU通过录制用户在客户端软件的操作来直接生成脚本,用户的每个协议级的操作以LoadRunner的API函数方式记录在脚本里。回放脚本的时候,通过执行API函数来模拟最初用户的操作动作。 选择协议 根据客户端和服务器间的会话所使用的网络协议来选择使用何种协议录制脚本。当创建一个新的Vuser的时候,就会弹出协议选择对话框,如下图所示。

loadrunner性能脚本的常用设置

一、关于脚本 1.当脚本代码很长时,为了显示更清晰,可以在脚本中点击右键如下图,选择Expand All/Collapse All。脚本函数就会以“-”展开或“+”折叠。 2.快速定位日志: 在脚本中选择函数—>右键,选择Go to Step in Replay Log,就能在Replay Log中找到相应函数输出的日志。

3.快速定位代码行: 在脚本中点击右键,选择Go to Line,在弹出框中输入数字,即能定位到指定的代码行。 4.快速打开脚本文件所在位置: 在脚本中点击右键,选择Open Script Directory,即能打开脚本文件所在的文件夹。

5.插入断点: 在光标停留的代码行处,按下"F9",或通过下图操作。 6.单步调试:按下"F9",或通过下图操作。

二、通用页设置 通用页设置位置:VuGen—>Tools—>General Option 1.运行脚本时,函数间等待的时间间隔(单位毫秒)设置:操作如下图。 主要实现脚本减速运行。 2.修改脚本字体设置:操作见下图。 由于LR是英文版的,当有些字符显示有问题时(如“/”会显示成“¥”),可考虑设置该选项。

3.选择脚本比较工具设置:操作见下图。 如果不选,默认使用的是WinDiff工具。 4.回放时浏览器与脚本同步显示设置:操作如下图。

三、运行时设置 运行时设置位置:VuGen—>Vuser—>Run-time Settings,或打开脚本后直接按“F4” 1.脚本迭代次数设置:操作见下图。 每个脚本部分都可插入Actions、Block,但只有Run部分的属性可以修改运行的方式,主要用于控制Action间运行的顺序。

LoadRunner压力测试

LoadRunner压力测试

一、环境准备 优化操作系统(centOS) 1、执行命令 sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state sudo modprobe -r nf_conntrack 2、使用文本编辑器打开 /etc/sysctl.conf 修改net.ipv4.tcp_max_tw_buckets的值 net.ipv4.tcp_max_tw_buckets= 16000 修改nginx配置 (只在压力测试使用,测试完毕后恢复) 1、找到以下条目,修改值 proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; 2、修改 upstream 中的值 server 192.168.0.254:8003 max_fails=15 fail_timeout=160s weight=1 srun_id=03; jvm_route $cookie_JSESSIONID reverse; 修改 LEAP.xml (只在压力测试使用,测试完毕后恢复) 在RPCServices 节点中添加disablesid="true" 例: 修改项目登录页面 去除登录页面的图片验证码

二、Loadrunner安装之前 安装要求 1、Loadrunner(主控机和压力机)必须安装在windows2003 server 版本下 2、必须安装IE浏览器,建议为IE6版本,其他版本在脚本录制过程中会出现打不开IE的情况 安装虚拟光驱

脚本录制及优化 loadrunner

添加文本检查点-搜索 web_reg_find("Fail=NotFound", "Search=Body", "SaveCount=CHECK", "Text=Don't forget to sign off when\n" "you're done", LAST); 文本检查判定语句 if (atoi(lr_eval_string("{para_count}"))>0) //验证是否找到了页面上的要检查的字符串lr_output_message("we find the string!"); else lr_output_message("sorry,don't find the string!"); 用户名的日志输出: Lr_log_message(“用户名:%s”,lr_eval_string(“{username}”)); 脚本校验——检查点 数据分析: SD 标准偏差值 Transaction 场景 Init 初始化 Scale 比例 Additional 额外的 Granularity 间隔尺寸 Filters 筛选 throughout 吞吐量 Transaction summary 事务摘要

性能测试 递增 1、创建场景 分析: 问:事务相应时间先缓慢上升再平衡再下降说明什么? 答:缓慢上升说明事务响应时间变长说明系统处理能力在下降 再平衡并发用户数已经饱和 再下降并发用户数下降了 如果系统没有此类机制则响应时间不断上升直至宕机 Java 创建对象的时候不释放内存创建太多会导致该问题 问:业务失败情况但是其他的都正常 答:数据库可能被锁住,数据库有互斥性,需要修改数据库 系统要求 1、支持同时多少个并发登录? 2、登录响应时间不超过3秒 3、CPU使用率不应超过80% 4、内存使用率不应超过75% 关键指标分析: Transactions per Second 针对场景运行过程中的每个时间点取样一次,显示在这个时间点上的每个事务的通过、失败、停止的个数 我还在 Analysis 里面找了一下,发现图表的时间显示粒度也是可以设置的。具体方法为:在 图表上点击右键 -> 选择“ Set Granularity ”或者直接按Ctrl+G 。我试着把时间粒度调成以毫秒为单位,结果LoadRunner 提示当前不支持以毫秒为显示粒度,由此我推断LoadRunner 对于 Transactions perSecond 这张图,最小的取样粒度为1 秒

LoadRunner回放脚本失败

在运行脚本回放过程中,有时会出现错误,这在实际测试中是不可避免的,毕竟自动录制生成的脚本难免会有问题,需要运行脚本进行验证,把问题都解决后才加入到场景中进行负载测试。下面结合常用的协议(如Web、Web Services协议)录制的脚本进行回放时出现的问题介绍一下解决的方法。 需要注意的是,回放脚本时出现的错误有时是程序自身的原因导致的,因此在解决脚本回放问题前必须保证程序录制出的脚本是正确的。 1.LoadRunner超时错误:在录制Web协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同。 错误现象1:Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)。 错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送一个请求到服务器端,如果超过120秒服务器端还没有返回结果,则出现超时错误。 解决办法:首先在运行环境中对超时进行设置,默认的超时时间可以设置长一些,再设置多次迭代运行,如果还有超时现象,需要在“Runtime Setting”>“Internet Protocol:Preferences”>“Advanced”区域中设置一个“winlnet replay instead of sockets”选项,再回放是否成功。 错误现象2:Action.c(81):Continuing after Error -27498: Timed out while processing URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/ subOrderQuery.do 错误分析:这种错误常常是因为并发压力过大,服务器端太繁忙,无法及时响应客户端的请求而造成的,所以这个错误是正常现象,是压力过大造成的。 如果压力很小就出现这个问题,可能是脚本某个地方有错误,要仔细查看脚本,提示的错误信息会定位某个具体问题发生的位置。 解决办法:例如上面的错误现象问题定位在某个URL上,需要再次运行一下场景,同时在其他机器上访问此URL。如果不能访问或时间过长,可能是服务器或者此应用不能支撑如此之大的负载。分析一下服务器,最好对其性能进行优化。 如果再次运行场景后还有超时现象,就要在各种图形中分析一下原因,例如可以查看是否服务器、DNS、网络等方面存在问题。 最后,增加一下运行时的超时设置,在“Run-Time Settings”>“Internet Protocol:Preferences”中,单击“options”,增加“HTTP-request connect timeout” 或者“HTTP-request receive”的值。

使用LoadRunner进行压力测试

实验二. 使用LoadRunner进行压力测试一.LoadRunner 概要介绍 1.1简介 LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive 的LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。 1.2基本步骤 使用LoadRunner 完成测试一般分为四个步骤: 1)Vvitrual User Generator 创建脚本 ?创建脚本,选择协议 ?录制脚本 ?编辑脚本 ?检查修改脚本是否有误

2)中央控制器(Controller)来调度虚拟用户 ?创建Scenario,选择脚本 ?设置机器虚拟用户数 ?设置Schedule ?如果模拟多机测试,设置Ip Spoofer 3)运行脚本 ?分析scenario 4)分析测试结果 二.项目背景介绍 2.1 背景概述 “LMS网校考试平台”是一个典型的三层B/S架构的MIS系统(客户端/应用服务器/数据库管),中间层是业务逻辑层,应用服务器处理所有的业务逻辑,但应用服务器本身不提供负载均衡的能力,而是利用开发工具提供的ORB(对象请求代理)软件保证多个应用服务器间的负载均衡。本次测试的目的是:进行应用服务器的压力测试,找出应用服务器能够支持的最大客户端数。方法是:按照正常业务压力估算值的1~10倍进行测试,考察应用服务器的运行情况。 2.2压力测试用例 场景描述一: 1.用户登录的lmm模块,总共登陆24个用户,所有用户都同时并发操作。 2.用户点击“登记的教程” 3.用户点击“启动”,进行课程学习,进入DS模块 4.在DS模块中进行学习,过程包括:首先,点击一次课程结构树;然后,进行课程内容的学习。 5.点击“返回LMS”按钮,返回到lmm模块,点击“退出”按钮,退出系统 场景描述二:

LoadRunner 性能测试脚本

LoadRunner 性能测试脚本 1 概述 Yoyo老师认为脚本录制编写是性能测试的一个重要环节。在性能测试过程中,虚拟用户模拟真实用户使用被测系统, 这个“模拟”的过程正是通过性能测试脚本来实现的。因此,编写一个准确无误的脚本对性能测试有至关重要的意义。完成性能测试脚本包括两个步骤:脚本录制和脚本编写,本文重点关注脚本编写。 2 脚本录制 2.1.录制方式 HTTP协议脚本录制可选两种方式:基于HTML和基于URL。选择哪种录制方式的原则如下:基于浏览器的HTTP应用系统选择HTML,基于其他方式的HTTP应用系统选择URL。 2.2.录制注意点 取消录制期间自动关联功能; 如果部分测试脚本出现问题,需要重新录制,可以只录制存在问题的片断脚本,方法是不选中录制启动对话框中的Record the application startup。 3 脚本编写 3.1.常用技术 LoadRunner性能测试脚本编写常用的技术包括参数化,关联,逻辑控制和脚本模块化。 3.1.1.参数化 参数化就是将脚本中的常量转化为变量的过程。通过录制生成的脚本所有的数据都是常量,为了达到向服务器发送的数据多样化的目的,需要将一些数据常量转化为变量。 3.1.2.关联

关联就是查找动态数据,并把查询到的数据以参数的形式保存起来。在B/S 或者C/S系统中,服务器返回给客户端的数据有些是动态改变的,例如客服系统的人工来话流水号和工作流系统的工单流水号。当打开工单生成页面后,工单流水号已经从服务器端获取到了,而在提交工单步骤,需要将该流水号返回给服务器。因此,在提交工单之前,在脚本中必须获得流水号。获得流水号的方法就是关联。 使用关联功能动态保存的参数跟直接通过参数化生成的参数是一致的。唯一不同的是,通过参数化生成的参数在脚本中可以高亮显示。 3.1.3.逻辑控制 业务系统在实际应用中,业务操作步骤间往往存在逻辑。比如,客服3.0工作流系统,业务代表处理工单,如果待办区没有工单等待处理,则先从工单池中提取工单到待办区,然后进行处理,并且需要优先处理超时或即将超时的工单。在工单处理的性能测试脚本中,也必须遵从这种业务逻辑。 LoadRunner性能测试脚本采用C语言,因此脚本逻辑控制同C语言一致,使用if,switch,while/for/do控制结构。 3.1. 4.脚本模块化 脚本模块化的目的是:提高脚本可读性、可重用性和脚本生产效率。脚本模块化的本质是抽取函数,一些很通用的函数甚至可以封装为DLL。模块化性能测试脚本的思想跟自动化测试的ActionWord有相似之处。 例如:客服3.0系统的登录功能,无论是工作流、知识库、公告便签还是培训考试,它们都使用相同的登录页面。我们可以把登录脚本抽取为一个函数csp_login(char *staffno,char * password),需要登录操作时,不需要录制和拷贝脚本,只要调用这个函数就可以了。 注意:并不是所有的脚本代码块都需要做模块化处理,只有那些稳定不变、并且经常用到的代码块才需要做模块化处理。不做得不偿失的事。 3.2.典型函数 LoadRunner中,常用的函数有很多,这里只介绍编写性能测试脚本过程中那些必然用到的函数。本文重点关注这些典型函数的应用场合及注意点,至于函数详细使用说明请参见LoadRunner帮助文档。 3.2.1.事务相关 3.2.1.1. lr_start_transaction/lr_end_transaction

Loadrunner使用教程

LoadRunner使用教程 1. 了解LoadRunner 1.1 Loadrunner简介 LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢、系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive 的LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。 1.2 为什么应进行自动性能测试? 自动性能测试是一项规范,它利用有关产品、人员和过程的信息来减少应用程 序、升级程序或修补程序部署中的风险。自动性能测试的核心原理是通过将生产 时的工作量应用于预部署系统来衡量系统性能和最终用户体验。构造严密的性能 测试可回答如下问题: ?应用程序是否能够很快地响应用户的要求? ?应用程序是否能处理预期的用户负载并具有盈余能力? ?应用程序是否能处理业务所需的事务数量?

LoadRunner脚本录制方法

LoadRunner脚本录制方法 这篇文章性能测试工具LR进行简单介绍,LR的安装和如何录制简单的脚本并对录制好的脚本进行加压等内容,主要目的是让大家对LR有一个基本的了解,同时也掌握录制一个简单脚本的方法。 在学习过程中的问题可以在此帖中发帖询问,心得也可在此帖中跟帖进行交流,共同进步。如果有更好的资料希望可以贴到帖子中,共同分享。 Loadrunner的简介 LoadRunner? 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。 LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。 1.1 轻松创建虚拟用户 使用LoadRunner 的Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在Windows ,UNIX或Linux 机器上同时产生成千上万个用户访问。所以LoadRunner 能极大的减少负载测试所需的硬件和人力资源。另外,LoadRunner 的TurboLoad 专利技术能提供很高的适应性。TurboLoad 使您可以产生每天几十万名在线用户和数以百万计的点击数的负载。用Virtual User Generator 建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。LoadRunner 通过它的Data Wizard 来自动实现其测试数据的参数化。Data Wizard 直接连于数据库服务器,从中您可以获取所需的数据(如定单号和用户名)并直接将其输入到测试脚本。这样避免了人工处理数据的需要,Data Wizard 为您节省了大量的时间。为了进一步确定您的Virtual user 能够模拟真实用户,您可利用LoadRunner 控制某些行为特性。例如,只需要

LoadRunner11实例性能测试

LoadRunner11实例性能测试 1.LoadRunner8.1基础2 1.1术语2 1.2组件与测试流程2 2.生成脚本4 2.1应用程序要求4 2.1录制脚本5 2.2运行脚本7 2.3脚本优化8 2.3.1关联8 2.3.2参数化10 3.运行负载测试12 3.1生成负载12 3.2运行负载测试13 3.3运行视图概述14 4.分析结果16 4.1 Analysis 窗口概述16 4.2分析窗口数据17 4.2.1查看事务平均响应时间18 4.2.2 研究Vuser的行为19 5.一些体会23 1.LoadRunner11基础 1.1术语 ?场景:场景是一种文件,用于根据性能要求定义在每一个测试会话运行期间发生的事件。 ?Vuser:在场景中,LoadRunner 用虚拟用户或Vuser 代替实际用户。Vuser 模拟实际用户的操作来使用应用程序。一个场景可以包含几

十、几百甚至几千个 Vuser。 ?Vuser脚本:Vuser 脚本用于描述 Vuser 在场景中执行的操作。 ?事务:要度量服务器的性能,需要定义事务。事务表示要度量的最终用户业务流程。 1.2组件与测试流程 LoadRunner 包含下列组件: ?虚拟用户生成器:用于捕获最终用户业务流程和创建自动性能测试脚本<也称为虚拟用户脚本)。 ?Controller:用于组织、驱动、管理和监控负载测试。 ?负载生成器:用于通过运行虚拟用户生成负载。 ?Analysis:有助于查看、分析和比较性能结果。 ?Launcher:为访问所有 LoadRunner 组件的统一界面。 负载测试通常由五个阶段组成:计划、脚本创建、场景定义、场景执行和结果分析。 ?计划负载测试:定义性能测试要求,例如并发用户的数量、典型业务流程和所需响应时间。 ?创建 Vuser 脚本:将最终用户活动捕获到自动脚本中。 ?定义场景:使用LoadRunner Controller 设置负载测试环境。 ?运行场景:通过LoadRunner Controller 驱动、管理和监控负载测试。 ?分析结果:使用LoadRunner Analysis 创建图和报告并评估性能。

相关主题
文本预览
相关文档 最新文档