loadrunner了解及使用流程

了解


下载后发现三个图标:Virtual User Generator、Controller、Analysis
使用时首先用Virtual User Generator进行脚本录制,对用户名、密码参数化【使多个用户运行同一脚本,在本地修改用户名密码】
之后使用Controller设置场景、监控运行场景,收集数据到Analysis
最后用Analysis分析数据,生成图表/报告

LG是模拟多用户并发访问被测试系统的组件。模拟多用户访问系统的前提是已经具备了虚拟用户脚本,VuGen是录制和编辑虚拟用户脚本的工具,录制好的脚本是不同语言表达的文本文件,在LG执行时被解析和执行。脚本录制和回放过程是在Proxy支持下完成的

关键字

Secenario【场景】:指在每一个测试过程中发生的事件,在Controller中实现
Vusers【虚拟用户】:LoadRunner使用多线程或多进程来模拟用户对应用程序操作时产生的压力。一个场景可能包括多个虚拟用户,甚至成千上万个虚拟用户
Vuser Script【脚本】:用脚本来描述Vuser在场景中执行的动作
Transactions【事务】:是密切相关操作的集合,代表了用户的某个业务过程,需要衡量这些业务过程的性能

rendezvous【集合】:测试多个用户并发时,每个用户执行到该事务脚本的先后顺序是不确定的,所以得到的测试结果也并不是一个完全并发的极限测试结果。所以在开始事务之前,插入一个“集合点”,使得在多用户执行时,将用户请求停下来,直到用户数量达到满足的条件(默认是100%的用户都到达集合点)那么,所有的用户都将同时发出接下来的请求

过程

制定性能测试计划
性能测试了解
主要实现以下内容:
分析应用程序、确定测试目标、计划怎样执行
开发测试脚本
LoadRunner 使用虚拟用户的活动来模拟真实用户来操作Web 应用程序,而虚拟用户的活动就包含在测试脚本中,所以说测试脚本对于测试来说是非常重要的。
开发测试脚本要使用VuGen 组件。测试脚本要完成的内容有:

  • 每一个虚拟用户的活动
  • 参数化
  • 定义事物
  • 定义检查点

设计运行场景
运行场景描述在测试活动中发生的各种事件。一个运行场景包括一个运行虚拟用户活动的Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。
运行、监视测试一切配置妥当,开始运行测试。在运行过程中,需要监视各个服务器的运行情况(DataBase Server、Web Server等)
分析测试结果
所有前面的准备都是为了这一步。我们需要分析大量的图表,生成各种不同的报告,最后会得出结论

使用

准备
首先启动startserver
虚拟用户及密码的管理:

首次使用时引入该目录下的火狐浏览器:

脚本录制


在init中初始化【如初始化数据库】、end中释放资源、在action中录制脚本
点击开始录制:


然后结束录制

也可在录制后的脚本中插入事务,三种方法:
1.

2.

3.

注意对于事务要有始有终。

快照

文本检查
在想要检查的文本处右击:


直接ok脚本中体现:
此时应该确定页面加载好后再进行文本检查:加上"SaveCount=reservation_Count"
脚本:

Action()
{

	web_url("WebTours", 
		"URL=http://127.0.0.1:1080/WebTours/", 
		"Resource=0", 
		"Referer=", 
		"Snapshot=t1.inf", 
		"Mode=HTML", 
		LAST);

	web_url("header.html", 
		"URL=http://127.0.0.1:1080/WebTours/header.html", 
		"Resource=0", 
		"Referer=http://127.0.0.1:1080/WebTours/", 
		"Snapshot=t2.inf", 
		"Mode=HTML", 
		LAST);

	web_url("welcome.pl", 
		"URL=http://127.0.0.1:1080/cgi-bin/welcome.pl?signOff=true", 
		"Resource=0", 
		"RecContentType=text/html", 
		"Referer=http://127.0.0.1:1080/WebTours/", 
		"Snapshot=t3.inf", 
		"Mode=HTML", 
		LAST);

	lr_think_time(74);

	lr_start_transaction("login_transaction");

	lr_rendezvous("login");

	web_reg_find("Search=Body",
		"Text=welcome","SaveCount=reservation_Count",
		LAST);

	web_submit_form("login.pl", 
		"Snapshot=t4.inf", 
		ITEMDATA, 
		"Name=username", "Value=jojo", ENDITEM, 
		"Name=password", "Value=bean", ENDITEM, 
		LAST);

	web_set_sockets_option("SSL_VERSION", "TLS1.1");

	lr_end_transaction("login_transaction",LR_AUTO);

	return 0;
}

参数化
创建关联:


体现在脚本中:

注意这里需要加上"NotFound=warning",否则运行会报错【长度溢出】

让jojo出现的地方都用参数替换:


此时脚本中所有jojo用{username}替换掉了
添加虚拟用户:
首先确保虚拟用户在下面文件中存在,可自行添加:



更改运行时逻辑,否则还是运行一次:

这里有两个用户,所以改为2:

以日志输出,打印+符号,让结果更加明显:

效果:

对于参数而言:

函数
  • 控制脚本流程
if { } else { }
for{ }
while{ }

总之 C 语言的控制流程的语句这里都可以直接使用

  • 字符串函数
    strcmp 比较两个字符串
    strcat 连接两个字符串
    strcpy 拷贝字符串

在VuGen 中,以char声明的字符串是只读的,如果试图给char类型的字符串赋值的话,编译会通过,但在运行时会产生“Access Violation”的错误。解决这类问题,就是把字符串声明为字符数组,比如char[100]

  • 输出函数
    输出函数在调试脚本时非常有用
    lr_output_message 输出一条消息
  • LoadRunner 提供的标准函数

lr_eval_string 该函数功能是得到参数(参数化输入中)当前的值
eg: lr_output_message(“temp = %s”, lr_eval_string("{WCSParam2}"));

lr_save_string 该函数功能是把一个字符串保存到参数中
eg: lr_save_string(“439”,“WCSParam3”);

一些重要的点

最后记得点击,防止无法录制脚本:
快照必须在脚本中页面加载出来的地方点击才有效。

在VUGen中:首先将用户数参数重新置为仅一个


选择并发的虚拟用户数

自动进入Controller

测其他系统进行配置流程:


设置场景

从上到下分别设置初始化虚拟用户、虚拟用户开始运行的方式、运行时间、停止运行方式

Design后开始run

下面的窗口:

到达集合点时,点击率最高

按理说应该自动跳转到Analysis,如果没有自动跳转可以手动跳转:


版权声明:本文为qq_41403559原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。