当前位置:文档之家› LoadRunner函数中文翻译

LoadRunner函数中文翻译

LoadRunner函数中文翻译
LoadRunner函数中文翻译

LoadRunner函数中文翻译系列之一--Action

web_url

语法:

Int Web_url(const char *name, const char * url, , [EXTRARES,,LAST)

返回值

成功时返回LR_PASS (0),失败时返回LR_FAIL (1)。

参数:

Name:VuGen中树形视图中显示的名称,在自动事务处理中也可以用做事务的名称。url:页面url地址。

List of Attributes

EXTRARES:分隔符,标记下一个参数是资源属性的列表了。

List of Resource Attributes

LAST:属性列表结束的标记符。

说明

Web_url根据函数中的URL属性加载对应的URL,不需要上下文。

只有VuGen处于URL-based或者HTML-based(此时A script containing explicit URLs only选项被选中时)的录制模式时,web_url才会被录制到。

可以使用web_url 模拟从FTP服务器上下载文件。web_url 函数会使FTP服务器执行文件被真实下载时的操作。除非手工指定了"FtpAscii=1",下载会以二进制模式完成。

在录制选项中,Toos—Recording Option下,Recording选项中,有一个Advanced HTML选项,可以设置是否录制非HTML资源,只有选择了“Record within the current script step”时,List of Resource Attributes才会被录制到。非HTML资源的例子是gif和jpg图象文件。

通过修改HTTP头可以传递给服务器一些附加的请求信息。使用HTTP头允许请求中包含其他的内容类型(Content_type),象压缩文件一样。还可以只请求特定状态下的web页面。所有的Web Vusers ,HTTP模式下的WAP Vusers或者回放模式下的Wireless Session Protocol (WSP),都支持web_url函数。

web_image

语法:

Int web_image (const char *StepName, , [EXTRARES, ,] LAST );

返回值

成功时返回LR_PASS (0),失败时返回LR_FAIL (1)。

参数:

StepName:VuGen中树形视图中显示的名称,在自动事务处理中也可以用做事务的名称。List of Attributes(服务器端和客户端映射的图片):SRC属性是一定会被录制到的,其他的ALT、Frame、TargetFrame、Ordinal则是有的话会被录制到。

1、ALT:描述图象的元素。用鼠标指向图象时,所浮出来的文字提示。

2、SRC:描述图象的元素,可以是图象的文件名. 如:button.gif。也可以使用SRC/SFX来指定图象路径的后缀。所有拥有相同此后缀的字符串都会被匹配到。

3、Frame:录制操作时所在的Frame的名称。

4、TargetFrame:见List of Attributes的同名参数。

5、Ordinal:参见Web_link的同名参数。

List of Attributes(客户端映射的图片):

1、AreaAlt:鼠标单击区域的ALT属性。

2、AreaOrdinal:鼠标单击区域的顺序号。

3、MapName:图象的映射名。

List of Attributes(服务器端映射的图片):尽管点击坐标不属于属性,但还是以属性的格式来使用。

1、Xcoord:点击图象时的X坐标。

2、Ycoord:点击图象时的Y坐标。

EXTRARES:分隔符,标记下一个参数是资源属性的列表了。

List of Resource Attributes:参见List of Resource Attributes一节。

LAST:属性列表结束的标记符。

说明

web_image模拟鼠标在指定图片上的单击动作。此函数必须在有前置操作的上下文中使用。在Toos—Recording Option,如果录制级别设为基于HMTL的录制方式时,web_image才会被录制到。

web_image支持客户端(client-side)和服务器端server-side的图片映射。

在录制选项中,Toos—Recording Option下,Recording选项中,有一个Advanced HTML选项,可以设置是否录制非HTML资源,只有选择了“Record within the current script step”时,List of Resource Attributes才会被录制到。非HTML资源的例子是gif和jpg图象文件。

通过修改HTTP头可以传递给服务器一些请求附加信息。使用HTTP头允许请求中包含内容,如同压缩文件一样。还可以只请求特定状态的web页面。

web_image支持Web虚拟用户,不支持WAP虚拟用户。

例子

下面的例子模拟用户单击Home图标以回到主页(黑体部分):

web_url("my_home", "URL=http://my_home/", LAST);

web_link("Employees", "Text=Employees", LAST);

web_image("Home.gif", "SRC=../gifs/Buttons/Home.gif", LAST);

web_link("Library", "Text=Library", LAST);

web_image("Home.gif", "SRC=https://www.doczj.com/doc/3f2898035.html,/gifs/buttons/Home.gif", LAST);

下面的例子模拟用户在客户端映射的图片上单击:

web_image("dpt_house.gif",

"Src=../gifs/dpt_house.gif",

"MapName=dpt_house",

"AreaOrdinal=4",

LAST);

下面的例子模拟用户在服务端映射的图片上单击:

web_image("The Web Developer's Virtual Library",

"Alt=The Web Developer's Virtual Library",

"Ordinal=1",

"XCoord=91",

"YCoord=17",

LAST);

下面是一个使用文件名后缀的例子:它指定了dpt_house.gif作为后缀,所以象../gifs/dpt_house.gif、/gifs/dpt_house.gif、gifs/dpt_house.gif、/dpt_house.gif等都会匹配到。web_image("dpt_house.gif","Src/sfx=dpt_house.gif", LAST);

web_link

语法:

Int web_link (const char *StepName, , [EXTRARES, ,] LAST );

返回值

成功时返回LR_PASS (0),失败时返回LR_FAIL (1)。

参数:

StepName:VuGen中树形视图中显示的名称,在自动事务设置中也被用做事务名称。List of Attributes:支持下列的属性:

1. Text:超链接中的文字,必须精确匹配。

2. Frame:录制操作时所在的Frame的名称。

3. TargetFrame、ResourceByteLimit:见List of Attributes一节。

4. Ordinal:如果用给出的属性(Attributes)筛选出的元素不唯一,那么VuGen使用此属性来指定其中的一个。例如:“SRC=abc.gif”,“Ordinal=3”标记的是SRC的值是“abc.gif”的第3张图片。

EXTRARES:表明下面的参数将会是list of resource attributes了。

LAST:结尾标示符。

说明

模拟鼠标在由若干个属性集合描述的链接上进行单击。此函数必须在前置动作的上下文中才可以执行。

web_link 仅仅在基于HTML的录制方式中才会被VuGen捕捉到。

非HTML生成的资源的例子有.gif 和.jpg图像。对于List of Resource Attributes参数来说,仅仅当Recording Options--Recording --HTML-based script-- Record within the current script step选项被选中时,它们才会被插入到代码中。

可以通过改变HTTP头信息给服务器传递一些附加信息。使用HTTP头信息可以,允许响应体中包含其他的内容类型(Content-Type),例如压缩文件,或者只有满足了特定的状态才去请求web页。

此函数值支持Web虚拟用户,不支持WAP虚拟用户。

web_submmit_form

语法:

Int web_submit_form (const char *StepName, ,

返回值

成功时返回LR_PASS (0),失败时返回LR_FAIL (1)。

参数:

StepName:Form的名字。VuGen中树形视图中显示的名称,在自动事务处理中也可以用做事务的名称。

List of Attributes:支持以下属性:

1. Action:Form中的ACTION属性,指定了完成Form中的操作用到的URL。也可以使用

“Action/sfx”表示使用此后缀的所有Action。

2. Frame:录制操作时所在的Frame的名称。

3. TargetFrame、ResourceByteLimit:见List of Attributes的同名参数。

4. Ordinal:参见Web_link的同名参数。

VuGen通过记录数据域唯一的标识每个Form。如果这样不足以识别Form,VuGen会记录Action 属性。如果还不足以识别,则会记录Ordinal 属性,这种情况下不会记录Action属性。List of Hidden Fields:补充属性(Serves)。通过此属性可以使用一串隐含域来标识Form。使用下面的格式:

STARTHIDDENS,

"name=n1", "value=v1", ENDITEM,

"name=n2", "value=v2", ENDITEM,

ENDHIDDENS,

List of Data Fields

Data项用来标识form。Form是通过属性和数据来共同识别的。

使用下面的格式来表示数据域列表

"name=n1", "value=v1", ENDITEM,

"name=n2", "value=v2", ENDITEM,

ITEMDATA:Form中数据和属性的分隔符。

EXTRARES:一个分隔符,标记下一个参数是资源属性的列表了。

List of Resource Attributes:参见List of Resource Attributes一节。

LAST:属性列表结束的标记符。

说明

web_submit_form 函数用来提交表单。此函数可能必须在前一个操作的上下文中执行。在Toos—Recording Option,只有录制级别设为基于HMTL的录制方式,web_image才会被录制到。

在录制选项中,Toos—Recording Option下,Recording选项中,有一个Advanced HTML选项,可以设置是否录制非HTML资源,只有选择了“Record within the current script step”时,List of Resource Attributes才会被录制到。非HTML资源的例子是gif和jpg图象文件。

通常情况下,如果录制了web_submit_form 函数,VuGen会把“name”和“value”一起录制到ITEMDATA属性中。如果不想在脚本中以明文显示“value”,可以对它进行加密。把“Value”改为“EncryptedValue”,然后把录制到的值改为加密后的值。

例如:可以把"Name=grpType", "Value=radRoundtrip", ENDITEM

改为:"Name=grpType", EncryptedValue=409e41ebf102f3036b0549c799be3609", ENDITEM

如果你完整的安装了LoadRunner,那么打开开始菜单--Mercury LoadRunner—Tools--Password Encoder,这个小工具是用来加密字符串的。把需要加密的值粘贴到Password一栏,再点Generate按钮。加密后的字符串会出现在Encoded string框中。接着点Copy按钮,然后把它粘贴到脚本中,覆盖原来显示的“Value”。

加密的另一种方法时使用lr_decrypt函数。方法:选择整个字符串,例如“Value=radRoundtrip”(注意不要选择引号),右击鼠标,选择Encrypt string选现,脚本会变为:

"Name=grpType", lr_decrypt("40d176c46f3cf2f5fbfaa806bd1bcee65f0371858163"), ENDITEM, web_submit_form支持Web虚拟用户,不支持WAP虚拟用户。

例子:

下面的例子中,web_submit_form 函数的名字是“employee.exe”。此函数提交了一个请求,此请求包含雇员信息John Green。此函数没有使用属性(Attributes)是因为通过数据项

已经能唯一的标识这个Form了。

web_submit_form("employee.exe",

ITEMDATA,

"name=persons", "value=John Green - John", ENDITEM,

"name=go_page", "value=Go to Page", ENDITEM,

LAST);

web_submmit_data

语法:

Int web_submit_data ( const char *StepName, , ITEMDATA, , [ EXTRARES, ,] LAST );

返回值

返回LR_PASS(0)代表成功,LR_FAIL(1)代表失败。

参数:

StepName:步骤名称,VuGen中树形视图显示的名称。

List of Attributes:支持以下属性:

1. Action:Form中的ACTION属性,指定了完成Form中的操作用到的URL。

2. Method:表单提交方法:POST或GET(默认是POST)。

3. EncType:编码方式。

4. EncodeAtSign:是否使用ASCII值对符号“@”编码。Yes或者No。

5. TargetFrame:包含当前链接或资源的Frame。参见List of Attributes的同名参数。

6. Referer、Mode:参见List of Attributes的同名参数。

ITEMDATA:数据域和属性的分隔符。

List of Data:

数据域列表定义了表单提交的内容。由于此请求是上下文无关的,因此数据域包含了所有的隐含域。使用Form的编码规则组织数据域。

数据域列表可以使用下面任意一种格式:

"name=n1", "value=v1", ENDITEM,

"name=n2", "EncryptedValue=qwerty", ENDITEM,

EXTRARES:分隔符,标记下一个参数将是资源属性的列表。

List of Resource Attributes:参见List of Resource Attributes。

LAST:结束标记符。

说明

web_submit_data函数处理无状态或者上下文无关的表单提交。它用来生成表单的GET或POST请求,这些请求与Form自动生成的请求是一样的。发送这些请求时不需要表单上下文。当VuGen设为基于URL的录制模式,或者基于HTML的录制方式但是Recording Options—HTML Advanced 下的A script containing explicit URLs only 选项被选中时,web_submmit_data 函数才会录制到。

不论你采用URL查询的方式(GET),还是采用请求体发送(POST)的方式,此函数都指示出Form中的数据是如何发送到服务器的。

如果VuGen处于HTTP录制模式下,此时记录Web进程时,会产生此函数。在提交Form时,如果无法生成web_submit_form函数,VuGen也会生成web_submit_data函数。

在录制选项中,Toos—Recording Option下—Recording选项中,有一个Advanced HTML选项,可以设置是否录制非HTML资源。只有选择了“Record within the current script step”时,List

of Resource Attributes才会被录制到。非HTML资源的例子是gif和jpg图象文件。EncType属性给出一个内容类型,指定其做为“Content-Type”请求头的值。它指示了根据参数生成HTTP请求时使用的编码类型(不是URL-encoding就是multi-part)可以是下面的格式:

1. “EncType=application/x-www-form-urlencoded”

2. “EncType=multipart/form-data”(任何的“; boundary=”都会被默认忽略掉)

3. “EncType=”(空串,表明没有产生内容类型(“Content-Type”)请求头)

任何对于“EncType”的指定都会覆盖web_add_[auto_]header函数指定的Content-Type。当省略了“EncType”时,任何一个web_add_[auto_]header函数都会起作用。如果既没有指定EncType也没有web_add_[auto_]header函数,且“Method=POST”,“application/x-www-form-urlencoded”会做为默认值来使用。其他情况下,不会产生Content-Type请求头。

ContentType:文件类型标识符,如果“EncType”是“multipart/form-data”用来上传文件时,需要用到“ContentType”。当在ITEMDATA中的Data子句中指定了“File=Yes”,且文件也在此子句中,ContentType才适用,此时它会作为同一个子句的值来传递。

正常情况下,“Content-Type”根据所上传文件的扩展名自动生成。例如:

7d025e2b16b064e\r\n Content-Disposition: form-data; name="uploaded_file"; filename="D:\\temp\\a.txt"\r\n Content-Type: text/plain\r\n \r\n

无论如何,对于非浏览器的程序来说是特殊的,根据文件类型生成的“ContentType”不一定是正确的。这时,通过手工指定来覆盖默认的“ContentType”。如果指定了空值,那么“Content-Type”头将不包含在文件中。

如果没有显示的指定“ContentType”的值,当上传的文件为空时,不管文件扩展名是什么,都默认使用“application/x-unknown-content-type”做为”ContentType”的值。

VuGen不会检查指定的ContentType是否有效。

通常情况下,如果录制了web_submit_data 函数,VuGen会把“name”和“value”一起录制到ITEMDATA一节中。如果不想在脚本中以明文显示“value”,可以对它进行加密。把“Value”改为“EncryptedValue”,然后把录制到的值改为加密后的值。请参考web_submit_form中相关的内容。

所有的Web虚拟用户,运行在HTTP模式下的WAP用户,运行在WSP回放模式下的WAP 用户都可以使用本函数。

例子

下面的例子中,web_submit_data函数使用POST方法提交了一个表单。

web_submit_data("default.aspx",

"Action=http://lazarus/flightnet/default.aspx",

"Method=POST",

"TargetFrame=",

"RecContentType=text/html",

"Referer=http://lazarus/flightnet/",

"Snapshot=t7.inf",

"Mode=HTML",

ITEMDATA,

"Name=grpType", "Value=radRoundtrip", ENDITEM,

"Name=lstDepartingCity", "Value=DEN", ENDITEM,

"Name=lstDestinationCity", "Value=LAX", ENDITEM,

"Name=txtDepartureDate", "Value=8/19/2003", ENDITEM,

"Name=txtReturnDate", "Value=8/19/2003", ENDITEM,

"Name=txtQuantity", "Value=1", ENDITEM,

"Name=radClass", "Value=1", ENDITEM,

"Name=radSeat", "Value=1", ENDITEM,

"Name=btnAvailableFlights", "Value=Next >", ENDITEM,

LAST);

下面的例子,web_submit_data函数使用POST方法提交了2个文件。

web_submit_data("Attachments",

"Action=http://barton.cottage@https://www.doczj.com/doc/3f2898035.html,/Attachments?YY=45434",

"Method=POST",

"EncType=multipart/form-data",

"TargetFrame=",

"RecContentType=text/html",

"Referer=http:///barton.cottage@https://www.doczj.com/doc/3f2898035.html,/Compose?YY=20435",

"Snapshot=t5.inf",

"Mode=HTML",

ITEMDATA, "Name=userFile0",

"Value=E:\\sense_sensibility\\Elinor.txt",

"File=yes",

"ContentType=text/html", // 覆盖了文本文件默认的“text/plain”值。

ENDITEM,

"Name=userFile1",

"Value=E:\\sense_sensibility\\Marianne.jpg",

"File=yes",

ENDITEM,

LAST);

web_custom_request

语法:

Int web_custom_request (const char *RequestName, , [EXTRARES, ,] LAST );

返回值

返回LR_PASS(0)代表成功,LR_FAIL(1)代表失败。

参数:

RequestName:步骤的名称,VuGen中树形视图中显示的名称。

List of Attribute:支持的属性有以下几种:

1. URL:页面地址。

2. Method :页面的提交方式,POST或GET。

3. TargetFrame:包含当前链接或资源的frame的名称。参见List of Attributes的同名参数。

4. EncType:编码类型。

5. RecContentType:响应头的内容类型。参见List of Attributes的同名参数。

6. Referer:参见List of Attributes的同名参数。

7. Body:请求体。参见List of Attributes的同名参数。

8. RAW BODY:参见List of Attributes的同名参数。

9. BodyFilePath:作为请求体传送的文件的路径。它不能与下面的属性一起使用:Body,或者其他Body属性或Raw Body属性包括BodyBinary,BodyUnicode,RAW_BODY_START或Binary=1。

10. Resource、ResourceByteLimit、Snapshot、Mode:参见List of Attributes的同名参数。

11. ExtraResBaseDir:参见List of Attributes的同名参数。

12. UserAgent:用户代理,它是一个HTTP头的名字,用来标识应用程序,通常是浏览器,它呈现的是用户和服务器的交互。

例如:头信息“User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”识别的是Window NT下的IE浏览器6.0。其他的User-Agent的值用来描述其他的浏览器,或者非浏览器程序。通常,一个应用程序中所有的请求都使用相同的用户代理,录制者作为一个运行时参数来指定(Run-Time Setting—Browser Emulation—User Agent)。不管怎么说,即使是在一个简单的浏览器进程中,仍有可能会用到直接与服务器交互的非浏览器组件(例如ActiveX 控件),通常他们有着不同于浏览器的用户代理属性。指定“UserAgent”表示这是一个非浏览器的请求。指定的字符串被HTTP头“User-Agent:”使用,在某些情况下,它同时会影响回放脚本时的行为。例如,不使用浏览器缓存,假设指定的URL属于资源等等。LoadRunner本身不检查指定的字符串与浏览器本身的值是否相同。

13. Binary:“Binary=1”表示页面请求体中的每一个以\\x##形式出现的值(在这里“##”代表2个十六进制数字),都会被替换为单字节的十六进制的值。

如果“Binary=0”(默认值),所有的字符序列只是按照字面的值传递。

需要注意双斜杠的用法。在C编译器中双斜杠被解释为单斜杠。如果不需要零字节,单斜杠可以在Binary不等于1的情况下使用(例如,使用\x20代替\\x20)。如果需要零字节,那么只能使用\\x00且设置“Binary=1”,\x00在逻辑上会被截断。

14. ContentEncoding

指定请求体的使用指定的方式(gzip或者deflate)进行编码(例如,压缩),相应的“Content-Encoding:”HTTP头会和此请求一起发送。这个参数适用于web_custom_request 和web_submit_data。

EXTRARES:表明下面的参数将会是List Of Resource Attributes了。

LAST :结尾的标示符。

List of Attributes

FtpAscii:“1”使用ASCII模式处理FTP操作;"0" 使用二进制模式。

TargetFrame:当前链接或资源所在Frame的名称。除了Frame的名字,还可以指定下面的参数:

_BLANK:打开一个空窗口。

_PARENT:把最新更改过的的Frame替换为它的上级。

_SELF:替换最新更改过的的Frame。

_TOP:替换整个页面。

RecContentType:录制脚本时响应头的内容类型。例如text/html、application/x-javascript 等。当没有设置Resource属性时,用它来确定目标URL是否是可记录的资源。此属性包含主要的和次要的资源。最频繁使用的类型是text、application、image。次要的类型根据资源不同变化很多。例如:"RecContentType=text/html":表示html文本。"RecContentType=application/msword":表示当前使用的是Msword。

Referer: 当前页面关联的页面。如果已经显式指定了url的地址,此项可以省略。

Resource:指示URL是否属于资源。1 是;0 不是。设置了这个参数后,RecContentType参数被忽略。“Resource=1”,意味着当前操作与所在脚本的成功与否关系不大。在下载资源时如果发生错误,是当作警告而不是错误来处理的;URL是否被下载受“Run-Time Setting—Browser Emulation--Download non-HTML resources”这个选项的影响。此操作的响应信息是不做为HTML来解析的。“Resource=0”,表明此URL是重要的,不受发送请求(RTS)的影响,在需要时也会解析它。

ResourceByteLimit:web页面下载资源的极限大小。当达到设置的极限后,无法下载其他资源。仅仅对需要下载的资源有效。

下载过程:如果总计下载大小小于极限值,则正常开始下载。如果当下载时达到了设置的极限值,资源大小可知(在HTTP响应头中指定了Content-Length),这中情况下,如果只需要一个缓冲区,那么下载可以正常完成。如果需要的不止一个缓冲区,或者资源大小不可知,下载就会中断同时关闭当前连接。

这个特性可以用来模拟用户不等待一个页面下载完成时导航到另一个页面的情况。ResourceByteLimit 在HTTP模式中无法使用,在Concurrent Groups(Vuser脚本中的一个区,此区中的所有函数并发执行)区中也无法使用。仅仅适用于Sockets的回放,WinInet也是不适用的。

Snapshot:快照的文件名,关联时使用。

Mode:两种录制级别HTML、HTTP。

HTML级别:在当前Web界面上录制直观的HTML动作。以一步步的web_url、web_link、web_image、web_submit_form来录制这些动作。VuGen仅仅录制返回HTML页面的请求,不处理脚本和应用程序。

HTTP级别:VuGen把所有的请求录制为web_url指令,不生成web_link、web_image、web_submit_form这些函数。这种方法更为灵活,但是生成的脚本不够直观。ExtraResBaseDir(目前仅适用与web_custom_request函数):根URL,放在EXTRARES组里。它是用来解析相对URL的(译者加:类似于Windows的相对路径和绝对路径)。

URL可以是绝对路径(例如https://www.doczj.com/doc/3f2898035.html,/weather/forecast.jsp?locCode=LFPO),也可以是相对路径(例如“forecast.jsp?locCode=LFPO”)。

真正的URL的下载是通过绝对路径进行的,所以相对URL路径必须使用根路径URL去解析。例如,使用https://www.doczj.com/doc/3f2898035.html,/weather/做为根路径来解析“forecast.jsp?locCode=LFPO”,最后的URL是:https://www.doczj.com/doc/3f2898035.html,/weather/forecast.jsp?locCode=LFPO。如果没有指定“ExtraResBaseDir”,默认的根URL是主页面的URL。

Body(目前仅适用与web_custom_request函数):请求体。不同的应用中,请求体分别通过Body、BodyBinary或者BodyUnicode参数来传递。请求体可以只使用其中一个参数,也可以使用一连串的分开的参数组成多请求体。例如:

web_custom_request(

……

"BodyUnicode=REPRICE"

"BodyBinary=\\x08\\x00\\xCC\\x02\\x00\\x00"

"Body=.\r\n"

"-dxjjtbw/(.tp?eg:ch/6--\r\n",

LAST);

在上面的代码中,使用了3个参数来划分请求体,一个是Unicode段,一个是二进制段,最后一个是常规的字符串。最终的请求体是这3个参数按照在函数中的顺序连接起来的值。还有一个很少用到的参数,Binary。它也能描述二进制请求体,但只允许函数中只有一个请

求体参数。

所有的请求体都是ASCII字符,以null结束。

Body:表示规则的,可打印的字符串。无法表示空字节。所有的字符都以一个反斜杠表示。注意:在旧的脚本中,可以看见不可打印的字符在请求体中以16进制方式进行编码。(例如“\\x5c”),在这种情况下,必须使用“Binary=1”来标识。空字节使用"\\00"来表示。相反,新脚本则会把把请求体分开放在不同的参数中("Body=...", "BodyBinary=...", Body=...")。BodyBinary :表示二进制代码。不可打印的字符在请求体中以16进制方式\\xHH进行编码。在这里HH 表示十六进制值。空字节使用"\\00"来表示。

BodyUnicode:美国英语,特指拉丁UTF-16LE(little-endian)编码。这种编码方式会在在每个字符末尾附加一个0字节,以便使字符更可读。但是在VuGen中实际的参数把所有的0字节都去掉的。但是在发送给Web 服务器之前, web_custom_request函数会重新添加0字节的。对于不可打印的字符,使用单反斜杠表示,无法表示空字节。

注意:如果请求体大于100K,会使用一个变量来代替Body参数。变量是在lrw_custom_body.h 中定义的。

Raw Body(目前仅适用与web_custom_request函数):请求体是作为指针传递的,此指针指向一串数据。二进制的请求体可以使用BodyBinary 属性来发送(或者使用Body 属性来传递,前提是必须设置"Binary=1" )。无论如何,这种方法需要使用转义字符反斜杠把不可打印的字符转换为ASCII字符。为了能有一种更简便的表现原始数据的方式,Raw Body属性应运而生,可以传递指向二进制数据的指针。

使用4个连续的参数集来表示指针,而且必须按照顺序排列:

RAW_BODY_START

指向数据缓冲区的指针

(int)长度

RAW_BODY_END

例子:

char *abc= .../* a pointer to the raw data */

web_custom_request("StepName",

"URL=http://some.url ",

"Method=POST",

RAW_BODY_START,

"abc",

3,

RAW_BODY_END,

LAST);

在应用中,即使设置了数据的长度为0,指针也必须有值,不能为空。

在“Binary=1”时,不能使用上面的语法传递原始数据。

数据缓冲区中的数据不能使用参数化。也就时说,缓冲区中的任何参数(例如"{MyParam}")不能被正确的替代为相应的值,只会以字面值发送。

List of Resource Attributes

Web页面中的非HTML机制产生了资源列表,包含了Javascript, ActiveX, Java applets and Flash所请求的资源。VuGen's 的Recording 选项中,可以设置把这些资源录制在当前的操作中(默认是此设置)还是作为单独的步骤来录制。

支持以下资源:

要加载的web资源的url。

Referer

关联的url。

ENDITEM

每个资源的结束标记

相对于把每个资源都录制为单独的步骤来说,不录制非HTML元素使脚本更加简短和可读,特别是在VuGen的Tree视图下更为突出。

当VuGen录制过程中发现附加的资源(比如JS)时,会以列表的形式加到附加资源项中。回放脚本时,这些资源文件也是请求的一部分。可以对一些按规则变化的资源使用关联。

LoadRunner函数中文翻译系列之二--Check

web_find

语法:

int web_find (const char *StepName, , char *searchstring, LAST );

参数:

1、StepName:步骤名称,在Tree视图中出现。

2、Attributes and Specifications list:

支持的属性有:

Frame:在多Frame的情况下,定义要查找Frame的范围。

Expect:定义在什么情况下函数检查成功:找到了指定的搜索标准或者没有找到。例如说,可以检查指定的错误信息是否出现在web页面中。合法的值有2个:found和notfound。默认值是“found”。

Matchcase:指定搜索是否区分大小写。

Repeat:指定当第一次发现要查找的字符串时,搜索是否继续。当一个web页面中包含多个被查找的字符串时,此参数是非常有用的。合法的值有2个:yes,no。默认值是“yes”。Report:指定在什么情况下,VuGen在执行日志中显示此函数的检查结果。合法的值有:success,failure,always。默认值是“always”。

Onfailure:此参数决定在函数检查失败后,Vuser是否中断。参数值是abort。如果指定了Onfailure=abort,当函数检查失败时,不论在运行时设置中的error-handling是什么,脚本都会中断。

如果没有指定Onfailure=abort,那么运行时设置中error-handling将会起作用。

支持的特性有:RightOf, LeftOf (不支持7.x及更高版本)。

RightOf:要查找的字符串右边的内容。

LeftOf:要查找的字符串左边的内容。

3、Searchstring:需要查找的字符串,格式为“What=stringxyz”。此搜索不区分大小写。

4、LAST:属性列表结束符。

整型。成功时返回LR_PASS(0),失败时返回LR_FAIL (1)。

说明

此函数的作用是在HTML页面中查找指定的字符串。

此函数只能在基于HTML录制的脚本中使用。当指定的HTML请求全部完成以后,开始执行搜索过程,比web_reg_find要慢。

web_find函数在C语言的脚本中已经被web_reg_find所替代,web_reg_find运行速度比较快,而且在HTML-based和URL-based的录制方式中都可以使用。在C语言脚本中,web_find 是向后兼容的。Java和Visual Basic脚本中不再支持它。

运行在HTTP模式下的WAP用户都和运行在WSP回放模式下的WAP用户都不支持此函数。web_global_verification

语法:

int web_global_verification (, LAST );

参数:

List of Attributes:

1、Text:此属性是一个非空的,以NULL结尾的字符串,表示要查找的内容。语法是”Text=string”。还可以使用text flags自定义字符串。

2、TextPfx:没有指定Text的情况下使用此属性。要查找的字符串的前缀。语法是”TextPfx =string”。还可以使用text flags自定义字符串。

3、TextSfx:没有指定Text的情况下使用此属性。要查找的字符串的后缀。语法是”TextSfx =string”。还可以使用text flags自定义字符串。

4、Search:可选项,在哪里查找字符串。可选的值是:Headers,Body,NORESOURCE或All。默认值是NORESOURCE。语法是“Search=value”。

5、Fail:当字符串找不到时的处理选项:Found (默认值)或NotFound。Found表示当找到对应的字符串时发生了错误(例如“Error”)。NotFound表示当找不到字符串时发生了错误。语法是“Fail=value“。

6、ID:在日志文件中标识当前函数。

LAST:属性列表结束符。

注:text flags:/IC表示忽略大小写;/BIN表示指定的是二进制数据。

返回值

整型。成功时返回LR_PASS(0),失败时返回LR_FAIL (1)。

说明

web_global_verification属于注册函数,注册一个在web页面中搜索文本字符串的请求,与web_reg_find只在下一个Action函数中执行搜索不同的是,它是在之后所有的Action类函数中执行搜索的。可以搜索页面的body,headers,html代码或者是整个页面。

在检测一些应用程序级别(不通过http状态码来表现)的错误时,web_global_verification 是非常有用的。如果要定位通过HTTP状态码表现的错误时,使用web_get_int_property。

查找范围:all:这个HTML页面;Headers:页面的头;body:页面的体,包含所有的资源但不包含头;NORESOURCE(默认选项):仅仅包含页面的体,把包括头和资源。

如果不知道要查找的精确的文本,或者要查找的多个文本不是完全相同的,可以使用前缀和后缀来表示。这时需要用到TextPfx和TextSfx属性。这2个属性必须同时指定,一旦指定了其中一个,就不能指定Text属性了。

注意:web_global_verification在WAP协议下不能运行。

web_image_check

语法:

int web_image_check(const char *CheckName, , <"Alt=alt"|| "Src=src">, LAST );

参数:

1、CheckName:名称,在Tree视图中出现。

2、List of Attributes:

支持的属性有:Frame(在多Frame的情况下,定义要查找Frame的范围)。

支持的选项有:expect, matchcase, repeat, report, onfailure。

Tip:选项跟属性的区别,大部分选项都只允许设置预定义的值,其他的值都是无效的。

3、Alt:检查图象的ALT标记。不允许空值。

4、Src:检查图象的SRC标记。不允许空值。

5、LAST:参数列表结束的指示符。

返回值

整型。

说明

web_image_check检查指定的图象是否在HTML页面中出现。

Alt或者Src两者必须有一个在参数列表中出现。如果两项都通过,那么检查成功。

此函数仅仅支持基于HTML的脚本。

web_reg_add_cookie

语法:

int web_reg_add_cookie(const char * cookie, const char * searchstring, LAST );

参数:

1、Cookie:定义需要增加或修改的Cookie。

Cookie的参数格式为:=VALUE; (required);domain=DOMAIN_NAME;(required);expires=DATE;path=PATH;(default path is "/");secure。

此参数中的cookie元素和HTTP响应头中的Set-Cookie是相同的。例如“Session=1234;domain=https://www.doczj.com/doc/3f2898035.html,”,在这里,“Session”是cookie的名称。

2、Searchstring:要查找的文本字符串。字符串不能为空,以null结尾。格式为“Text=string”。

3、LAST:属性列表的结束符。

返回值

整型。成功时返回LR_PASS(0),失败时返回LR_FAIL (1)。

说明

web_reg_add_cookie是注册类型的函数。它首先注册一个搜索文本字符串的请求。检查动作在后续的Action函数之后进行。如果字符串被找到,就添加到cookie中。

需要注意,尽管web_reg_add_cookie在功能上跟HTTP Set_Cookie头相似,它们还是有个明显的区别。根据HTTP标准,domain属性在Set-Cookie头中是可选的。如果没有指定,默认的domain的值是产生cookie的服务器的host name。当使用web_reg_add_cookie函数时,服务器的hostname对于压力测试的机器来说是不可用的,所以domain属性是必选项。

此函数在HTML-based 和URL-based的脚本中都可以使用。(参照录制选项的录制标签页)。此函数是在服务器内容到达客户端之前注册搜索请求的,所以当所请求的内容一到就会执行

搜索操作,脚本会比较高性。

web_reg_add_cookie是用户手动添加的,无法录制。

web_reg_find

语法:

int web_reg_find (const char *attribute_list, LAST);

参数:

1、attribute_list:

通过Name=Value对来传递参数。例如“Text=string”。Text,TextPfx,TextSfx三个必须有一个出现。其他的属性是可选的。

a) Text:要搜索的字符串,字符串必须非空,以NULL结尾。可以使用text flags自定义搜索字符串。

b) TextPfx:要搜索的字符串的直接前缀。

c) TextSfx:要搜索的字符串的直接后缀。

d) Search:搜索的范围。可选的值是:Headers 、Body(在请求体中搜索)、Noresource (仅仅在HTML请求体中搜索,不包括头和资源)、ALL (在请求体、头和资源中搜索),默认值是“BODY”。

