您的位置:首页 > 其它

软件性能测试知识点总结

2016-04-17 19:59 169 查看
第一章 软件性能概述

1.1软件性能基础

1.1.1软件性能的概念

软件性能是与软件功能相对应的一种非常重要的非功能特性,表明了软件系统对时间及时性与资源经济性的要求。对于一个软件系统,运行时执行速度越快、占用系统存储资源及其他资源越少,则软件性能越好。

软件性能与软件功能是软件能力的不同体现,以一个人的工作能力来比喻,“功能”是某个人能够做的事情,“性能”指此人完成这件事情的效率。在功能相同的情况下,性能是衡量事情完成效果的一个重要因素。

1.1.2 不同角色对软件性能的理解

1)从系统用户角度看软件性能

系统用户指实际使用系统功能的人员。系统用户看到的软件性能就是软件的响应时间,即当用户在软件中执行一个功能操作后,到软件把本次操作的结果完全展现给用户所消耗的时间。

系统响应时间的影响因素有:功能的粒度、客户端网络情况、服务器当前忙闲情况等。从系统用户角度看,软件响应时间越短,系统性能越好。

2)从系统运维人员角度看软件性能

系统运维人员指负责软件系统运行维护的工作人员。

运维人员在关注系统响应时间的同时,还需要关注系统的资源利用率、系统最大容量、系统访问量变化趋势、数据量增长幅度、系统扩展能力等,并在此基础上制定合理的系统维护计划,以保障系统能够为用户提供稳定可靠的持续服务。

运维人员关注的性能问题:

运维人员关心的问题 软件性能描述

服务器的资源使用情况合理吗 资源利用率

应用服务器和数据库服务器的资源使用状况合理吗 资源利用率

系统是否能够实现扩展 系统可扩展性

系统最多能支持多少用户的访问 系统容量

系统最大的业务处理量是多少 系统容量

系统性能可能的瓶颈在哪里 系统可扩展性

更换哪些设备能够提高系统性能 系统可扩展性

系统能否支持7X24小时的业务访问 系统稳定性

3)从系统开发人员角度看软件性能

系统开发人员指系统软件的设计和开发人员。

开发人员关注的性能问题:

开发人员关心的问题 问题所属层次

架构设计是否合理 系统架构

数据库设计是否存在问题 数据库设计

代码是否存在性能方面的问题 代码

系统中是否有不合理的内存使用方式 代码

系统中是否存在不合理的线程同步方式 设计与代码

系统中是否存在不合理的资源竞争 设计与代码

1.1.3 软件性能的重要性

保障软件系统的性能具有十分重要的意义,具体体现在以下方面:

(1)系统性能越好,执行速度越快,用户使用系统的体验就越好

(2)系统性能越好,用户的等待时间越少,有利于提高软件操作效率。

(3)系统性能越好,处理能力越大,单位时间处理业务量越大。

(4)系统性能越好,在大量用户访问系统时系统稳定性越好,能够提供持续服务。

(5)系统性能扩展性越好,越容易提升系统的处理能力,以适应更多的访问需求。

能意味着重大的销售损失或用户流失,保持系统系统性能对于软件系统的运营企业具有非常重要性能的的意义,系统下降可良好的系能对于提高用户体验、提升站点声誉、提升客户忠诚度、增加系统收入等都具有重要作用。

1.2 常用性能指标

1.2.1 响应时间

响应时间指用户感受到的软件系统为其服务所耗费的时间。

一般情况下,需要定义三种情况下的系统的响应时间:

(1)闲时响应时间:指系统中访问用户数量较少的情况下,用户访问系统的响应时间,也可理解为在不受其他用户干扰的情况下,系统应该具有的性能表现。

(2)忙时响应时间:指在系统处理正常访问用户量的情况下,用户访问系统的响应时间。该指标定义了系统在正常访问状态下应该具有的响应时间要求,体现了系统在正常访问状态下的性能表现。

(3)峰时响应时间:指在系统具有大量并发用户的情况下,用户访问系统的响应时间。该指标定义了系统在承载最大并发用户情况下应该具有的响应时间要求,体现了系统压力负荷最大情况下的性能表现,也可以理解为系统最大响应时间。

1.2.2 并发用户数

并发用户数指系统能够同时处理的用户请求的数目,也可以理解为同时向系统提交请求的用户数目。注册用户数指系统中全部注册用户的数量;在线用户数指在相同时间段内登录了系统,并在系统中进行操作的用户数量。

平均并发用户数:指在系统正常访问量情况下的并发用户数。

