性能测试常见用语
并发用户数量:与服务器进行交互的在线用户数量
请求响应时间:从客户端发出请求到得到响应的整个时间。一般包括网络响应时间+server的响应时间
事务响应时间:完成这个事务所用的时间。这个是性能测试中重点关注的指标
吞吐率:单位时间在网络上传输的数据量。这个是衡量网络性能的主要指标
TPS:每秒钟系统能够处理事务的数量。
点击率:每秒发送的http请求的数量,点击率越大对server的压力也就越大
资源利用率:对不同资源的使用程度,比如服务器的CPU,内存等。
LR目录分析
了解软件安装后目录结果的必要性
学习一个软件的使用应该从最基本的结构学起—它的目录。
Analysis templates—分析模板
Bin—可执行程序,注意里面的chm帮助文档
Bincerts—安全证书
Classes—可能用到的jar包
Dat—配置,备份等信息
Ejbcomponent—ejb的相关jar包
Help—帮助中心
Include—头文件(可以编写自定义函数,保存成.h的头文件形式并放在这个目录,以后就只需要调用这个头文件就可以方便的使用了)
Samples—java
Tutorial—快速入门的实例
Webtours—实例网站
LR界面分析
Virtual User Generator
注意:VuGen、仅能录制windows平台上的会话,但是录制的vuser脚本既可以在windows上也可以在linux上
新建脚本的方式
新建单协议脚本
新建多协议脚本
使用最近使用过的协议新建脚本
协议类型
应用程序部署解决方案:Citrix ICA
客户端/服务器
自定义
分布式组件
电子商务
Enterprise JavaBean:
ERP/CRM
传统:终端仿真(RTE)
邮件服务:
中间件
数据流
无线
Task模式
给你一步一步的提示,只需按照提示进行下一步即可
适用于LR的初学者
Recording Options 选项
以单协议http/html为例
- 菜单tools—>Recording Options进入录制的设置窗体
- Recording标签页:选用哪种录制方式
- Browser标签页:浏览器的选择
- Recording Proxy标签页:浏览器上的代理设置
- Advanced标签页:可以设置录制时的think time,支持的字符集标准等
- Correlation标签页:手工设置关联,通过关联可在测试执行过程中保存动态值。使用这些设置可以配置VuGen在录制过程中执行的自动关联的程度。
Run-Time Setting 选项(在Vuser栏目下)红色代表常用的
- run Logic:用来设置Action部分重复运行几次
- Pacing:用来设置以怎样一种方式开始下一次反复
- Log:设置是否启用日志
- Think Time:关于脚本中think time的设置
- Miscellaneous:配置其他运行时设置
- Speed Simulation:用来模拟网速
- Browser Emualation:设置浏览器仿真属性
- Proxy:设置代理
Controller
可以使用LR 来管理和维护方案
LR可以从一个单一的控制点简单有效的控制所有的Vuser
创建运行场景
创建手动的:通过创建并制定脚本、负载生成器和每个组中包括的Vuser数,可以生成手动方案。也可以通过“百分比模式”定义要在方案中使用的Vuser的总数,并为每个脚本分配负载生成器和占总数一定百分比的Vuser。
需要注意的:
- 持续时间设置将覆盖Vuser迭代设置。这意味着,如果将持续时间设置为5分钟,那么Vuser将继续在五分钟时间内运行尽可能多的迭代,即使运行时设置仅指定一次迭代。
- Vuser组设置不适用于百分比模式。
创建面向目标的
- 在面向目标的方案中,您可以定义您希望实现的测试目标,LR将根据定义的目标自动为您创建一个方案
- 在一个面向目标的方案中,您可以定义五中类型的目标:虚拟用户数、每秒点击次数(仅web Vuser)、每秒事务数、每分钟页面数(仅web Vuser)或方案的事务响应时间
- 使用“编辑方案目标”对话框可以对方案目标进行定义
- 注意:要定义每秒事务数或事务响应时间目标类型,脚本中必须包含事务。对于每种目标类型,您可以定义脚本中希望测试的事务。
方案设置
- 在”方案设置”选项卡中,您可以设置方案在达到目标后继续运行的时间长度,以及方案无法达到目标时是否继续。
- 达到目标后在运行:设置方案在达到目标后继续运行的时间长度。
- 如果无法达到目标:选择下面两个选项中的一个:
A. 停止方案并保存结果:若无法达到您定义的目标,指示Controller停止方案并保存方案结果。
B. 继续运行方案,无需达到目标:指示Controller继续运行方案,即使无法达到设定的目标。
运行方案
1.运行方案时,会为Vuser组分配负载生成器并执行它们的Vuser脚本。在方案执行期间,LR将:
记录在Vuser脚本中定义的事务的持续时间
执行包括在Vuser脚本中的集合
收集Vuser生成的错误、警告和通知消息
2.在方案运行时,您可以监视每个Vuser、查看由Vuser生成的错误、警告和通知消息以及停止Vuser组和哥哥Vuser。可以指示LR允许单个Vuser或组中的Vuser在停止前完成它们正在运行的迭代、在停止前完成它们正在运行的操作或立即停止运行
Results setting
Results—Results setting设置
建议Results name 命名方式为:场景运行时间_脚本名称_虚拟用户数_场景持续时间
监视方案
1、 可以使用LR联机运行时、事务、web资源、系统资源、网络延迟、防火墙服务器资源、web服务器资源、web应用程序服务器资源、数据库服务器资源、流媒体资源、ERP/CRM服务器资源、Java性能、应用程序部署和中间件性能监视器来监视方案执行。
2、 LR提供下列联机监视器:“运行时”监视器显示参与方案的Vuser的数目和状态,以及Vuser所生成的错误数量和类型。此外还提供用户定义的数据点图,其中显示Vuser脚本中的用户定义点的实时值。
关于系统资源监视
1、 影响事务响应时间的一个主要因素是系统资源使用率
2、 使用LR资源监视器,可以在方案运行期间监视计算机上的windows、unix、SNMP、AntaraFlame Thrower和SiteScope资源,并可以确定特定计算机上为何出现瓶颈。
Analysis基础知识
1.创建会话
在运行方案时,数据将存储在结果文件中,扩展名为.lrr.Analysis将活动图的显示信息和布局设置存储在扩展名为.lra的文件中。
2.启动Analysis
LR选择“Analysis”程序。有可以从Controller打开。
3.整理结果
方案执行之后,这些结果会自动进行整理或合并,即将所有主机的结果传输到结果目录中。通过在Controller窗口中选择Result > Auto collate Results.
了解Analysis报告
- 运行方案后,您可以查看对系统性能进行汇总的报告。Analysis提供一下报告工具:摘要报告、HTML报告、事务报告
- 摘要报告通过有关方案运行的一般信息。您可以随时从Analysis窗口中查看摘要报告
- 您可以指示Analysis创建HTML报告。Analysis将为每个打开的图创建HTML报告。
- 事务报告提供有关Vuser脚本中定义的事务的性能信息。这些报告为您提供结果的统计信息细分,并允许您打印和导出数据。
Analysis分析基础
- 查看summary。主要是虚拟用户数和事务。
- 查看负载生成器和服务器的系统资源情况。如CPU、内存等。往往内存的泄露表现在Cpu利用率过高。
- 查看虚拟用户和事务
- 查看错误发生情况
- 查看web资源 和细分网页
IP欺骗、
设置方法:
- LR—tools—ip wizard
- 在Controller的scenario中启用IP欺骗(必须在连接到Load generator前启用IP欺骗)
- Tools—expert mode
- Tools—options—general
- 测试结束后要释放IP也是在LR—tools—IP wizard 中操作
Tips:
- 必须是固定IP,不支持动态IP
- 重启计算机后可用ipconfig –all查看IP信息
LR常用术语
场景
在LR中主要表现为Controller中设计与执行测试用例中的用户场景。主要工作有,在Controller中选择虚拟用户脚本、设置虚拟用户数量、配置虚拟用户运行时的行为、选择负载发生器、设置执行时间等。
负载发生器
用来产生压力的真实机器,受Controller控制,可以使用户脚本在不同的主机上执行。在性能测试工作中,通畅由一个Controller控制多个load generator 以对被测试系统进行加压。
虚拟用户
对应于现实中的真实用户,使用LR模拟的用户称为虚拟用户。其本质是通过虚拟用户脚本来模拟真正用户的行为。
虚拟用户脚本
通过Vuser Generator 录制或开发的脚本。这些脚本用来模拟用户的行为。
事务
LR通过事务来衡量服务器的性能。在业务上事务通常是用户的一个或一系列操作,代表一定的功能,而在程序上则表现为一段代码区块。测试人员可以将一个或多个操作步骤定义为一个事务,以便衡量这部分的用户并发响应时间。
思考时间
为了模拟时更加接近用户的真实行为而引进的概念。在实际中,用户进行一系列操作后往往会进行处理,例如浏览网页内容,而处理过程对服务器是没有压力的。因此在虚拟用户脚本中用函数lr_think_time(double time)来模拟用户处理过程,执行该函数时用户线程会按照相应的time值进行等待。
集合点
对应于真实用户中的并发点。LR通过集合点实现了真正意义的并发。集合点在虚拟用户脚本中对应函数LR_rendezvous(constchar* rendezvous_name),当执行到该函数时会按照场景的并发策略来执行。
事务响应时间
是一个统计量,是评价系统性能的重要参数。定义好事务后,在场景执行过程和测试结果分析中即可以看到对应事务的响应时间。通过对关键或核心事务的执行情况进行分析,可以快速定位性能问题。
HP WEB TOURS分析
- 1. 启动web tours
开始—LR—Sample—web
先把web tour服务起来
然后在打开web tours网站
如果在web服务器已经启动的情况下,在启动该服务器将会报错
- 2. 首页结构
登录页面的测试用例考虑,测试点的考虑
- 3. 预定机票
LR录制测试脚本
录制的业务流程介绍
登录
航班,选择的信息如下:出发城市:丹佛(默认设置),出发日期:保持默认设置,达到城市:洛杉矶,返回日期:保持默认设置,座位首选项:过道
其余保持默认,点击continue
进入选择航班页面,保持默认设置,点击continue
进入付费信息并预定航班:在信用卡中输入:12345678 在输出日期中输入:10/08,点击continue
进入发票页,并显示你的发票信息
点击左侧的航程按钮,可以查看信息
最后点击sign off
保存文件为basic_turorial
录制脚本
启动VuGen
输入URL
按照业务流程进行录制
查看脚本
可以通过tree view 和script view来查看录制成功后的脚本
LR回访测试脚本
设置run time settings
1.Vuser-----run-time settings
2.运行迭代次数设置为2
3.“步”设置为random(随机)
4.“日志”选择扩展日志并输出参数
5.think time默认,将在Controller中设置它
实时观察回访的图像
Tools—General Options
回放脚本
待上述设置完成后,我们可以点击回放按钮进行脚本的回放
查看Results
1.View—Test Result
2.通过筛选器可以选出满足你设置的条件的结果
Web(Http/HTML)协议的两种录制方式(Tools—recording Options—Recording)
1、 脚本录制的基本原则
充分考虑脚本的执行效率:性能测试脚本关注的是如何模拟用户的真实行为。因此,用于测试的脚本应该接近用户的真正操作。这就是要求录制后的脚本在修改的过程中不要增加过多内容,尤其是不能降低其效率。例如尽量不要增加循环、检查等操作,除非这些操作是必须的。
录制重要的用户业务:要录制常用的、使用频率较高的业务来进行测试,不要一股脑的什么都录制。
选择你需要的进行录制:在web性能测试中,如果有些操作用于用户所关注的事务没有什么影响,那么可以不进行录制。例如一些查询事务中,选择查询条件页面的请求过程可以不录制,但对于一些要传递查询参数的过程则必须录制。
录制前对参数进行正确的配置
2、 HTML和URL based script介绍
Html based script:可以为每个用户请求生成单独的函数。
URL based script:可以捕获所有作为用户操作的结果发送到服务器的http请求,然后一条条记录下来。它设置可以捕获非HTML应用程序,比如小程序和非浏览器应用程序。
HTML 这种录制方式录制出来的脚本直观,易于理解和维护。而URL生成的脚本看起来比较长比较多。
3、 选择录制方式的原则
- 基于浏览器的应用程序推荐使用HTML-based script
- 不是基于浏览器的应用程序推荐使用URL-based script
- 如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-based方式录制。
- 基于浏览器的应用程序中使用了https安全协议,使用URL-based方式录制
- 对于初学者来说,如果HTMl方式录制不成功可以换成URL方式录制。
4、 HTML based script设置介绍
- 用来描述用户行为的脚本。直接创建的URL(web_url)、表单提交(web_submit_form)、连接(web_link)和图像(web_image)等函数
2. 仅包含明确的URL脚本。这种脚本中,所有的链接、图像请求和URL操作都被录制为web_url函数,而表单提交则被录制为web_submit_data函数。