e) SaveCount:匹配的个数。

f) Fail:设置函数检查在什么状态下失败。

g) ID:日志文件中标识此函数的一个字符串。

h) RelFrameId:相关联的FrameId。注意:此参数在GUI级别的脚本中不受支持。

2、LAST:属性列表结束的标记符。

返回值

整型。成功时返回LR_PASS(0),失败时返回LR_FAIL (1)。

说明

web_reg_find属于注册函数,注册一个在web页面中搜索文本字符串的请求,在接下来的Action(象web_url)类函数中执行搜索。

通过查找期望的字符是否存在来验证是否返回了期望的页面。例如,通过查找“Welcome”来检查主页是否完全打开了。也可以查找“Error”检查浏览器是否发生错误。还可以使用此函数注册一个请求来统计特定字符串出现的次数。

如果检查失败,在接下来的Action类的函数中会报告错误。此函数仅仅注册请求,并不执行。函数的返回值只表明注册是否成功,并不表示检查的结果。

此函数不仅能够查找text,还能查找到围绕着text的strings。不要同时指定text和前缀后缀。Fail,处理选项,可以是“Found或“NotFound”。默认是“NotFound”。

“Fail=Found”指示当对应的字符找到时,函数检查失败。例如,查找单词“Error”,如果找到了,说名web请求没有成功,你想把函数检查设置为失败。

