性能测试之loadrunner的使用

性能测试方案
  • 调研测试需求
    1、测试业务范围:关键的、常用的、压力较大的、有代表性的、不宜过多;
    2、测试环境:硬件环境(主机型号、配置)、软件环境(操作系统、数据库)、网络环境(带宽、交换机、防火墙);
    3、测试目的:上线前调优,查找缺陷;
    4、性能指标:业务性能指标(首先从需求和设计中分析出性能测试需求)、系统性能指标(CPU使用率、内存使用率)
  • 测试策略和测试资源需求
    测试工具、测试方式、测试执行
    人力资源:明确所需的人员类型、由何方提供、明确职责分工;
loadrunner使用

进行性能测试的流程一般是:
(1)制定性能测试计划;
(2)开发测试脚本(loadrunner使用虚拟用户的活动来模拟真实用户操作web应用程序,虚拟用户的活动包含在测试脚本中)
(3)设计运行场景
(4)运行监视场景
(5)分析测试结果(使用Analysis软件)

  • 安装
    首先我们安装loadrunner,安装完成之后,桌面就会出现一下三个图标,如图:
    在这里插入图片描述
    这三个软件用来实现性能测试,使用Virtual User Generator进行脚本录制,对用户名和密码进行参数化,即让多个虚拟用户运行同一个脚本,在本地修改用户名密码,使用Controller设计场景,监控运行场景,将数据收集到Analysis,进行分析数据,生成报告或者图表。如图:
    性能测试之loadrunner的使用_第1张图片
    loadrunner是一种自动化负载测试工具,从用户关注的响应时间、吞吐量、并发用户和性能计数器等方面衡量系统的性能表现,辅助用户进行系统性能的优化。
    在使用loadrunner之前,我们了解几个概念:
    Scenario:场景,即在每一个测试过程中发生的事件;
    Vusers:虚拟用户;
    Vusers Script:脚本;
    Transactions:事务;
    rendezvous:集合,当我们测试多个用户并发时,每个用户执行到该事务脚本的先后顺序是不确定的,所以得到的测试结果也并不是一个完全并发的极限测试结果,在开始事务之前,插入一个“集合点”,在多用户执行时,就可以将用户请求停下来,直到用户数量达到满足的条件(默认是100%的用户都到达集合点),那么,所有的用户都将同时发出接下来的请求。
    如图:
    性能测试之loadrunner的使用_第2张图片
开发测试脚本

开发测试脚本要使用VuGen组件

  • 录制基本的用户脚本
    1、首先我们在loadrunner安装目录下启动WebTours中的StartServer.bat,(注意一定要在打开Visual User Generator之前启动它,否则在运行脚本时就会出现错误)如图:
    性能测试之loadrunner的使用_第3张图片
    性能测试之loadrunner的使用_第4张图片
    虚拟用户和密码管理如图:
    性能测试之loadrunner的使用_第5张图片
    这里我又额外建立了两个虚拟用户yb1和yb2,建立方法就是创建一个txt文档,全部命名为yb1或者yb2,输入:
    性能测试之loadrunner的使用_第6张图片
    2、打开Visual User Generator后,选择新建脚本,我要测试的是web项目,协议为:Web-HTTP/HTML,点击创建,进入主窗体,如图所示:
    性能测试之loadrunner的使用_第7张图片
    性能测试之loadrunner的使用_第8张图片
    2、在解决方案资源管理器中可以看到创建的脚本的组成部分,分为vuser_init、Action、vuser_end,vuser_init用于用户初始化,vuser_end用户清理,Action用于需要测试的操作,有点类似unittest测试框架,如图所示:
    性能测试之loadrunner的使用_第9张图片
    3、开始录制脚本
    点击Record按钮开始录制,如图:
    性能测试之loadrunner的使用_第10张图片
    弹出开始录制窗体,将脚本录制到Action中,如图:
    性能测试之loadrunner的使用_第11张图片
    这里Application设置的是IE浏览器,当然也可以设置为Firefox浏览器,他在loadrunner安装目录中的bin文件夹中的firefox中,如图:
    性能测试之loadrunner的使用_第12张图片
    点击开始录制,得到如图:
    性能测试之loadrunner的使用_第13张图片
    此时输入用户名和密码,这里我输入的用户名是jojo,密码是bean,如图:
    性能测试之loadrunner的使用_第14张图片
    4、插入事务,如图点击Insert Start Transaction,将其命名为login_transaction,如图:
    性能测试之loadrunner的使用_第15张图片
    5、插入集合点,点击Insert Rendezvous,如图:
    性能测试之loadrunner的使用_第16张图片
    将其命名为login_2020623,如图:
    性能测试之loadrunner的使用_第17张图片
    6、点击login进行登录,然后点击Insert End Transaction结束事务,如图:
    性能测试之loadrunner的使用_第18张图片
    性能测试之loadrunner的使用_第19张图片
    7、点击结束录制,如图:
    性能测试之loadrunner的使用_第20张图片
    8、得到脚本,如图:
    性能测试之loadrunner的使用_第21张图片
    性能测试之loadrunner的使用_第22张图片
    9、当然也可以在录制的脚本中插入事务(如果我们忘记执行上面插入事务过程),有三种方法,如图:
    性能测试之loadrunner的使用_第23张图片
    性能测试之loadrunner的使用_第24张图片
    性能测试之loadrunner的使用_第25张图片
  • 快照
    如图:
    性能测试之loadrunner的使用_第26张图片
    在这里插入图片描述
    如上图可以看到的确进行了快照。
  • 文本检查
    我们刚刚已经进行了快照,此时可以在想要检查的文处右击,如图:
    性能测试之loadrunner的使用_第27张图片
    点击弹出:
    性能测试之loadrunner的使用_第28张图片
    点击OK,就可以进行文本检查,脚本中就会自动增加:
    在这里插入图片描述
    给"Text=“welcome.pl?page=search”,后面加上"SaveCount=reservation_Count", 最终得到的脚本为:
