loadrunner实例,loadrunner测试实例

http://www.itjxue.com  2023-01-17 00:02  来源:未知  点击次数: 

如何巧用软件测试工具LoadRunner中的随机函数

1. Intweb_reg_save_param("参数名","LB=左边界","RB=右边界",LAST);/注册函数,在参数值出现的前面使用,注册成功时返回值为0,注册失败时返回值为1。左右边界需根据TreeView里相关步骤的SeverResponse代码来确定。用以上函数能获取第一个符合条件的数值。

2. web_reg_save_param("参数名”,"LB=左边界”,"RB=右边界","Ord=All",LAST);/当参数有多个值时,加上"Ord=All”后可获取所有的数值。注册成功后,{参数名_count}表示取得的数值个数,{参数名_1}为第一个数值,{参数名_2}为第二个数值。

3. lr_save_string(“字符串变量”,"参数名")/将字符变量里的值传递给指定参数。通过该函数来改变DataFile类型参数的数值。

4. lr_eval_string("{参数名}")/取得参数的数值。可取得已注册参数或DataFile类型参数的数值。eval就是evaluation(估价,评价,赋值)的缩写。

5. int sprintf(char * string , const char*format_string[,args]);/字符串赋值函数

Action()

{

int index=56;

charfilename[64],*suffix="txt";

sprintf(filename,"log_%d.%s",index,suffix);

lr_output_message("Thenewfilenameis%s",filename);

return 0;

}

Output:Thenewfilenameislog_56.txt

6. char*strcat(char*to,constchar*from);/将一字符串追加到另一字符串后面

7. web_find("find_time","What=2006-03-0118:21:16.882",LAST);/增加检查点,检查“2006-03-0118:21:16.882”这个字符串是否出现在当前页面上。find_time为自己任意输入的检查点名称。

8. 事务函数

lr_end_sub_transaction/标记子事务的结束以便进行性能分析

lr_end_transaction/标记LoadRunner事务的结束

lr_end_transaction_instance/标记事务实例的结束以便进行性能分析

lr_fail_trans_with_error/将打开事务的状态设置为LR_FAIL并发送错误消息

lr_get_trans_instance_duration/获取事务实例的持续时间(由它的句柄指定)

lr_get_trans_instance_wasted_time/获取事务实例浪费的时间(由它的句柄指定)

lr_get_transaction_duration/获取事务的持续时间(按事务的名称)

lr_get_transaction_think_time/获取事务的思考时间(按事务的名称)

lr_get_transaction_wasted_time/获取事务浪费的时间(按事务的名称)

lr_resume_transaction/继续收集事务数据以便进行性能分析

lr_resume_transaction_instance/继续收集事务实例数据以便进行性能分析

lr_set_transaction_instance_status/设置事务实例的状态

lr_set_transaction_status/设置打开事务的状态

lr_set_transaction_status_by_name/设置事务的状态

lr_start_sub_transaction/标记子事务的开始

lr_start_transaction/标记事务的开始

lr_start_transaction_instance/启动嵌套事务(由它的父事务的句柄指定)

lr_stop_transaction/停止事务数据的收集

lr_stop_transaction_instance/停止事务(由它的句柄指定)数据的收集

lr_wasted_time/消除所有打开事务浪费的时间

lr_end_sub_transaction/标记子事务的结束以便进行性能分析

r_end_transaction/标记LoadRunner事务的结束

lr_end_transaction_instance/标记事务实例的结束以便进行性能分析

lr_fail_trans_with_error/将打开事务的状态设置为LR_FAIL并

9. 命令行分析函数

lr_get_attrib_double/检索脚本命令行中使用的double类型变量

lr_get_attrib_long/检索脚本命令行中使用的long类型变量

lr_get_attrib_string/检索脚本命令行中使用的字符串

10. 信息性函数

lr_user_data_point/记录用户定义的数据示例

lr_whoami/将有关Vuser脚本的信息返回给Vuser脚本

lr_get_host_name/返回执行Vuser脚本的主机名

lr_get_master_host_name/返回运行LoadRunnerController的计算机名

11. 字符串函数

lr_eval_string/用参数的当前值替换参数

lr_save_string/将以NULL结尾的字符串保存到参数中

lr_save_var/将变长字符串保存到参数中

lr_save_datetime/将当前日期和时间保存到参数中

lr_advance_param/前进到下一个可用参数

