性能测试之loadrunner的使用

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

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

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

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

  • 录制基本的用户脚本
    1、首先我们在loadrunner安装目录下启动WebTours中的StartServer.bat,(注意一定要在打开Visual User Generator之前启动它,否则在运行脚本时就会出现错误)如图:
    在这里插入图片描述
    在这里插入图片描述
    虚拟用户和密码管理如图:
    在这里插入图片描述
    这里我又额外建立了两个虚拟用户yb1和yb2,建立方法就是创建一个txt文档,全部命名为yb1或者yb2,输入:
    在这里插入图片描述
    2、打开Visual User Generator后,选择新建脚本,我要测试的是web项目,协议为:Web-HTTP/HTML,点击创建,进入主窗体,如图所示:
    在这里插入图片描述
    在这里插入图片描述
    2、在解决方案资源管理器中可以看到创建的脚本的组成部分,分为vuser_init、Action、vuser_end,vuser_init用于用户初始化,vuser_end用户清理,Action用于需要测试的操作,有点类似unittest测试框架,如图所示:
    在这里插入图片描述
    3、开始录制脚本
    点击Record按钮开始录制,如图:
    在这里插入图片描述
    弹出开始录制窗体,将脚本录制到Action中,如图:
    在这里插入图片描述
    这里Application设置的是IE浏览器,当然也可以设置为Firefox浏览器,他在loadrunner安装目录中的bin文件夹中的firefox中,如图:
    在这里插入图片描述
    点击开始录制,得到如图:
    在这里插入图片描述
    此时输入用户名和密码,这里我输入的用户名是jojo,密码是bean,如图:
    在这里插入图片描述
    4、插入事务,如图点击Insert Start Transaction,将其命名为login_transaction,如图:
    在这里插入图片描述
    5、插入集合点,点击Insert Rendezvous,如图:
    在这里插入图片描述
    将其命名为login_2020623,如图:
    在这里插入图片描述
    6、点击login进行登录,然后点击Insert End Transaction结束事务,如图:
    在这里插入图片描述
    在这里插入图片描述
    7、点击结束录制,如图:
    在这里插入图片描述
    8、得到脚本,如图:
    在这里插入图片描述
    在这里插入图片描述
    9、当然也可以在录制的脚本中插入事务(如果我们忘记执行上面插入事务过程),有三种方法,如图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 快照
    如图:
    在这里插入图片描述
    在这里插入图片描述
    如上图可以看到的确进行了快照。
  • 文本检查
    我们刚刚已经进行了快照,此时可以在想要检查的文处右击,如图:
    在这里插入图片描述
    点击弹出:
    在这里插入图片描述
    点击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;
}
  • 参数化
    如图创建关联:
    在这里插入图片描述
    点击之后弹出:
    在这里插入图片描述
    点击Correlate,如图:
    在这里插入图片描述
    此时体现在脚本中为:
    在这里插入图片描述
    加上"NotFound=warning",得到
    在这里插入图片描述
    对jojo出现的地方进行参数替换,如图:
    在这里插入图片描述
    点击之后弹出:
    在这里插入图片描述
    此时就将jojo替换为{username},当然也可以将所有为jojo的地方都进行了替换,只需要弹出提示之后点击Yes即可,脚本为:
    在这里插入图片描述
  • 添加虚拟用户
    在前面我已经在安装目录的users文件夹下添加了yb1和yb2两个用户,也就是确保虚拟用户在文件下存在,如图:
    在这里插入图片描述
    在这里插入图片描述
    弹出:
    在这里插入图片描述
    可以通过Add Row来添加,但是当虚拟用户很多时,这样添加就比较麻烦,可以点击Edit with Notepad,就可以弹出如图:
    在这里插入图片描述
    输入用户名,如图输入yb1和yb2:
    在这里插入图片描述
    保存退出之后,可以看到:
    在这里插入图片描述
    更改运行时逻辑,否则还是只运行一次,如图:
    在这里插入图片描述
    弹出:
    在这里插入图片描述
    因为我们有3个虚拟用户,因此改为3,以日志输出,如图添加脚本:
    在这里插入图片描述
    编译运行,得到:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    其中对于参数的Update value on栏中如图:
    在这里插入图片描述
  • 插入函数
    这里的控制流程都是使用C语言的控制流程的语句,例如我们此时在脚本中输出用户名时改成如图:
    在这里插入图片描述
    也就是判断当前的username是否是jojo,使用C语言中的字符串函数strcmp来比较,其中lr_output_message表示输出一条消息,lr_eval_string表示得到参数当前的值,此时我们编译脚本,要确认一下此时{username}宏要运行三个参数,所以此时我们的update value on必须是顺序取值,如图所示:
    在这里插入图片描述
    然后更改运行时逻辑,让它保证是3个虚拟用户,如图:
    在这里插入图片描述
    在这里插入图片描述
    然后运行脚本,得到:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 一些重点选项
    1、首先就是我们更改运行时逻辑时,默认是他的选项即可,不用改动,如图:
    在这里插入图片描述
    2、对于Record options,如图:
    在这里插入图片描述
    点击之后,如图:
    在这里插入图片描述
    将如图所指的地方勾选上,这样可以解决有些时候不能录制脚本或者可以让脚本的录制速度变快。
    3、快照只有在脚本中页面加载的地方点击才有效;
    4、如图点击Tools中的Options,如图:
    在这里插入图片描述
    弹出之后,在Scripting下的Replay中选中下图中箭头所指:
    在这里插入图片描述
    此时运行脚本就可以出现浏览器运行情况(浏览器运行比较快,看不清,所以这个可以不勾选):
    在这里插入图片描述
  • 创建运行场景
    1、首先将用户参数重新设为仅一个,如图:
    在这里插入图片描述之后更改运行时配置,用户数改为1,如图:
    在这里插入图片描述
    2、然后在Virtual user Generator组件中选择Tools,点击create Controller Scenario,创建场景,如图:
    在这里插入图片描述
    选择并发的虚拟用户数,我这里是3个,如图:
    在这里插入图片描述
    点击OK之后自动进入Controller,如图:
    在这里插入图片描述
    3、如果我们要测试其他系统(前提是其他系统安装Loadrunner),要进行配置,首先,点击Load Generators,如图:
    在这里插入图片描述
    点击Add,如图:
    在这里插入图片描述
    弹出之后我们选择是什么系统,我这里选择的是Windows系统,如图:
    在这里插入图片描述
    点击OK之后,就会出现要测试的其他系统服务器,然后要连接这个服务器,点击Connect进行测试连接,如图:
    在这里插入图片描述
    当然也可以如图双击所指的区域:
    在这里插入图片描述
    双击之后弹出如图:
    在这里插入图片描述
    这里也可以添加其他系统,即将如图箭头所指改为Add即可,如图:
    在这里插入图片描述
    点击之后弹出
    在这里插入图片描述
    点击View Script也可以进入Virtual User Generator,
    在这里插入图片描述
    点击Run-Time Settings,可以弹出
    在这里插入图片描述
    它和Virtual User Generator中的一样.
  • 设置场景
    如图,由于我们这里只有一个组2020623,所以我们在Scenario SSchedule栏中选择的是Scenario,如果不止一个组,则选择Group:
    在这里插入图片描述
    蓝色框中从上到下依次为:初始化用户、虚拟用户开始运行的方式、运行时间,虚拟用户停止运行方式。
    1、我们可以双击Initialize栏,弹出如图,将箭头所指设为3秒(原来为15秒,这里我将时间缩短):
    在这里插入图片描述
    2、双击Start Vusers栏,开始运行,弹出如图,将箭头所指处改为每5秒启动一个用户(本来是每15动2个用户):
    在这里插入图片描述
    3、双击Duration栏,设置其运行时间,如图设置为5分钟:
    在这里插入图片描述
    4、双击Stop Vusers栏,停止运行,如图设置为每5秒退出一个用户:
    在这里插入图片描述
  • 开始运行场景
    先看一下Run,如图:
    在这里插入图片描述
    双击箭头所指这一组Group,如图可以看到有三个虚拟用户:
    在这里插入图片描述
    Run中分为了四部分,如图分别为:
    在这里插入图片描述
    此时开始运行场景,如图箭头所指开始运行:
    在这里插入图片描述
    得到如图:
    在这里插入图片描述
    到达集合点时,点击率是最高的。
    此时我们可以查看测试报告,如图:
    在这里插入图片描述
    错误的用户数为0,计算错误率
    按理来说可以自动跳转到Analysis中,如果没有自动跳转可以手动跳转,如图:
    在这里插入图片描述
    跳转到Analysis中,生成测试报告,如图:
    在这里插入图片描述
    也可以增加条目,如图:
    在这里插入图片描述