Action()
{

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

	lr_think_time(403);

	lr_start_transaction("login_transaction");

	lr_rendezvous("login_2020623");

	web_reg_find("Search=Body",
		"Text=\"welcome.pl?page=search","SaveCount=reservation_Count",
		LAST);

	web_submit_form("login.pl", 
		"Snapshot=t2.inf", 
		ITEMDATA, 
		"Name=username", "Value=jojo", ENDITEM, 
		"Name=password", "Value=bean", ENDITEM, 
		"Name=login.x", "Value=64", ENDITEM, 
		"Name=login.y", "Value=7", ENDITEM, 
		LAST);

	lr_end_transaction("login_transaction",LR_AUTO);

	return 0;
}
  • 参数化
    如图创建关联:
    性能测试之loadrunner的使用_第29张图片
    点击之后弹出:
    性能测试之loadrunner的使用_第30张图片
    点击Correlate,如图:
    性能测试之loadrunner的使用_第31张图片
    此时体现在脚本中为:
    性能测试之loadrunner的使用_第32张图片
    加上"NotFound=warning",得到
    性能测试之loadrunner的使用_第33张图片
    对jojo出现的地方进行参数替换,如图:
    性能测试之loadrunner的使用_第34张图片
    点击之后弹出:
    性能测试之loadrunner的使用_第35张图片
    此时就将jojo替换为{username},当然也可以将所有为jojo的地方都进行了替换,只需要弹出提示之后点击Yes即可,脚本为:
    性能测试之loadrunner的使用_第36张图片
  • 添加虚拟用户
    在前面我已经在安装目录的users文件夹下添加了yb1和yb2两个用户,也就是确保虚拟用户在文件下存在,如图:
    性能测试之loadrunner的使用_第37张图片
    性能测试之loadrunner的使用_第38张图片
    弹出:
    性能测试之loadrunner的使用_第39张图片
    可以通过Add Row来添加,但是当虚拟用户很多时,这样添加就比较麻烦,可以点击Edit with Notepad,就可以弹出如图:
    性能测试之loadrunner的使用_第40张图片
    输入用户名,如图输入yb1和yb2:
    性能测试之loadrunner的使用_第41张图片
    保存退出之后,可以看到:
    性能测试之loadrunner的使用_第42张图片
    更改运行时逻辑,否则还是只运行一次,如图:
    性能测试之loadrunner的使用_第43张图片
    弹出:
    性能测试之loadrunner的使用_第44张图片
    因为我们有3个虚拟用户,因此改为3,以日志输出,如图添加脚本:
    在这里插入图片描述
    编译运行,得到:
    性能测试之loadrunner的使用_第45张图片
    性能测试之loadrunner的使用_第46张图片
    性能测试之loadrunner的使用_第47张图片
    其中对于参数的Update value on栏中如图:
    性能测试之loadrunner的使用_第48张图片
  • 插入函数
    这里的控制流程都是使用C语言的控制流程的语句,例如我们此时在脚本中输出用户名时改成如图:
    性能测试之loadrunner的使用_第49张图片
    也就是判断当前的username是否是jojo,使用C语言中的字符串函数strcmp来比较,其中lr_output_message表示输出一条消息,lr_eval_string表示得到参数当前的值,此时我们编译脚本,要确认一下此时{username}宏要运行三个参数,所以此时我们的update value on必须是顺序取值,如图所示:
    性能测试之loadrunner的使用_第50张图片
    然后更改运行时逻辑,让它保证是3个虚拟用户,如图:
    性能测试之loadrunner的使用_第51张图片
    性能测试之loadrunner的使用_第52张图片
    然后运行脚本,得到:
    性能测试之loadrunner的使用_第53张图片
    性能测试之loadrunner的使用_第54张图片
    性能测试之loadrunner的使用_第55张图片
  • 一些重点选项
    1、首先就是我们更改运行时逻辑时,默认是他的选项即可,不用改动,如图:
    性能测试之loadrunner的使用_第56张图片
    2、对于Record options,如图:
    性能测试之loadrunner的使用_第57张图片
    点击之后,如图:
    性能测试之loadrunner的使用_第58张图片
    将如图所指的地方勾选上,这样可以解决有些时候不能录制脚本或者可以让脚本的录制速度变快。
    3、快照只有在脚本中页面加载的地方点击才有效;
    4、如图点击Tools中的Options,如图:
    性能测试之loadrunner的使用_第59张图片
    弹出之后,在Scripting下的Replay中选中下图中箭头所指:
    性能测试之loadrunner的使用_第60张图片
    此时运行脚本就可以出现浏览器运行情况(浏览器运行比较快,看不清,所以这个可以不勾选):
    性能测试之loadrunner的使用_第61张图片
  • 创建运行场景
    1、首先将用户参数重新设为仅一个,如图:
    性能测试之loadrunner的使用_第62张图片之后更改运行时配置,用户数改为1,如图:
    性能测试之loadrunner的使用_第63张图片
    2、然后在Virtual user Generator组件中选择Tools,点击create Controller Scenario,创建场景,如图:
    性能测试之loadrunner的使用_第64张图片
    选择并发的虚拟用户数,我这里是3个,如图:
    性能测试之loadrunner的使用_第65张图片
    点击OK之后自动进入Controller,如图:
    性能测试之loadrunner的使用_第66张图片
    3、如果我们要测试其他系统(前提是其他系统安装Loadrunner),要进行配置,首先,点击Load Generators,如图:
    性能测试之loadrunner的使用_第67张图片
    点击Add,如图:
    性能测试之loadrunner的使用_第68张图片
    弹出之后我们选择是什么系统,我这里选择的是Windows系统,如图:
    性能测试之loadrunner的使用_第69张图片
    点击OK之后,就会出现要测试的其他系统服务器,然后要连接这个服务器,点击Connect进行测试连接,如图:
    性能测试之loadrunner的使用_第70张图片
    当然也可以如图双击所指的区域:
    性能测试之loadrunner的使用_第71张图片
    双击之后弹出如图:
    性能测试之loadrunner的使用_第72张图片
    这里也可以添加其他系统,即将如图箭头所指改为Add即可,如图:
    性能测试之loadrunner的使用_第73张图片
    点击之后弹出
    性能测试之loadrunner的使用_第74张图片
    点击View Script也可以进入Virtual User Generator,
    性能测试之loadrunner的使用_第75张图片
    点击Run-Time Settings,可以弹出
    性能测试之loadrunner的使用_第76张图片
    它和Virtual User Generator中的一样.
  • 设置场景
    如图,由于我们这里只有一个组2020623,所以我们在Scenario SSchedule栏中选择的是Scenario,如果不止一个组,则选择Group:
    性能测试之loadrunner的使用_第77张图片
    蓝色框中从上到下依次为:初始化用户、虚拟用户开始运行的方式、运行时间,虚拟用户停止运行方式。
    1、我们可以双击Initialize栏,弹出如图,将箭头所指设为3秒(原来为15秒,这里我将时间缩短):
    性能测试之loadrunner的使用_第78张图片
    2、双击Start Vusers栏,开始运行,弹出如图,将箭头所指处改为每5秒启动一个用户(本来是每15动2个用户):
    性能测试之loadrunner的使用_第79张图片
    3、双击Duration栏,设置其运行时间,如图设置为5分钟:
    性能测试之loadrunner的使用_第80张图片
    4、双击Stop Vusers栏,停止运行,如图设置为每5秒退出一个用户:
    性能测试之loadrunner的使用_第81张图片
  • 开始运行场景
    先看一下Run,如图:
    性能测试之loadrunner的使用_第82张图片
    双击箭头所指这一组Group,如图可以看到有三个虚拟用户:
    性能测试之loadrunner的使用_第83张图片
    Run中分为了四部分,如图分别为:
    性能测试之loadrunner的使用_第84张图片
    此时开始运行场景,如图箭头所指开始运行:
    性能测试之loadrunner的使用_第85张图片
    得到如图:
    性能测试之loadrunner的使用_第86张图片
    到达集合点时,点击率是最高的。
    此时我们可以查看测试报告,如图:
    性能测试之loadrunner的使用_第87张图片
    错误的用户数为0,计算错误率
    按理来说可以自动跳转到Analysis中,如果没有自动跳转可以手动跳转,如图:
    性能测试之loadrunner的使用_第88张图片
    跳转到Analysis中,生成测试报告,如图:
    性能测试之loadrunner的使用_第89张图片
    也可以增加条目,如图:
    性能测试之loadrunner的使用_第90张图片

你可能感兴趣的:(#,软件测试)