lr_decrypt/解密已编码的字符串

lr_eval_string_ext/检索指向包含参数数据的缓冲区的指针

lr_eval_string_ext_free/释放由lr_eval_string_ext分配的指针

lr_save_searched_string/在缓冲区中搜索字符串实例,并相对于该字符串实例,该缓冲区的一部分保存到参数中

12. 消息函数

lr_debug_message/将调试消息发送到输出窗口

lr_error_message/将错误消息发送到输出窗口

lr_get_debug_message/检索当前的消息类

lr_log_message/将输出消息直接发送到output.txt文件,此文件位于Vuser脚本目录中。该函数有助于防止输出消息干扰TCP/IP通信。

lr_output_message/将消息发送到输出窗口

lr_set_debug_message/为输出消息设置消息类

lr_vuser_status_message/生成格式化输出并将其打印到ControllerVuser状态区域。

lr_message/将消息发送到Vuser日志和输出窗口

13. 操作函数

web_custom_request允许您使用HTTP支持的任何方法来创建自定义HTTP请求

web_image在定义的图像上模拟鼠标单击

web_link在定义的文本链接上模拟鼠标单击

web_submit_data执行“无条件”或“无上下文”的表单

web_submit_form模拟表单的提交

web_url加载由“URL”属性指定的URL

14. 身份验证函数

身份验证函数web_set_certificate使Vuser使用在InternetExplorer注册表中列出的特定证书

身份验证函数web_set_certificate_ex指定证书和密钥文件的位置和格式信息

身份验证函数web_set_user指定Web服务器的登录字符串和密码,用于Web服务器上已验证用户身份的区域

15. 缓存函数

缓存函数web_cache_cleanup清除缓存模拟程序的内容

16. 检查函数

检查函数web_find在HTML页内搜索指定的文本字符串

检查函数web_global_verification在所有后面的HTTP请求中搜索文本字符串

检查函数web_image_check验证指定的图像是否存在于HTML页内

检查函数web_reg_find在后面的HTTP请求中注册对HTML源或原始缓冲区中文本字符串的搜索

17. 连接定义函数

连接定义函数web_disable_keep_alive禁用Keep-AliveHTTP连接

连接定义函数web_enable_keep_alive启用Keep-AliveHTTP连接

连接定义函数web_set_connections_limit设置Vuser在运行脚本时可以同时打开连接的最大数目

18. 并发组

web_concurrent_end标记并发组的结束

web_concurrent_start标记并发组的开始

19. cook函数

web_add_cookie添加新的Cookie或修改现有的Cookie

web_cleanup_cookies删除当前由Vuser存储的所有Cookie

web_remove_cookie删除指定的Cookie

20. 关联函数

web_create_html_param将HTML页上的动态信息保存到参数中。(LR6.5及更低版本)

web_create_html_param_ex基于包含在HTML页内的动态信息创建参数(使用嵌入边界)(LR6.5及更低版本)。

这是一些常用函数。希望采纳谢谢

loadRunner录制脚本 提示 未找到任何关联实例检查录制选项中是否已启用扫描

你这是自动关联 loadrunner 的自动关联本身就有 bug

建议使用手动关联

loadrunner自带的实例程序报500错误如何让解决,而且实例程序的服务也打开了

首先在程序中,打开sample里面的server,然后直接点开应用程序,不需要其他操作就可以打开实例程序了;

你出现500错误,看是否是loadrunner未安装好,我的电脑右下角只有WEB server X图标;

你检查下,你的LR是否可以录制脚本,并执行场景;我安装lr的时候安装了几个补丁

具体实例教你如何做LoadRunner结果分析

1. 判断应用程序的问题 如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(context switches/sec显示的上下文切换次数太高)那么就会占用大量的系统资源,如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过高.

从图的整体看.context switches/sec变化不大,throughout曲线的斜率较高,并且此时的contextswitches/sec已经超过了15000.程序还是需要进一步优化. 2. 判断CPU瓶颈 如果processor queue length显示的队列长度保持不变(=2)个并且处理器的利用率%Processortime超过90%,那么很可能存在处理器瓶颈.如果发现processor queue length显示的队列长度超过2,而处理器的利用率却一直很低,或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈.