最大并发用户数:指在峰值访问情况下的并发用户数。

如何判断是否达到峰值访问情况:

(1)系统响应时间达到了峰值响应时间,即系统的响应时间已经达到了用户能够接收的上限。

(2)系统服务器资源利用率已经达到了上限,即服务器的CPU利用率、内存利用率等指标已经达到了需求规定的上限。

(3)系统请求成功率,即成功请求数/总请求数。当系统压力过大时,某些用户请求就会执行失败,如果失败率过高,就说明系统已经达到了处理能力的上限,所以可以根据成功率来判断是否已经达到了最大并发用户数。

平均并发用户数仅反映了系统某个时刻的用户访问情况,并不反映系统的性能情况;而最大并发用户数反映了系统的处理能力,往往作为一项重要的性能指标在需求分析时进行定义。

1.2.3 吞吐量

吞吐量指单位时间内系统处理的客户请求数量,体现系统的整体处理能力。系统吞吐量越大,说明系统性能越好。衡量吞吐量的常用指标内包括:

RPS:请求数/秒,描述系统每秒能够处理的最大请求数量。

PPS:页面数/秒,描述系统每秒能够现实的页面数量。

PV:页面数/天,描述系统每天总的Page View数量。

TPS:事务/秒,描述系统每秒能够处理的事务数量。

QPS:查询/秒,描述系统每秒能够处理的查询请求数量。

1.2.4 服务器性能计数器

服务器性能计数器指服务器或操作系统性能的一些数据指标,在性能测试中发挥着监控和分析的关键作用。常用的操作系统性能计数器包括System Load、进程与线程数、使用内存数、CPU使用率、磁盘I/O、网络I/O等。

资源利用率反映的是在一段时间内服务器资源平均被占用的情况,能够更加直观的反映系统当前的运行情况,例如CPU利用率如果达到80%,就说明当前CPU基本已经耗尽,系统处于满载状态。所以在进行性能需求分析时,往往通过资源利用率指标来定义服务器性能要求。

第2章 软件性能测试基础

2.1 软件性能测试的概念

定义:狭义的软件性能测试指为验证软件性能指标、评估系统服务能力、推荐系统软硬件配置、完成系统性能优化等而开展的测试活动;广义的软件性能测试是指测试过程中需要相关性能测试方法配合完成的系统测试活动,包括可靠性测试、可恢复性测试、稳定性测试、兼容性测试、可扩展性测试等。

2.2 软件性能测试的目标

目标分为4个方面:能力验证、缺陷发现、能力规划、性能优化

1、能力验证分为3个层面:

验证性能指标与需求的符合情况

软件系统性能测试最主要的目标:验证软件性能是否符合软件需求文档中的性能指标要求,是否符合预定的设计目标。

获得系统服务能力

评价系统可靠性

6个质量特性:功能性、可靠性、易用性、效率性、维护性、可移植性

可靠性一般用平均无故障时间(MTTF)来度量,三个子特性:成熟性、容错性、可恢复性。

2、缺陷发现

缺陷发现性能测试的主要目的是:通过性能测试的手段来发现系统中存在的缺陷,并不需要验证性能指标是否满足需求的要求。

3、 能力规划

特点:1、规划能力是一种探索新的测试 2、配置规划可用于了解系统的性能以及获得扩展性能的方法。

4、性能优化

性能条有的前提:进行性能瓶颈定位

特点:1、确定基准环境、基准负载和基准性能指标 2、调整系统运行环境和实现方法、执行测试

2.3常用性能测试方法

性能测试名称 定义说明

基准测试 通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某种性能指标进行定量的和可对比的测试。主要目的是检验系统性能与相关标准的符合程度

压力测试 通过对软件系统不断施加压力,识别系统性能拐点,从而获得系统提供的最大服务级别的测试活动。主要目的是检查系统处于压力情况下应用的表现。

负载测试 通过在被测系统中不断增加压力,直到达到性能指标极限要求。主要目的是找到特定环境下系统处理能力的极限。

并发测试 并发测试主要指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄露、线程锁、资源争用问题。主要目的并非为了获得性能指标,而是为了发现并发引起的问题。

疲劳测试 通过让软件系统在一定访问量情况下长时间运行,以检验系统性能在多长时间后会出现明显下降。主要目的是验证系统运行的可靠性。

数据量测试 通过让软件在不同数据量情况下运行,以检验系统性能在各种数据量情况下的表现。主要目的是找到支持系统正常工作的数据量极限。