Loadrunner工具概述 4 工具简介 4 下载 4 安装 5 在windows下安装loadrunner 5 在liunx下安装Load Generator组件 6 LoadRunner主要组件 7 工作原理 7 LR自带实例 8 负载流程 9 Loadrunner引导界面 9 VuGen--组件概述 10 VuGen--脚本创建 10 脚步创建流程 10 VuGen起始页 11 协议支持选择 11 协议种类 12 协议选择方法 14 协议选择注意要点 16 开始录制(Start Recording)及选项(Recording Option) 16 Internet 应用程序录制选项 20 Win32应用程序录制选项 21 常规选项—脚本(General--Script) 21 常规选项—协议(General—Protocols) 22 常规选项—录制(General—Recording) 22 网络—端口映射(NetWork—Port Mapping) 28 HTTP属性—高级(HTTP Properties--Advanced) 29 HTTP属性—关联(HTTP Properties--Correlation) 31 VuGen--脚本录制 32 录制步骤 32 脚本查看 33 脚本Action介绍 34 VuGen--脚本回放 35 Web(HTTP/HTML)常规选项 35 参数化(Parameterization) 35 回放(Replay) 35 环境(Environment) 36 显示(Display) 37 关联(Correlation) 37 Web(HTTP/HTML)运行设置 37 运行逻辑(Run Logic) 38 步(Pacing) 39 日志(Log) 39 思考时间(Think Time) 40 其他(Miscellances) 41 VuGen--增强功能 42 事务 42 参数化 43 内容检查 49 关联 50 集合点 53 Controller组件概述 55 设计场景思想 55 新建场景方式 56 场景类型 56 场景运行 59 执行步骤 60 场景运行期间增加负载 61 系统监控 62 监控负载下的客户端程序 62 实时观察Vuser运行情况 62 Load Generator组件概述 64 Generator连接 64 IP虚拟 64 添加IP地址 65 使用虚拟IP 65 IP虚拟使用误区 66 Analysis组件概述 66 服务水平协议 68 定义SLA 69 常用性能指标介绍 71 事务(Transation) 71 Web资源分析(Web Resources) 72 网页元素细分(Web Page Breakdown) 74 其他指标 76 性能测试资源占用率分析方法 76 附录:LoadRunner常用函数 77
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值