%processor time平均值大于95,processor queue length大于2.可以确定CPU瓶颈.此时的CPU已经不能满足程序需要.急需扩展. 3. 判断内存泄露问题 内存问题主要检查应用程序是否存在内存泄漏,如果发生了内存泄漏,process\private bytes计数器和process\working set 计数器的值往往会升高,同时avaiable bytes的值会降低.内存泄漏应该通过一个长时间的,用来研究分析所有内存都耗尽时,应用程序反应情况的测试来检验.

图中可以看到该程序并不存在内存泄露的问题.内存泄露问题经常出现在服务长时间运转的时候,由于部分程序对内存没有释放,而将内存慢慢耗尽.也是提醒大家对系统稳定性测试的关注. 附件: CPU信息: Processor\ % Processor Time 获得处理器使用情况。 也可以选择监视 Processor\ % User Time 和 % Privileged Time 以获得详细信息。 Server Work Queues\ Queue Length 计数器会显示出处理器瓶颈。队列长度持续大于 4 则表示可能出现处理器拥塞。 System\ Processor Queue Length 用于瓶颈检测通过使用 Process\ % Processor Time 和 Process\ Working Set Process\ % Processor Time过程的所有线程在每个处理器上的处理器时间总和。 硬盘信息: Physical Disk\ % Disk Time Physical Disk\ Avg.Disk Queue Length 例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果页面读取操作速率很低,同时 % Disk Time 和 Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。 Physical Disk\ % Disk Time Physical Disk\ Avg.Disk Queue Length 例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果页面读取操作速率很低,同时 % Disk Time 和 Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。 请观察 Processor\ Interrupts/sec 计数器的值,该计数器测量来自输入/输出 (I/O) 设备的服务请求的速度。如果此计数器的值明显增加,而系统活动没有相应增加,则表明存在硬件问题。 Physical Disk\ Disk Reads/sec and Disk Writes/sec Physical Disk\ Current Disk Queue Length Physical Disk\ % Disk Time LogicalDisk\ % Free Space 测试磁盘性能时,将性能数据记录到另一个磁盘或计算机,以便这些数据不会干扰您正在测试的磁盘。 可能需要观察的附加计数器包括 Physical Disk\ Avg.Disk sec/Transfer 、Avg.DiskBytes/Transfer,和Disk Bytes/sec。 Avg.Disk sec/Transfer 计数器反映磁盘完成请求所用的时间。较高的值表明磁盘控制器由于失败而不断重试该磁盘。这些故障会增加平均磁盘传送时间。对于大多数磁盘,较高的磁盘平均传送时间是大于 0.3 秒。 也可以查看 Avg.Disk Bytes/Transfer 的值。值大于 20 KB 表示该磁盘驱动器通常运行良好;如果应用程序正在访问磁盘,则会产生较低的值。例如,随机访问磁盘的应用程序会增加平均 Disk sec/Transfer 时间,因为随机传送需要增加搜索时间。 Disk Bytes/sec 提供磁盘系统的吞吐率。 决定工作负载的平衡要平衡网络服务器上的负载,需要了解服务器磁盘驱动器的繁忙程度。使用 Physical Disk\ %Disk Time 计数器,该计数器显示驱动器活动时间的百分比。如果 % Disk Time 较高(超过90%),请检查 Physical Disk\ Current Disk Queue Length 计数器以查看正在等待磁盘访问的系统请求数量。等待 I/O 请求的数量应当保持在不大于组成物理磁盘的主轴数的 1.5 到2倍。 尽管廉价磁盘冗余阵列 (RAID) 设备通常有多个主轴,大多数磁盘有一个主轴。硬件 RAID设备在“系统监视器”中显示为一个物理磁盘;通过软件创建的 RAID 设备显示为多个驱动器(实例)。可以监视每个物理驱动器(而不是 RAID)的 Physical Disk 计数器,也可以使用 _Total 实例来监视所有计算机驱动器的数据。 使用Current Disk Queue Length 和 % Disk Time 计数器来检测磁盘子系统的瓶颈。如果Current Disk Queue Length 和 % Disk Time 的值始终较高,可以考虑升级磁盘驱动器或将某些文件移动到其他磁盘或服务器。

要用loadrunner做一个B/S结构软件的登录功能的测试,负载测试和压力测试的场景分别怎么设计?请详述!

其它如响应时间,吞吐率没测过不知道值,一般情况下会是多少呢?

响应时间得看客户那边的要求,一般是3秒。吞吐率看项目的具体情况。