配置测试 通过对被测系统的软/硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优操作。

基准测试三大原则:可测量、可重复、可对比

2.4 软件性能测试范围

(1)服务器性能测试

(2)网络性能测试

(3)客户端性能测试

2.5 性能测试面临的问题

主要包括:1、没有明确的性能指标需求

2、不切实际的性能指标要求

3、在开发环境下做性能测试

4、走形式地进行性能测试

5、只测试、不分析

6、只测试、不优化

7、性能测试缺乏方法论的指导

8、缺乏高水平的性能测试人才

第三章 性能测试的组织管理

3.1 软件性能测试过程模型

非经典的软件开发模型:瀑布模型、螺旋模型、增量模型、喷泉模型、原型模型、敏捷开发

软件测试相关模型:V模型、W模型、H模型、X模型

3.1.1 Segue性能测试过程模型

Segue性能测试模型


3.1.2 HP性能测试过程模型

HP性能测试过程模型


3.1.3 PTGM(Performance Test General Model)性能测试过程模型

3.1.4 APTM(Agile Performance Test Model)敏捷性能测试过程模型

3.1.5 SPTM(System Performance Test Model)系统性能测试过程模型

1.组建测试团队

1)组织团队成员

2)安排工作分工

3)进行技能培训

2.指定测试计划

1)明确测试范围

2)制定进度计划

3)制定成本计划

4)制定环境计划

5)测试工具计划

6)测试风险分析

3.设计测试方案

1)明确性能需求

2)设计性能测试用例

3)设计脚本录制方案

4)设计测试场景

5)设计测试结果指标

4.搭建测试环境

1)搭建硬件环境

2)搭建软件环境

3)搭建测试环境

4)准备数据环境

5.执行性能测试

1)脚本录制与开发

2)场景设置

3)测试执行

4)测试监控

6.分析测试结果

1)测试结果分析

2)性能瓶颈分析

3)制定优化方案

4)性能测试总结

性能测试支持环境:评审、沟通、管理、支持

3.2 组件性能测试团队

1组织团队成员 2安排工作分工 3进行技能培训

3.2.1组织团队成员

角色 职责 技能

测试负责人 1.和用户等项目干系人交互,确保测试的外部环境

2.制定测试计划

3.监控测试进度

4.发现和处理测试中的风险 1.计划执行和监控能力

2.风险意识能力

3.协调沟通能力和灵活变通的能力

性能测试设计人员 1.理解性能需求

2.设计性能测试流程

3.设计性能测试用例

4.选择VU录制功能

5.设计测试场景 1.业务把握能力

2.性能需求分析和识别能力

性能测试配置人员 1.部署性能测试环境

2.维护性能测试文档

3.系统版本管理 1.配置平台使用能力

2.版本管理能力

3.环境部署能力

测试脚本开发人员 1.实现已设计的性能场景

2.VU脚本的录制、开发、调试

3.确定测试时需要监控的性能指标、性能计数器 1、脚本编码和调试能力

2、理解性能指标和性能计数器

性能测试执行人员 1.使用工具执行测试场景

2.根据监控要求记录测试结果、记录性能

3.执行性能测试用例 1.搭建测试环境的能力

2.测试工具使用(执行)的能力

3.性能指标和性能计数器获取和记录的能力

性能测试分析人员 1.根据测试结果、性能指标的数值、性能计数器值进行分析

2.根据性能规划,分析出性能的瓶颈或是给出优化建议 1.掌握性能测试工具的使用方法

2.掌握应用系统性能领域相关知识,理解所采用的架构

3.熟悉常用的性能分析方法

4.具有一定的编码经验

支持较色

(系统) 系统支持,协助解决测试工程师无解决的系统问题 处理系统问题的能力和技能。最好有专职的系统管理员担任这个角色

支持较色

(网络) 网络方面的支持,协助测试工程师解决网络方面的问题,必要时为测试分析角色提供网络方面的分析支持 网络方面的能力和技能,最好由专职的网络管理人员担任

支持角色

(数据库) 数据库方面的支持,必要时为测试分析角色提供数据库方面的支持 网络方面的能力和技能,最好由专职DBA担任

支持角色

(中间件) 中间件平台方面的支持,在必要时为测试分析较色提供中间件方面的支持 深入了解中间件产品的特点和配置方案,可以由专职的中间件专家担任

第六章  LoadRunner基础


6.2 LoadRunner 功能结构

6.2.1 LoadRunner 工具组成