“Fail=NotFound”指示当对应的字符找不到时,函数检查失败。如果查找的是web请求成功时出现的字符串时,需要使用NotFound。

SaveCount参数指示保存到参数中的匹配的字符串的个数。使用这个属性,需要指定“SaveCount=param”。检查操作被执行后,param 的值是null结尾的数字类型的值。

如果指定了SaveCount,且没有使用Fail参数,检查不会失败,无论需要查找的字符串是否找到。通过检查SaveCount的值确定字符串是否被找到。如果param是0,说明没有找到对应的字符串。

如果同时指定了SaveCount和Fail,指定的错误处理选项和SaveCount协同工作。

handlingoption specified works together with the SaveCount. Thus,如果指定了SaveCount且指定了“Fail=NotFound”,但是字符串被找到,SaveCount被赋值为字符串出现的次数,检查成功。如果字符串找不到,SaveCount被赋值为0,检查失败(注意,参数的0值只在运行时设置中Continue on error 选中时才有意义)。

此函数在HTML-based和URL-based的脚本中都可以使用。此函数是在所请求内容到达之前注册搜索请求的,所以当所请求内容一到达后就会执行搜索,产生的脚本比较高效。

LoadRunner函数中文翻译系列之三--Concurrent Group

web_concurrent_start

语法:

int web_concurrent_start ( [char * ConcurrentGroupName,] NULL );

参数:

ConcurrentGroupName:可选的,并发组的标识符。

NULL:参数列表结束的标记符。

返回值

整型。返回LR_PASS (0)表示成功,返回LR_FAIL (1)表示失败。

说明

web_concurrent_start函数是并发组开始的标记。组中所有的函数是并发执行的。并发组的结束web_concurrent_end 函数。在并发组中,可以包含的函数有:web_url、web_submit_data、web_custom_request、web_create_html_param、web_create_html_param_ex、web_reg_save_param、web_add_header。

在并发组中的函数不是立即执行的。在并发组开始时,所有的函数首先被记录下来,当并发组结束时,所有的函数并发执行。

所有的Web 用户,HTTP模式下的WAP用户持本函数。运行在Wireless Session Protocol(WSP)回放模式下的WAP虚拟用户,不支持本函数。

web_concurrent_start

语法:

int web_concurrent_end ( reserved );

参数:

reserved:保留的供扩展的字段。

返回值

整型。返回LR_PASS (0)表示成功,返回LR_FAIL (1)表示失败。

说明

web_concurrent_end,并发组结束的标记。脚本执行时,碰到web_concurrent_end函数时,开始并发执行所有记录的函数。