Q1:负载测试怎么设计场景?如何监控应用服务器和数据库服务器?要装监控进程吗?

负载测试怎么设计场景:你的思路是对的,但是不够具体,太泛泛了。我给你举个例子

:先利用你可以获得的数据信息分析,并发数是300,然后分析这个网站登录(如果客户

那边可以提供最好了)的峰值时间,比如说是 11:30-12:00的30分钟,设置60秒110虚拟

用户,根据你已知的并发数300,算出总用户数,300X30/3=3000,如果可以从客户的数

据里能分析出来用户数就是最好了,结束的设置看自己情况,影响不大,关注下是否有内存泄露就可以。.所以得:

用户总数:3000,增加速度:60秒110虚拟用户,运行时:30分钟,并发数:300.

运行完毕后,对结果进行分析,关注事务平均响应时间、事务请求数。

如何监控应用服务器和数据库服务器:LR里有对服务器和数据库监控的设置,添加就可以

了,如何操作可以参考LR使用手册,网上也有很多资料,不过你的oracle是在Uuix上,

LR不能监控,可以自己下载专门监控unix的工具,可以网络上搜。

要装监控进程吗:这个看你的具体情况,如果有异常需要这方面的分析的话,可以装起

来呢。

Q2:压力测试怎么设计场景?如何监控应用服务器和数据库服务器?要装监控进程吗?

压力测试怎么设计场景:测试环境一定要确定,压力测试一般要求环境配置较高,最好

与生产环境一致或者接近。

我一般是每个并发数跑一个场景,在登录那设置集合点,然后所有用户达到集合点释放.

每个场景跑3次。比如说针对你的:

场景1: 200个Vuser start all Vusers simultaneously(所有用户同时上) 所有用户达

到集合点释放,

场景2: 300个Vuser start all Vusers simultaneously(所有用户同时上) 所有用户达

到集合点释放

场景3: 400个Vuser start all Vusers simultaneously(所有用户同时上) 所有用户达

到集合点释放

场景4: 600个Vuser start all Vusers simultaneously(所有用户同时上) 所有用户达

到集合点释放

场景5: 800个Vuser start all Vusers simultaneously(所有用户同时上) 所有用户达

到集合点释放

如何监控应用服务器和数据库服务器:LR里有对服务器和数据库监控的设置,添加就可以

了,如何操作可以参考LR使用手册,网上也有很多资料,不过你的oracle是在Uuix上,

LR不能监控,可以自己下载专门监控unix的工具,可以网络上搜。

要装监控进程吗:这个看你的具体情况,如果有异常需要这方面的分析的话,可以装起

来呢。

Q3:如果用户名和密码框下还有验证码框,即带验证码的登录又怎么做性能测试?

验证码问题一般有2种方便的解决方式:

1)屏蔽;让开发把这验证码功能屏蔽了。

2)万能验证码;让开发给你设计个万能验证码,比如是aaaa,都是可以通过验证的

你自己根据你那边的具体情况选择解决。

Q4:如果我要一部分人同时登录,一部分人做查询,剩下的人翻页,又怎么设计?这种测试其目的是什么?

我的想法是录三个脚本,放到一个场景中,用百分比模式分配Vuser和load generator,这样可以吗?你的想法是对的。可以这么执行!

关于LoadRunner虚拟用户的问题:

这个是别人做的实验,你看看,你也可以自己做实验试试(我只贴出一张图,其他的自己实验):

试验过程:

1.??使用?loadrunner?录制一个脚本;

2.??录制脚本内容为登录一个?web?网站,并下载网站的一个文件;(注本例无登录和退出操作)

3.?把所下载的文件设置参数化;

4.??对select?next?row和update?value?on进行两两组合,并设置不同用户数量(用户数量多余参数数量和等于参数数量)和迭代次数(1次迭代或多次迭代);

参数列表:

1.??test-0.chm

2.??test-2.chm

3.??test-3.chm

4.??test-4.chm

5.??test-5.chm

6.??test-6.chm

7.??test-7.chm

8.??test-8.chm

9.??test-9.chm

action代码:

web_url("myweb",

"URL=;quot;,

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t5.inf",

"Mode=HTML",

LAST);

web_link(//"{movename}",

?"test-0.chm",

"Text={movename}",

"Snapshot=t6.inf",

LAST);

实例(试验结果):

(责任编辑:IT教学网)

更多

推荐DNS服务器文章