LoadRunner 功能非常复杂,核心模块为Virtual User Generator、Controller、Analysis、Load Generator、Proxy五部分。

虚拟用户脚本生成器Virtual User Generator,简称VuGen,是用来录制虚拟用户脚本的工具支持大量的通信协议,支持自动化脚本录制和二次开发,为系统性能测试提供寻虚拟脚本支持。

负载生成器Load Generator,简称LG,负责将VuGen脚本复制成大量虚拟用户对系统生成负载,在性能测试中,用来模拟大量用户并发访问系统。

用户代理Proxy,是客户端和服务器的中介,负责协调不同负载机上的虚拟用户,产生步调一致的虚拟用户。

测试控制器Controller,负责对整个测试的过程进行设置,制定测试过程中的VU脚本、并发用户数、加压方式、执行周期、监控参数等,同时提供测试过程中的监控功能。

结果分析器Analysis,负责对测试中手机的相关数据进行整理和分析,形成各种图形表,辅助性能测试分析人员完成测试结果的分析任务。

6.2.1 LoadRunner 工作原理

controller是执行负载测试管理和监控的中心,在这里定制具体的性能测试方案,执行性能测试,收集测试数据,监控测试指标。

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

Controller中的实时监控工具将测试过程中收集到的客户机、服务器和网络性能指标数据显示在监控页面上,便于测试人员对系统表现进行随时掌握。

Analysis在测试完成后,对测试过程中收集到的各种性能数据进行计算、汇总和处理,生成各种图标和报告,为系统性能测试结果分析提供支持。

6.3 LR关键概念

6.3.1 虚拟用户

虚拟用户(virtual user,简称Vuser)指性能测试过程中执行VU脚本以模拟虚拟真实用户对系统访问的执行实体。一台测试机上只能有一个真实用户执行系统功能,但在loadrunner中,可以运行多个Vuser,很方便模拟多用户对系统的并发访问。

6.3.2 VU脚本

VU脚本(script)记录了用户执行系统功能的操作过程,是Vuser执行的对象。LoadRunner还可以通过参数化、关联等手段对VU脚本进行二次开发,提高脚本的灵活性。

6.3.3 场景

场景(scenario)是一次性能测试执行内容的定义,用来模拟虚拟用户是如何产生压力的。场景中包含所有执行的脚本、虚拟用户、负载生成器、运行过程配置、实时监控五方面内容。在定义场景时,包含手工场景和面向目标场景两种设置方式。

6.3.4 事务

事务(transaction)提供一种端到端的测量方法,用于测量一个业务流程中执行一个或多个步骤所花费的时间。事务可以理解成一个计时单位,LoadRunner在运行过程中,一旦发现事务的开始标志,就开始计时,一旦发现事物的结束标志则测试结束计时,这个过程中得到的时间即为一个事务时间。

6.3.5 检查点

检查点(check point)提供了一种结果正确性验证的机制,保证了测试工具对执行通过判断的准确性。LoadRunner的VuGen组件允许插入文本检查点和图形检查点。

6.3.6 思考时间

思考时间(think time)提供了一种让VU脚本暂停执行(等待一段时间)的机制,用来模拟实际用户在执行不同操作之间的等待时间,以便更加真实的反应用户访问系统的行为规律。

6.3.7 集合点

集合点(rendezvous)提供一种用户并发访问机制,用来模拟多用户对系统的并发访问。在Vuser需要执行脚本中插入集合点,配置多个Vuser同时执行操作,当某个Vuser到达集合点时,将进行等待,知道参与该集合的全部Vuser都到达或者已经指定数量的Vuser到达后,同时释放Vuser,让它们同时开始下一任务的执行,从而模拟多用户并发访问系统。

第七章 脚本的录制与开发

课题背景:使用 LoadRunner对系统进行并发负载测试时需要依赖虚拟用户脚本,虚拟用户脚本的录制需要基于相应的通信协议。

7.1.最常用的几种LoadRunner支持通信协议

1.HTTP协议

超文本传输协议(HTTP,H压迫而text Transfer Protocol)是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过互联网传达万维网文档的数据传送协议。一般在测试B/S架构应用系统时,需要选择这个协议。

2.FTP协议

FTP是TCP/IP协议组中的协议之一,是英文File Transfer Protocol 的缩写。该协议是Internet文件传送的基础,它是由一系列规格说明文档组成,目标是提高文件的共享性,提高非直接使用远程计算机,使存储介质对用户透明和可靠高效的传送数据。

如果测试的系统是一个FTP服务器时,可以选择该协议进行脚本的录制。