在并发组中的函数不是立即执行的。在并发组开始时,所有的函数首先被记录下来,当并发组结束时,所有的函数并发执行。

可以并发执行的函数的个数是有限制的,使用运行时设置-Netword标签页的Concurrent Connection来设置。

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使用手册 测试中心刘艳会 1 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 直接

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进阶指南

3.9事务 3.9.1响应时间 事务是指用户在客户端做一种或多种业务所需要的操作集,通过事务函数可以标记完成该业务所需要的操作内容;另一方面事务可以用来统计用户操作的响应时间,事务响应时间是通过记录用户请求的开始时间和服务器返回内容到客户时间的差值来计算用户操作响应时间的,如图3.159 所示。 图3.159事务响应时间计算方式这里的响应时间不包含客户端 GUI 时间(例如浏览器解释页面所消耗的 时间)。 前面说响应时间是服务器返回和用户请求发出之间的时间差,那么得到这个时间就够了吗? 例如:现在有一场跑步比赛。当比赛完成后,可以得到每位运动员跑完整个比赛所需要消耗的时间,现在需要分析谁的起跑好、谁的冲刺好,能分析出来吗?答案是不能,虽然得到了最重要的完成比赛的响应时间,但是这对分析和优化几乎没有作用,因为只知道了结果而不知道过程。跑步的时间是由起跑、中途、冲刺等时间组成的,如果想要进行分析优化,必须先了解各个阶段所花费的时间和速度以及各个运动员的优缺点。 对于软件来说,通过事务得到的系统响应时间也是由非常多的部分组成的,一般来说响应时间由网络时间、服务器处理时间、网络延迟三大部分组成。先来看看当一个客户端发出请求到服务器返回需要经历哪些路径,如图3.160所示。

图3.160事务响应时间组成 1.网络时间 客户端发出请求首先通过网络来到Web Server 上(消耗时间为N1);然后Web Server 将处理后的请求发送给App Server (消耗时间为N2);App Server 将操作数据指令发送给Database (消耗时间为N3);Database 服务器将查询结果数据发送回App Server (消耗时间为N4);App Server 将处理后的页面发给Web Server (消耗时间为N5);最后Web Server 将HTML 转发到客户端(消耗时间为N6)。这里的N x 都是网络传输上的时间开销,没有计算业务处理所需要花费的时间。 2.服务器处理时间 另外一个方面还要考虑各个服务器处理所需要的时间WT 、AT 、DT 。 3.网络延迟 除了上面两种时间开销以外,还要考虑网络延迟的问 题。 所以最终的响应时间组成为:响应时间=网络延迟时间+WT+AT+DT + (N1+N2+N3)+(N4+N5+N6)+WT+AT+DT 也可以简单认为响应时间由网络开销(前端)和服务 器端开销(后端)两大部分组成,如图3.161所示。那么这些消耗的时间都花在什么事情上了呢?影响网络的因素一般包括以下内容:1.前端Network ?DNS Lookup ?Time to connect ?Time to first buffer ?Network Time ?Download Time ?SSL handshake ?FTP authentication ?Client Time 图3161事务响应时间组成详解

Loadrunner使用教程

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

LoadRunner错误及解决方法总结

LoadRunner错误及解决方法总结 1. error:missing newline in d:\loadrunner\name.dat 场景执行时报error:missing newline in d:\loadrunner\name.dat 第二次执行不报 两个解决办法: 第一:如果参数不是很多的话,不要打开记事本去编辑参数,就直接在LR提供的参数的表格中进行编辑即可。 第二:如果参数很多超过100条的话。在记事本中编辑好了之后,记着在最后一个参数后打个回车,让鼠标的光标移动到下一行。 2.load generator is currently running the maximum numb er of vuser of this type 使用的是loadrunner8.0,有10000个用户的web的license,global的有10个。在测试的时候发现running vuser到达1000以后就不能再提高,后面的vuser 就会出错。错误是 “The load generator is currently running the maximum number of vuser of this type”. 已经可以排除是load generator机器本身资源的问题。因为换了性能比较强的酷睿2还是同样的问题,CPU和memory都有空闲。 解决办法:在load generator中有一个Vuser limits tab,可以设置running user 的最大数目。即设置load generator----Details------Vuser limits ----Other Vusers 的最大参数。 3. ERROR-26374及ERROR-26377错误no match found for the requested parameter ”Siebel_Analytic_search_id2”.check whether the requested boundaries exist in the response data. 如果初期或脚本单独回放时即出现此错误,则可能是关联问题: 1.首先看下脚本中有没有使用了自动关联(web_reg_save_param) 2.在Virtual的脚本里查询下web_reg_save_param的参数使用位置,然后把这个参数化给还原回来。 如果初期没这个错误,或脚本单独回放时没有问题,而是压力越大错误率越高的话,怀疑是服务器反馈不及时,或反馈信息错误,或丢包了。导致LR没有从反馈信息中得到这个值。 Error -26609: HTTP Status-Code=503 (Service Unavailable) for "https://www.doczj.com/doc/3f2898035.html,:8090/logon.cfm"引起的原因解释: 一、如果出现“Service Unavailable”的提示,刷新几下又可以访问。

Loadrunner 11的使用

一.录制脚本 1.创建一个新的脚本 2.File->New 3.选择协议 LoadRunner支持多种协议,主要是通过类似插件的dll文件实现的,HTTP协议的解析是通过api_http-filter.dll库文件实现的 New Single Protocol Script 新建单协议脚本 指我们所有录制的对象只使用唯一的一种协议 New Multiple Protocol Script 新建多协议脚本 指我们所有录制的对象使用不止一种协议的情况 New Script Recent Protocol 使用最近使用过的协议新建脚本 指我们所有录制的对象使用最近使用过的协议 选中New Single Protocol Script中的Web[HTTP/HTML]协议,点击Create

4.点击Start Record开始录制 Application type应用程序类型 Internet Applications是指我们要录制的对象是一个网络应用(B/S) Win32 Applications是用来支持Win32的标准客户端的(C/S) Program to record要录制的程序:我们需要录制的程序名,Loadrunner默认支持的Web客户端是IE URL Address URL地址:我们录制开始所需要访问的URL地址,也就是我们第一个请求所需要访问的 页面。 Working directory工作目录:用来指定录制后脚本所存储的目录 Record into Action录制到操作:我们录制的内容放在哪个Action中。注:Action是loadRunner提供 的一种类似于函数的脚本块,我们通过将不同的脚本块放在不同的Action中 实现代码的高内聚低耦合 Vuser_init存放LoadRunner中用户的初始化操作

软件测试实验报告LoadRunner的使用

南昌大学软件学院 实验报告 实验名称 LoadRunner的使用 实验地点 实验日期 指导教师 学生班级 学生姓名 学生学号 提交日期 LoadRunner简介: LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。LoadRunner是目前应用最为广泛的性能测试工具之一。 一、实验目的

1. 熟练LoadRunner的工具组成和工具原理。 2. 熟练使用LoadRunner进行Web系统测试和压力负载测试。 3. 掌握LoadRunner测试流程。 二、实验设备 PC机:清华同方电脑 操作系统:windows 7 实用工具:WPS Office,LoadRunner8.0工具,IE9 三、实验内容 (1)、熟悉LoadRunner的工具组成和工具原理 1.LoadRunner工具组成 虚拟用户脚本生成器:捕获最终用户业务流程和创建自动性能测试脚本,即我们在以后说的产生测试脚本; 压力产生器:通过运行虚拟用户产生实际的负载; 用户代理:协调不同负载机上虚拟用户,产生步调一致的虚拟用户;压力调度:根据用户对场景的设置,设置不同脚本的虚拟用户数量;监视系统:监控主要的性能计数器; 压力结果分析工具:本身不能代替分析人员,但是可以辅助测试结果的分析。 2.LoadRunner工具原理 代理(Proxy)是客户端和服务器端之间的中介人,LoadRunner 就是通过代理方式截获客户端和服务器之间交互的数据流。 ①虚拟用户脚本生成器通过代理方式接收客户端发送的数据包,

loadrunner常见错误解决方法

1.Error -27727: Step download timeout (120 seconds)has expired when downloading resource(s). Set the “Resource Page Timeout is a Warning” Run-Time Setting to Yes/No to have this message as a warning/error, respectively 处理方法: Run-Time Setting ------ Internet Protocol ------ Preferences ------Option ------ Step download timeout(sec)改为32000 A、应用服务参数设置太大导致服务器的瓶颈 B、页面中图片太多 C、在程序处理表的时候检查字段太大或多 Error -27728: Step download timeout (120 seconds)的解决方法 语法检查通过,但是在并发执行一个查询时候报错Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)设置了runt time setting中 的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项, 选项后再回放就成功了。 2.Action.c(7): Error -27791: Server “192.168.1.77″ has shut down the connection prematurely 解决方案如下:

《LoadRunner中文使用手册完全版》

LoadRunner操作入门 案例介绍: 测试Tomcat自带的一个jsp提交表单的性能。 测试页面如下: 输入一个数字后,点击提交,执行程序后返回页面:

测试步骤 第一步:录制脚本 从程序菜单中启动“LoadRunner”->“Visual User Generator” 在协议选择框中选择“Web(HTTP/HTML)”协议,进入主界面。 在工具条上选择“Start Record”,弹出启动“Start Recording”对话框。 在URL输入框中输入上述要测试的第一个页面的URL,即输入表单的页面。 同时注意,请让“Record the application startup”选择框失效,以便手工控制录制开始的时间,跳过刚开始的输入页面。 点击“OK”,这是LoadRunner会启动浏览器,并指向第一个输入页面,同时在浏览器窗口上方将出现一个“Recording Suspended…”的工具条窗口。 等待输入页面显示完全以后,点击工具条窗口中的“Record”按钮,进入录制状态,从现在 开始,在打开的浏览器上的所有操作将被录制成测试的脚本。

执行预定的表单提交动作,等结果页面显示完整以后,点击工具条上的黑色方框按钮,停止录制,回到Visual User Generator的主窗口,此时可以看到脚本已经录制成功。 选择“File”->“Save”,把当前的脚本保存下来 第二步:生成测试场景 选择菜单“Tools”->“Create Controller Scenario”,弹出“Create Scenario”对话框,保持缺省值不变,直接点击“OK”,唯一可能需要该的就是测试结果文件生成的路径。 这时,将启动LoadRunner的另一个工具“Controller”,这是执行压力测试的环境。 Controller的主界面有“Design”和“Run”两个Tab组成,可以随时切换,首先进入的是Design界面,在这里可以调整运行场景的各种参数,如果只是作强度测试,唯一需要调整 就是并发用户数,如下图所示:

loadrunner学习入门到精通 常见问题解决方法(七)

第七课LoadRunner常见问题解决方法 一.V uGen的问题 1.使用LoadRunner如何打开不同的浏览器录制? 答:录制时点击Start Record打开录制选择浏览器和地址页面如下图 然后选择要默认打开的浏览器。不设置时,默认打开Internet浏览器。 2.LoadRunner打不开火狐浏览器如何解决? 答:当有一天机器安装了好多浏览器时的时候,我们打不开浏览器怎么办,可以进入浏览器选项,切换到高级标签,去掉“第三方浏览器扩展”选项(去后要重启),然后再次运行vugen即可。 注:使用LoadRunner时要关闭杀毒软件。 3.录制的脚本有乱码如何解决? 答:这是要重新进行录制,但在录制前要在recording options---advanced—surport charset 里选中UTF—8即可。 4.解决在web窗体中有Java script脚本时,不能再tree view视图中显示的方法? 答:将tools—generdl options—correlation—enable scripting and Java applets on snapshots viewer选中即可。 5.录制时的注意事项 (1)脚本中设置了检查点,要选中proforances—checks—enable image and text check 的操作。 (2)集合点要和事务结合使用,集合点只能插入到action部分,vusers_init和vusers_end中不能插入集合点。 6.一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时, 如果进行回放则只能成功迭代一次。为什么从第二次迭代开始发生错误?

LoadRunner通用函数详解(中文)

脚本运行相关 lr_get_vuser_ip 作用 获取虚拟用户IP。 返回值 成功,返回虚拟用户的IP指针; 失败,返回NULL. 参数 无 例子 Action() { char *ip; ip = lr_get_vuser_ip(); if (ip) lr_output_message("The IP address is %s", ip); else lr_output_message("IP spoofing disabled"); } lr_vuser_status_message 作用 该函数将消息发送到消息到vuser状态区域,同时还将该字符串发送到vuser日志返回值 成功,0;

失败,-1说明事务名称非法或者没有调用lr_start_transaction 参数 (格式化输出) 例子 lr_vuser_status_message( "We are on iteration #%s", lr_eval_string( "{iteration}" ) ); lr_continue_on_error 作用 指定错误处理的方法 返回值 无 参数 (int value) 0:取消出错继续执行设置 1:发生错误继续运行脚本 2:发生错误跳至下个Action运行 3:发生错误跳至下一迭代来运行 4:发生错误结束当前用户 例子 //对于夜间执行的场景(一般会打开Continue on error选项)。一些非关键业务,则需要通过lr_continue_on_error (1)开启Continue on error选项,这样即使遇到错误也不会影响脚本的继续执行。但是对于关键业务,就需要关闭该项,使一些关键业务在出错时能够停止执行。//反之,如果在Run-time Settings中没有勾选Continue on error项,则应该通过组合使用lr_continue_on_error (1)与lr_continue_on_error (0)来使一些非关键业务发生错误后继续执行 Action() { …… ……

loadrunner使用步骤说明

一、LoadRunner的下载,安装与破解 .ddooo./softdown/61971.htm https://www.doczj.com/doc/3f2898035.html,/softjc/71256.html// 这是安装篇 二、LoadRunner在Web项目上的使用 1.新建一个Web(HTTP/HTML):File---->new New single Protocol Script :选择一个协议 New Multiple Protocol Script :选择多个协议 New Script recent Protocol :选择最近使用的协议 2.点击Start Record开始录制

Application type :选择程序类型。包含两个选项,Internet Applications 一般指B/S的系统,也就是通过浏览器访问的系统;Win32 Applications 一般C/S 的系统,也就是本地的应用程序,如QQ Program to record :选择启动程序的路径,如果是本地程序(C/S),就找到程序的启动程序。(这个暂时没有使用过) 如果是B/S的体统找到IE浏览器的安装路径。如: C:\Program Files (x86)\Internet Explorer\iexplore.exe 。 默认为Microsoft Internet Explorer,最好手动指定IE浏览器的安装路径。 URL Address :如果是B/S的系统,请输入要访问的网址(如果访问本机,要用127.0.0.1代替localhost,如127.0.0.1:8080/ssh)。如果是C/S则为空。 Working directory :工具目录,也就是分析信息的保存路径。Record into Action :将录制结果放到Action里面 3.点击Options

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性能测试指标参考

性能测试指标参考 目录 1术语 (2) 1.1响应时间 (2) 1.2并发用户数 (2) 1.3在线用户数 (2) 1.4吞吐量 (3) 2 Vuser图 (3) 2.1 “运行Vuser ”图(Running Vusers) (3) 2.2 “集合”图(Rendezvous) (3) 3 错误图 (3) 3.1 “每秒错误数(按描述)”图(Error Statistics) (3) 4 事务图 (4) 4.1 “平均事务响应时间”图(Average Transaction Response Time) (4) 4.2“负载下的事务响应时间”图(Running Vuser –Average Transaction Response Time) (4) 4.3“页面细分”图(Web Page Diagnostics图) (5) 4.4“每秒事务数”(Transactions per second 简称:TPS) (6) 5 Web资源图 (6) 5.1“每秒点击次数”图(Hits per Second) (6) 5.2“吞吐量”图(Throughput) (6) 6 系统资源图 (6) 6.1 LoadRunner下监控的UNIX资源指标 (6) 6.1.1平均负载(Average load) (6) 6.1.2 CPU利用率(CPU utilization) (7) 6.1.3 每秒传入的包数(Paging rate) (7) 6.2使用NMON工具监控Linux资源 (7) 6.2.1 系统资源汇总(SYS_SUMM) (7) 6.2.2 磁盘资源汇总(DISK_SUMM) (8) 6.2.3 内存资源(MEM) (8) 7 网络监控器图 (9) 7.1 “网络延迟时间”图(Network Delay Time) (9) 8 数据库服务器资源图 (10) 8.1 Oracle服务器监控度量 (10) 8.1.1 添加Oracle自定义计数器 (11) 8.1.2 性能分析工具Statspack所提供的性能分析指标 (15) 8.2 SQL Server服务器监控度量 (18)

如何对Loadrunner脚本进行参数化

如何对脚本进行参数化 在录制程序运行地过程中,脚本生成器自动生成由函数组成地用户脚本.函数中参数地值就是在录制过程中输入地实际值.参数化是编辑脚本最重要地一部分之一. 对用户脚本进行参数化有两大优点: .可以减少脚本地大小和脚本数量,借助参数化我们可以减少脚本地数量,如果不进行参数化我们为了达到目标可能要拷贝并修改很多个脚本. .可以使用不同地数值来测试你地脚本,使业务更接近真实地客户业务,每个虚拟用户使用不同参数值来模拟这样才接近客户地实际情况. 如何进行参数化: 参数化包含以下两项任务:.参数地创建,即在脚本中用参数取代常量值.. 定义参数地属性以及设置其数据源.值得注意地是,参数化仅可以用于一个函数中地参量.不能用参数表示非函数参数地字符串.另外,不是所有地函数都可以参数化地. 一、参数地创建 创建参数可以指定名称和类型来创建.不存在对脚本中参数个数地限制.在程序地用户脚本中,你可以使用如下过程在基于文本地脚本视图中创建参数.或者,也可以在基于图标地树形视图中创建参数. 通过以下步骤在基于文本地脚本视图中创建一个参数: 、将光标定位在要参数化地字符上,点击右键.打开弹出菜单. 、在弹出菜单中,选择" ".选择或者创建参数地对话框弹出. 、在" "中输入参数地名称,或者选择一个在参数列表中已经存在地参数. 、在" "下拉列表中选择参数类型. 、点击"",关闭该对话框.脚本生成器便会用参数中地值来取代脚本中被参 数化地字符,参数用一对"<>"括住. 注意:在参数化或者用户脚本地时候,必须参数化整个字符串,而不是其中地部分.另外注意:除了或者,缺省地参数括号对于任何脚本都是"<>".你可以在" "对话框中地""标签(> )中定义参数括号种类. 、用同样地参数替换字符地其余情况,选中参数,点击右键,弹出菜单.从弹出地菜单中,选择" ".搜索和替换对话框弹出." "中显示了你企图替换地值." "

LoadRunner性能测试软件的基本使用步骤

LoadRunner性能测试软件的基本使用步骤 一. 1、测试脚本录制 1.1录制前准备工作 在录制脚本前需检查压测环境的整体功能是否正确,待测部分的功能是否正确,只有确定功能正确后才可进行压测。 1.2录制及调试脚本 在准备工作OK后,进行脚本的录制,具体过程如下: 打开“开始>程序>MercuryLoadRunner>MercuryLoadRunner”测试脚本录制; 2、点击“Create/EdirScripts”,也可在“File”下选择New 新建。 3、选择Web(HTTP/HTML)协议,我们测试的是B/S模式,采用的是Web协议,选择后点【OK】按钮。 4、点击界面中的录制按钮,这个表示开始录制脚本点。 录制前,如果已经打开待测页面的话,建议关闭该页面。点【OK】后,同时会出现这表示现在已经开始录制。 5、所有操作完成后,点击中停止按钮,停止录制,页面将自动关闭,返回到loadrunner录制界面,将在界面中显示录制脚本代码,保存录制的脚本。 6、调试代码并进行参数化 录制后的代码需要进行调试才可用于压测,调试的办法就是进行

回放操作,如果回放过程无错误,运行结果也正确的话,则可用于压测。 二.设计测试场景 在脚本录制完成,调试通过后,可以进行测试场景的设计。 1.打开“开始>程序>MercuryLoadRunner >MercuryLoadRunner” 2.点击的RunLoadTests;在新建场景的窗口,选择一种场景类型。 3.选择要进行场景设计的脚本,若没有出现需要对应的脚本,可点击Browse查找后添加进来,选择好脚本后,点add则可加入到右边的窗口中然后点【OK】。 4.显示的是脚本的路径与并发数个数,根据测试方案中的并发 数可更改此处的并发数。 Eg:假如我们设计的场景是每15秒增加2个,所有并发数增加完后持续运行5分钟,5分钟运行结束后,每30秒减少5个并发。 5.再点击页面右下角的“Run-timeSettings” 。 6.一切设置OK后,点击运行测试场景。 三.测试结果分析 1.场景执行结束后可以,使用loadrunner自带的分析工具进行结果分析。 2.在菜单栏中选择打开,找到要分析的场景执行结果,点【打开】即可,还可以直接在场景运行结束后,点击Controller菜单栏

loadrunner录制脚本常见错误

LoadRunner脚本录制常见问题整理 LoadRunner脚本录制常见问题整理 1.LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。 启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题 提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。因此建议运行LoadRunner得主机上保持一个干净的测试环境。 2.录制Web脚本时,生成的脚本中存在乱码该如何解决? 录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,然后选择中支持UTF-8。再次录制,就不会出现中文乱码问题了。 3.HTML-based script与URL-based script的脚本有什么区别? 使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。 通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。 4.为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行? 由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。要想开启检查功能,必须修改运行时的配置Run-time Setting。 进入“Run-time Setting”对话框,依次进入“Internet Protocol→Preferences”,勾选Checks下的“Enable Image and text check”选项即可。 检查执行结果时推荐使用web_reg_find方法。

小布老师对初学LoadRunner朋友的建议

摘要:随着Internet的普及与迅速发展,企业业务量的迅速加大,数据大集中成为一种趋势,IT系统承载的负荷越来越重,系统性能的好坏严重的影响了企业对外提供的服务质量.从而对IT系统的性能进行测试和调优引起企业的重视,进而性能测试工程师成为IT市场的”香悖悖”,并且性能测试有着极高的技术挑战.于是吸引了大量的测试爱好者来学这方面的技术,而一谈到性能测试很多人便会想到鼎鼎大名的Load Runner这款优秀的性能测试工具,然而到这里问题就产生了? Load Runner与性能测试的关系:Load Runner初学者的误点:把Load Runner神化了.很多初学Load Runner的朋友认为掌握了使用Load Runner这款性能测试工具,就能够做性能测试了.常在网上看到好多人在学习怎么去使用这款优秀的性能测试工具,本来学习怎么去使用Load Runner这个工具没有错,却把Load Runner神化了,”天真的”以为它什么都能做,以为学会了Load Runner的使用就能做性能测试了.尽管用了大量的时间学会了如何使用Load Runner录制脚本,如何进行关联,如何进行参数化,如何设置集合点等等?可到头来,性能测试还是不会做.为什么?对于产生的性能报告不知道怎么去分析?不知道如何利用得到的分析报告分析出系统存在的瓶颈?不知道如何进行性能调优?像这些事光会使用Load Runner是做不到的?说白了Load Runner只是我们做性能测试的一个工具,它并不是万能的,是死的,具体怎么做还得依靠人去操作与分析.会使用Load Runner的人,并不一定会做性能测试,会做性能测试的人并不一定都会使用Load Runner。Load Runner只是一个性能测试工具而已.我们应该意识到,测试工具只是性能测试中的一部分,仅是为达到性能测试目的而采用的一种手段 性能测试与系统性能的关系:高性能,高安全的系统,不是测试出来的,而是构架,设计,编写出来的.当然在这里我并不否认性能测试的重要性,甚至可以说没有经过性能测试的系统,一定不会是优秀的系统,软件是人开发出来的,而人总是会出错的,所谓智者千虑,必有一失……要想做好性能测试,在软件系统需求,设计,编写代码的这些阶段就应该进行性能测试,而不仅仅是系统测试这个阶段才去做性能测试,性能测试应该贯穿于整个软件开发周期中. 对初学Load Runner朋友的建意:常看到网上一些网友发贴子问,怎么对性能测试产生的结果进行分析?测试系统时怎么去选择合适的协议?对于发这些贴子的人我想请问你?你能够详细的说下HTTP协议吗?TCP建立连接和释放连接的过程是怎样进行的?什么是协议?协议是用来做什么的?在OSI参考模型中各层的作用?数据库中产生并发的冲突的原因?不要太依赖于Load Runner工具本身的学习,而去忽略计算机其它基础知识的学习,我们更应该去掌握一门编程语言,良好的网络基础知识,计算机原理与操作系统知识,数据库知识.这些是我们去学习怎么去使用Load Runner前提与基础。 1 为什么要掌握一门编程语言 其一,大家在使用Load Runner时常会遇到一些不能录制脚本的情况发生,或者需要录制一些复杂的脚本,这时候我们就必须手动的开发脚本.其二Load Runner虽然强大,易于使用,可是它却属于商业软件,价格昂贵,并且代码不开源,我们无法了解Load Runner具体的实现细节,甚至我们会怀疑Load Runner收集的性能数据准确吗?它又是如何实现的等等,而这些我们通过Load Runner的帮助文档无法得知.性能测试工具并不只有Load Runner,做性能测试还有许多优秀的性能测试工具可以选择,像JMeter,Curl-Loader等等这些非常优秀的开源工具,在全能上虽然并不上Load Runner,但在某些方面却比Load Runner还要强大.例如Curl-Loader 这个工具,它虽然支持的协议不多,但是对于http协议它最高能产生10万的并发用户,这是Load Runner远远所不及的.并且这些工具代码是公开的,我们能够从这些代码中去分析具体实现的细节,并且还可以自已编写代码,增强软件的功能,这也是成为性能测试高手的一条途

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