3.Socket协议

Socket通常也称为“套接字”,是一般网络软件的不同实体之间进行通信的一种协议。我们选择协议时,只有在其他协议不合适,或实在不清楚选择何种协议时,才会选择Socket协议。

4.Web Service 协议

Web Service是一种面向服务体系架构的实现技术,提供了服务描述、发布、提供、管理等一些协议。Web服务体系使用一系列标准和协议来实现相关的功能。使用WSDL来描述系统,使用UDDI来发布、查找服务,使用SOAP来调用服务。依据Web Service 规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。

如果被测试功能是通过Web Service 方式提供,那么在录制脚本的时候可以选择Web Service 协议。

5.RTE协议

RTE协议是对一些遗留系统进行测试时进行终端仿真时使用的协议。终端仿真就是使用一个计算机终端模仿另一个计算机终端。通常被模仿的终端是较早的型号,以便于用户最初写给该终端进行通信的程序了。

7.2通信协议的选择方法

通过询问开发人员了解被测试系统所使用的协议,通常这是最简单也最直接的方法。

通过概要或详细设计手册获知所使用的协议。

通过协议分析工具捕包分析,然后确定被测试对象所使用的协议。

通过以往测试经验确定被测试对象所使用的协议,这种方法确定协议有一定的不确定性

使用LoadRunner的协议分析功能,试着录制一下脚本,然后这个功能会自动帮助用户分析应该使用的协议,具有一定的可信度。

LoadRunner 录制脚本

1.基本录制流程

2.录制选项

在LoadRunner中有两种脚本录制模式:HTML-based script和URL-based script。

.HTML-based script(基于HTML的脚本)录制模式指在脚本中采用HTML页面形式来表示,为每个用户操作生成单独的步骤,这种脚本更容易理解和维护,一般使用HTML录制模式。

.URL-based script(基于URL的脚本)可以录下通过浏览器对服务器所作的所有请求和资源获取,它自动将每一步的HTTP资源录制为URL_steps(通过Web_url函数进行处理)。URL-based 方式录制的脚本不太直观,阅读不便。

3.选择录制方式的参考方案

如果应用是Web应用,首先是HTML-based录制模式。

如果应用是使用HTTP协议的非Web应用,则首选URL_based 录制模式。

如果Web应用中使用了Java applet程序,且applet程序与服务器之间存在通信,则选用URL-based 录制模式。

7.4 脚本开发知识

1.在LoadRunner的脚本中,通常含有如下三种函数:

(1)VuGen通用函数。一般以lr开头。

(2)协议相关函数。不同类型的Vuser的函数一般以本协议类型开头。HTTP的协议函数还包括web_list、web_link等。

(3)语言相关函数。

2.通用的VuGen函数

(1)事务与事务控制函数

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

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

(2)命令行分析函数

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

lr_get_attrib_long:检索命令行中使用的long类型变量。

lr_get_attrib_string:检索命令行中使用的字符串。

(3)系统信息函数

用来得到VuGen的系统信息

Lr_user_data_point:记录用户定义的数据采集点。

Lr_get_host_name:返回执行Vuser脚本的主机名。

Lr_get_master_host_name:返回运行Controller的计算机名。

(4)字符串函数

如:lr_save_datetime:把当前日期和时间保存到一个参数中。

lr_save_int:把一个整数保存为参数。

lr_save_var:把字符串的一部分内容保存为参数。

(5)消息函数

如:lr_output_message:将消息发送到输出窗口。

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

(6)运行时函数

如:lr_think_time:暂停脚本的执行,模拟思考时间,思考时间用完后,继续执行。

lr_rendezvous:在Vuser脚本中设置集合点。

脚本注释

LoadRunner 提供了两种脚本注释方法:(1)单行注释“//”;(2).块注释。“/”,“/”

7.5.检查点相关设置

1.检查点分类

(1)文本检查点

文本检查点函数是通过Web_reg_find()来实现的,Web_reg_find()是一个注册型函数,注册函数一定要写在请求前,所以该函数一定出现在检查文本之前。

文本检查点的两种形式:

代码一:web_reg_find(“Text= ”,LAST);

代码二:web_reg_find(“Text= ”,LAST);

If( )

lr_output_message(“”);

else

lr_output_message(“”);

(2)自动检查点

按F4|ContentCheck或Run-time settings|ContentCheck

(3)图片检查点

Web_image_check(“函数标题”,“ALT=图片说明”,“LAST”)

检查点的设置技巧:检查点可以是常量,也可以是变量;检查点可以是文本、图像文件,也可以是数据库记录等。

2.事务设置

(1).事务的开始函数是lr_start_transaction(),选择新事务起点,鼠标右键|Insert|start Transaction

(2).事务的开始函数是lr_end_transaction(),选择新事务结束点,鼠标右键|Insert|End Transaction

(3).事务的状态

LoadRunner_PASS事务是以PASS状态通过的,该事务做了正确的事情。

LoadRunner_FAIL事务是以FAIL状态通过的,该事务做失败的事情。

LoadRunner_AUTO事务的状态是由系统判断的,结果为PASS/FAIL/STOP。

3. 参数化

参数化包含以下两个任务:(1)在脚本中用参数取代常量值;(2)设置参数的属性以及数据源。

4. 关联设置。

关联主要有手动关联和自动关联。手动关联中,关联函数web_reg_save_param是一个注册型函数。

5. 集合点设置

集合点通过在脚本中插入lr_rendezvous()函数实现。集合点要放在开始事务之前。

集合点有三种策略:

当百分之多少的用户到达集合点时脚本继续;

当百分之多少的运行用户到达集合点时脚本继续;

多少个用户到达集合点时脚本继续。

7.6 日志

对脚本录制起关键作用的三个日志

执行日志(Execution Log):脚本运行时的输出都记录在这个日志里

黑色:标准输出信息、

红色:标准错误信息

绿色:用引号括起来的文字字符串

蓝色:事务信息(开始、结束、状态和持续时间)

录制日志(Recording Log)

产生日志(Generation Log)

第八章场景管理

8.1 场景概念

8.1.1场景概念

场景主要是用来模拟真实用户向被测系统产生压力,是一种用来模拟大量用户操作事物技术手段。通过配置和执行场景向服务器产生负载,验证系统各项性能指标是否达到用户要求,而Controller可以帮助用户对场景的设计、执行及监控进行管理。

1设计场景

设计场景需要设置以下内容:(1)选择场景类型(2)设置负载生产器(3)配置用户组(4)配置压力设置(5)配置运行设置(6)IP虚拟(7)SLA

2场景运行和监控

需要关注你以下内容:(1)执行场景(2)负载生成监控(3)被负载系统监控(4)场景报告

8.2 Controller简介

Controller中主要有两个主要的工作视图:Design视图和Runs视图。

手动场景模式

该界面主要包含三个主要的工作区域:

1.Design视图

(1)Scenario Scripts:场景脚本设置区域。主要负责对场景执行过程的虚拟用户脚本、负载发生器等进行设置。

(2)Scenario Schedule:场景计划设置区域。主要负责设置测试加压方式以准确模拟真实用户的行为。

(3)Service level Agreement:服务水平协议设置区域。设计负载测试场景是,可以为性能指标定义目标值或服务水平协议。

面向目标场景模式

该界面主要包含三个主要的工作区域:

Design视图

(1)Scenario Scripts:场景脚本设置区域。主要负责对场景执行过程的虚拟用户脚本进行设置。

(2)Scenario Schedule:场景计划设置区域。主要负责设置场景目标。

(3)Service level Agreement:服务水平协议设置区域。设计负载测试场景是,可以为性能指标定义目标值或服务水平协议。

2.Run视图

Run视图是Controller中运行视图,包含5个主要区域

(1)Scenario Group:场景组区域。位于窗口的左上角,可以查看场景组内Vuser的状态。使用该窗口右侧的按钮可以启动,停止和重置场景,查看各个Vuser的状态,通过手动添加更多Vuser可以增加场景运行期间应用程序的负载。

(2)Scenario Status::场景状态区域.位于窗口的右上角,可以在其中查看负载测试的概要信息,包括正在运行的Vuser的数量和每个Vuser操作的状态。

(3)Avaliable Graph:可用图区域。位于窗口中间偏左位置 ,列出了LoadRounder能够提供的性能指标数据。

(4)图查看区域:位于窗口中间偏右位置,可以在其中自定义测试过程中显示的指标的数据。

(5)图例:位于窗口底部,可以在其中查看所选性能指标的数据

负载生成器配置

负载发生器(LoadGenerators)是一个可以独立部署并运行的脚本的负载引擎。

8.2手工场景设置

在一个测试场景中,需要设置执行的虚拟用户脚本,用来模拟真实用户对被测系统的访问。

8.2.1 场景脚本设置

1. 添加脚本

在创建场景时,可以选择要执行的脚本,在场景脚本区域内,还可以进一步增加新的阿胶本,单击“添加脚本”按钮,弹出添加脚本的对话框,在其中可以设置脚本所属的组,设置执行该脚本的虚拟用户数,选择执行该脚本的负载发生器,选择要执行脚本。

2. 删除组

在场景设置过程中,随时都可以删除虚拟脚本,在脚本列表中选择要删除的脚本后,点击“删除组”按钮,即可将该脚本删除

3. 虚拟用户

在创建手工场景时,如何没有选择“use the percentage mode to distribute the vusers among the scripts”选项,则每个脚本都有固定的虚拟用户。点击“虚拟用户”按钮,可以打开虚拟用户对话框,在其中可以对虚拟用户进行管理。

Run:启动Vuser开始执行。

Gradual Stop:逐步停止。

Stop:立刻停止。

Reset:恢复初始状态。

Details:查看脚本详情。

Add Vuser:增加虚拟用户

Refresh:刷新表格状态

Help:帮助

Close:关闭窗口

场景用户状态

序号 状态 含义

1 挂起(Pending) Vuser已经准备好。可以进行初始化,正在将脚本文件传输到负载生产器

2 初始化(Init) Vuser正在初始化,执行对应Run logic下的init部分

3 就绪(Ready) Vuser已经执行初始化操作,可以运行Action了

4 集合点(Rendezvous) Vuser到达集合点,正在等待条件满足,然后释放

5 正在运行(Run) Vuser脚本正在运行

6 完成并通过(Pass) Vuser已经运行结束,并且是成功通过

7 完成并通过(Failed) Vuser已经运行结束,并且是失败

8 错误(Error) Vuser发生了错误,要了解错误的完整说明,就要查看单个vuser的详细状态日志

9 (Gragual Exiting)逐步退出 Vuser正在运行退出前的最后一次迭代

10 (Exiting)退出 Vuser已经完成操作,正在退出

11 (Stopped)停止 Vuser被停止

12 (Down)关闭 Vuser处于关闭状态

第九章测试结果分析

9.1 Analysis基础

Analysis包含的的主要窗口:会话浏览器(session explorer)区域;属性(properties)区域;图查看区域;图例(legend)。

Analysis的六大类分析图:虚拟用户(vusers)图;errors图;事务(transactions)图;web资源(web resources)图;网页细分(web page breakdown)图;系统资源(system resources)图。

性能测试分析流程:1从summary的事务执行情况入手;

2查看负载发生器和服务器的系统资源情况;

3查看虚拟用户与事务的详细执行情况

4查看错误发生情况

5查看web资源与细分网页

9.2 监控计数器的内容;

9.2.1 Memory(内存):

1. Available mbytes可用内存数

2. Page/sec(input/out)为了解析硬页错误,从磁盘取出或写入的页数。

3. Page fault处理器每秒处理的错误页

4. Page input/sec为了解决硬错误页,从磁盘上读取的页数

5. Page reads/sec为了解决硬错误页,从磁盘上读取的次数

6. Cache bytes文件系统缓存,默认情况下为50%的可用物理内存

7. Pool paged bytes 分页池中的字节数

8. Pool nonpaged bytes 非分页池中的字节数

9.2.2 Process(进程):

1. Page faults/sec每秒出错页面的平均数量

2. Private bytes 此进程所分配的无法与其他进程共享的当前字节数量

3. Work set 处理线程最近使用的内存页

9.2.3 Processor(处理器):

1. %processor time cpu利用率

2. Processor queue length 判断CPU瓶颈

3. Interrupt/sec 处理器接收并维护硬件中断的平均值

4. %user time 处理器处于用户模式的时间百分比

5. %privileged time 处理线程执行代码所花时间的百分比

6. %interrupte time 处理器在实例间隔期间接受和服务硬件中断 的时间

7. %DPC time 指在实例间隔期间,处理器用在延缓程序调用(DPC)接收和提供服务的时间百分比

8. Queue length 指跟踪服务器工作队列当前长度的计数器,该数值会显示出处理器瓶颈

9.2.4 Physical disk(磁盘):

1. %disk time 指所选磁盘驱动器忙于读或写入请求提供提供服务所用的时间的百分比

2. Average disk queue length 表示磁盘为读取和写入请求提供服务所用时间的百分比

3. Average disk read queue length 磁盘读取请求的平均数

4. Average disk write queue length 磁盘写入请求的平均数

5. Average disk sec/read 磁盘中读取数据的平均时间

6. Average disk sec/transer 磁盘中写入数据的平均时间

9.2.5 Network Interface(网络)

Byte total/sec网络中接收和发送字节的速度

9.3 性能测试结果分析

9.3.1 常见图标解读

1. Vusers(虚拟用户数)

Running vusers(负载过程中虚拟用户运行情况)

Rendezvous(负载过程中集合点下的虚拟用户数)

2. Errors(错误统计)

3. Transactions(事物)

average transaction response time(平均事务响应时间)

transactions per second(TPS 每秒事物数)

transaction summary(事务概要说明)

transaction performance summary(事务性能概要)

transaction response time under load(在用户负载下事务的响应时间)

transaction response time(事务响应时间的百分比)

transaction response time(distribution)(每个时间段上的事务数)

4. web resources(网页资源信息)

hits per second(每秒点击数)

throughput(吞吐量)

HTTP response per second (每秒HTTP响应数)

Conllections(连接数)

Connections per second(每秒连接数)

5. Web page diagnostics(网页分析)

Web page diagnostics(网页分析)

Download time(下载时间分析)

Component (over time)(组件随时间变化)

Download time(over time)(下载时间随时间变化)

Time to first buffer(over time)(第一次缓冲随时间变化)

Page download time breakdown(页面下载时间细分)

DNS resolution time 通过DNS服务器解析域名所需要的时间

Connection time 连接服务器所需要的时间,

SSL handshaking time 。SSL加密握手的时间

FTP authentication time:FTP认证时间

First buffer time:连接到服务器,服务器返回第一字节所需要的时间

Receive time 接收数据的时间

Client time 客户端浏览器接收所需要使用的时间

Error time 服务器返回错误响应时间

Page download time breakdown (over time)(页面下载时间细分随时间变化)

Time to first buffer breakdown(第一次缓冲时间细分随时间变化)

Time to first buffer breakdown(over time)(基于时间的页面请求组成分析)

9.3.2 性能测试结果分析

1.性能概要报告:显示关于场景运行情况的常规信息和统计信息,另外还提供所有相关的SLA信息。由以下部分组成:

(1)场景的总体统计信息:在“Analysis Summary”部分,可以看到统计信息:并发用户数、吞吐量、平均吞吐量、总点击数、平均点击数等信息。

(2)执行情况最差的事务(详见图5 Worst Transactions)

(3)超出SLA阀值的时间间隔“Scenario Behavior Over Time”部分显示不同的时间间隔内各事务的执行情况。

(4)事物的整体性:“Transaction Summary”列出每个事物的概要情况。

2.服务器性能的不稳定性:可以从Session Explorer窗格访问可用图。

3.测试结果分析的步骤

Analysis结果分析流程:

a.导入场景数据;

b.添加待分析的Graphs;

c.进行Graphs组合分析;

d.添加Transaction报告;

e.添加SLA分析报告;

f.生成性能测试报告;

详细的分析步骤:

(1)研究vuser的行为(Running vusers 图)

(2)筛选该图(Running vusers 图),仅查看所有vuser同时运行的时间段

(3)关联图:将两个图关联在一起比较数据,看到一个数据对另一个数据的影响,称之为关联两个图。

(4)保存模板

(5)分析关联后的图

第十章 HP LoadRunner高级应用

1.关联:在脚本回放过程中,客户端发出请求,通过关联函数所定义的关联规则在服务器所返回的内容中查找,将得到的相应的值以变量的形式保存下来,替换录制时的静态值,这样当脚本再次向服务器发出请求的时候,可以用此变量的值代替原来录制好的静态的值,向服务器发出正确的请求,这样东涛获得服务器相应内容的方法称为关联。

2.VuGen提供了两种关联方式帮助找出需要做的关联:

(1)LoadRunner自带的自动关联规则,在录制脚本时,会根据这些规则自动创建关联。

(2)LoadRunner通过对比录制和回访时服务器的响应不同,而提示用用户是否进行关联,用户可以自己创建关联规则。

3.关联函数:

(1)软件作自动关联的时候才拥有定义左右边界截取字符串方式时:web_reg_save_param_ex;

(2)使用正则表达式的方式选取字符串时:web_reg_save_param_regexp;

4.调试的方法:断点设置、单步跟踪、日志输出和对话框输出。

5.参数化:理解参数化

Sequential+each iteration、Sequential+each occurrence、Sequential+once、Random+each iteration、Random+each occurrence、Random+once、Unique+each iteration、Unique+each iteration、Unique+occurrence、Unique+once的不同及用法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: