您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 规章制度 > 性能测试基础培训--基本理论和流程规范
0性能测试基本理论和流程规范1主要学习内容/要点:•性能测试基本理论,术语以及模型介绍•性能测试的基本过程,各阶段的介绍•性能测试流程实例课程概览课程名称性能测试理论基础以及基本流程基本描述本课程介绍性能测试的理论基础,性能测试的基本流程课程目标:•了解性能测试的基本理论•了解性能测试的基本过程•了解性能测试流程各阶段规范2第一部分性能测试基本理论,术语及模型介绍第二部分性能测试基本流程,各阶段介绍第三部分性能测试流程典型的企业信息服务系统架构图:常见企业级系统架构一般分为:•客户端;•网络;•防火墙;•负载均衡服务器(硬件如F5、软件Apache等);•Web服务器;•应用服务器(中间件Weblogic、Tomcat等);•数据库服务器等涉及专业人员包括:•性能测试工程师;•系统管理员;•网络工程师;•DBA;•程序设计人员;架构示例3第一部分性能测试基本理论,术语及模型介绍什么是性能系统实现其功能的能力,对性能进行描述可以从宏观和微观两个层面宏观上:系统能稳定运行,高并发访问量下系统不宕机,一定数量的促销或抢购活动系统处理完需要的时间,系统能够支撑的访问量,系统每秒能够处理的交易或者事务数,系统的容量,系统能否支撑未来一段时间内访问量增加等。微观上:每笔交易或者每个事务的资源开销,包括CPU,磁盘的IO,网络传输,服务器的连接数,各种线程锁,线程池的使用情况,JVMheap的使用,内存的分配,回收,对象占用内存的大小,缓存的规则,条目大小,缓存的大小,命中率不未命中率,接口调用的响应时间,系统间交互的响应快慢等等4第一部分性能测试基本理论,术语及模型介绍性能指标衡量性能的好坏,需要使用一些性能指标来描述,以下是一些最常使用的性能指标:响应时间(ResponseTime):请求或者某个操作从发出的时间不收到服务器响应的时间的差值,一般统计的是事务的响应时间,响应时间是衡量系统性能的一个很重要的性能指标。吞吐率(TPSTransactionPerSecond):系统每秒钟能够处理的交易或事务的数量,一般统计的是每秒通过的事务数,TPS也衡量系统性能的一个很重要的性能指标响应时间和TPS两个非常重要的性能指标,任何系统的性能都可以用这两个指标来描述,针对不用的应用系统会衍生出一些别的指标,但都是从这两个指标转化而来的事务:自定义的某个操作或者是一组请求的集合。例如在登录页面,输入完账号密码,从点击登录按钮开始到跳转到新的页面且页面加载完全,这一步操作,我们定义为一个事务,对于打开一个页面,从浏览器中输入URL地址到页面加载完全,我们把这一过程定义为一个事务,它包括若干个HTTP请求,所以事务也是一组请求的集合。5第一部分性能测试基本理论,术语及模型介绍资源开销(SDServerDemand):每个交易或者事务对系统资源的消耗,是一个可量化的概念,用来衡量不同交易或者事务对资源的消耗程度。例如对CPU的消耗程度用消耗的CPU秒数来衡量,其计算逻辑为(1*CPU个数*CPU利用率)/TPS=每个事务或者交易的CPU开销。其他的磁盘IO以及网络传输有类似的计算方法。并发用户(Concurrency):真实用户的相邻操作之间会有一定的间隔时间(称之为思考时间),所以并发用户有绝对和相对之分。狭义的并发是某个时间点同时向服务器发出请求的并发用户数。广义上的并发是一段时间内向服务器发出请求的并发用户数例如电商的订单流程包括登录,浏览产品页面,加入购物车,去结算,确认商品清单,确认地址信息,使用券,提交订单,去支付。100个人同时在网站上下订单,但因为每个人执行订单流程中的步骤有快有慢,所以在同一时间点向服务器发出请求的是不会有100个的,会远小于100这个值,我们假设为10.那么这个100是相对的并发用户数,10为绝对的并发用户数。6第一部分性能测试基本理论,术语及模型介绍PV(PageView):即页面浏览量,或点击量;用户每1次对网站中的每个网页访问均被记录1次。用户对同一页面的多次访问,访问量累计。PV是衡量电子商务网站性能容量的重要指标。PV统计有全天PV,平均每小时PV以及高峰1小时的PVUV(UniqueVisitor):UV(独立访客),访问网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。UV统计也会有全天UV,平均每小时UV和高峰1小时的UVPV和UV是衡量web站点的两个重要的指标。PV/S由TPS通过一定的模型转化为PV。例如若把一个完整的页面定义为一个transaction,则TPS就可以等同于PV/S。PV于UV之间存在一个比例,PV/UV可以理解为平均每个人浏览的页面个数。这个比值会有一定的波动,促销期间的PV/UV比会略高于平时的PV/UV。所以用PV来衡量web站点的容量更准确。7第一部分性能测试基本理论,术语及模型介绍每秒点击率(Hit/S):每秒的Hit数,反映了客户端每秒钟向服务器端提交的请求数量,一个hit对应一次HTTP请求,性能测试过程中一般不请求静态的资源(JS,CSS,图片文件等),所以Hit/s一般指动态请求。订单转化率:访客访问网站时,把访客转化成网站的常驻用户进而再提升成网站的消费用户,而由此产生的消费率就是订单转化率,它是衡量电子商务网站运营水平的重要指标。计算方法是一段时间内(一般为1小时)的有效订单数(订单状态为C+M)/访问人数(UV)8第一部分性能测试基本理论,术语及模型介绍性能测试通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试测试类型针对不同的测试目的有以下的几种常见的测试类型:性能测试:系统在正常负载的情况的各项性能指标,即通过调整,找到合适的负载,使系统的资源的利用率处于中等的情况下,采集系统的各项指标负载测试:系统在不同的负载的情况的性能表现,可以得到系统在不同负载下的性能变化趋势,寻求性能的拐点。例如其他条件相同,分别测试系统在20,50,100并发用户下的各项性能指标,找到其变化的规律,找到系统的能达到的最大TPS,统计对应的响应时间和资源消耗9第一部分性能测试基本理论,术语及模型介绍压力测试:系统在高负载的情况下的性能表现,寻找系统能够承受的最大负载以及对应的系统吞吐率基准测试:针对确定的测试系统,代码版本执行的测试,采集性能指标,作为后期的版本对比稳定性测试:以正常负载或者稍高于正常负载施加于系统,进行长时间的测试,检测统能够稳定的运行,以及系统的各项性能指标会不会随着时间发生变化。扩展性测试:通常用于新系统,新环境的搭建,通过先测试单台服务器的处理能力,然后逐渐增加服务器数量,测试集群环境下的单台服务器的处理能力是否有损耗。10第一部分性能测试基本理论,术语及模型介绍业务场景与测试场景业务场景即业务流程,具体的业务操作的总和。描述的是具体的用户行为,可以通过对用户的行为进行分析得到,也可以根据以往的数据对业务场景进行估计。业务场景对性能测试非常重要,是性能测试场景的设计的重要来源。测试场景测试场景是对业务场景的模拟,测试场景应该尽可能的贴近真实的业务场景,但是有时由于条件所限制,会做一些调整和特殊的设置11第一部分性能测试基本理论,术语及模型介绍单场景与混合场景单场景测试场景中只涉及到单个的业务流程,目的是测试系统的单个业务在响应时间正常,系统资源利用正常的情况下所能达到的最大的TPS,测试系统的单个业务的容量。混合场景测试场景中涉及到多个业务流程,且各业务流程在混合的业务流程中占的比重会不同。目的是为了测试系统的混合业务在响应时间正常,系统资源利用正常的情况下所能达到的最大的TPS,测试系统的混合业务的容量。编号业务流程访问量占比(%)1浏览首页10%2浏览产品页40%3浏览三级页面20%4关键字查询25%5订单流程5%6总和100%12第一部分性能测试基本理论,术语及模型介绍业务模型或访问模型混合场景里含有多个业务流程,但是每个业务流程所占的比重会不一样,针对每个业务以及业务的比重,称之为业务模型,对于web站点,我们称之为访问模型一个简单的业务访问模型13第一部分性能测试基本理论,术语及模型介绍第二部分性能测试基本流程,各阶段介绍第三部分性能测试流程实例14第二部分性能测试的基本流程,各阶段的介绍性能测试的执行过程系统性能调优LoadRunnerVUGENLoadRunnerCONTROLLER&ANALYSIS阶段5分析测试结果,书写测试报告阶段4执行测试场景阶段3测试环境检查确认和准备测试场景阶段2创建虚拟用户脚本阶段1制定性能测试计划方案NOTE:这是LR的一个典型工作流程。15第二部分性能测试的基本流程,各阶段的介绍性能测试计划/方案制定计划/方案前需要做的事情熟悉业务流程,明确性能测试目的,不开发人员,业务人员,架构师,有经验的性能测试工程师沟通,找到性能点熟悉被测系统的架构,不其他系统的交互过程,系统的硬件配置信息,软件配置信息,对性能测试有重要影响的关键配置信息需要明确的列丼出来明确项目的上线时间点,目前项目的进度,可调配的资源包括环境和性能测试人员16第二部分性能测试的基本流程,各阶段的介绍制定性能测试计划/方案性能测试计划方案是性能测试的指导,是后续一序列测试活动的依据,完整的性能测试计划方案需要填写以下的几个部分:测试概述对整个测试项目进行整体的描述测试目的计划中必须有明确的测试目的,它是性能测试退出的判断条件测试环境明确的测试环境的软硬件信息,若有生产环境,除要有生产环境的详细信息外,还需要有环境的差异分析测试数据明确对测试数据的要求,例如可重复使用,参数的数量级,分布等测试场景最初设计的测试场景的细节,包括每个测试场景的设置,测试目的,对环境的调整,对测试数据的特殊要求等执行计划最初设计的测试场景的执行时间计划计划变更记录整个测试项目中的未按照计划执行的部分参与人员项目的参与人员以及每个人员的职责和分工风险控制预期的风险和不可控的因素以及它们对测试项目进度的影响第二部分性能测试的基本流程,各阶段的介绍创建虚拟用户脚本虚拟用户脚本是执行测试的前提条件,对整个性能测试的的结果的准确性有丼足轻重的影响。脚本的制作需要遵循一定的规范.良好的虚拟用户脚本至少需要满足以下的几点要求:虚拟用户脚本模拟的业务流程不真实用户的行为应该尽可能的保持一致,不能有过大的偏差。脚本有简要的描述,一些关键的执行步骤有注释,说明事务的定义准确,即事务的起始边界和结束边界位置正确,同时需要对事务的通过不失败进行明确的检查和判断,确保场景运行时事务的统计是准确的。合理进行参数化,是否参数化以及参数的分布,参数的取值和更新方式,参数的数量级等都会影响性能测试结果的准确性脚本中要明确是否需要做关联以及关联的位置合理准确,有些请求处理逻辑中的检查比较弱,虽然脚本能够运行成功,但服务器会抛exception。测试数据准确,有效,满足性能测试的要求。避免因为测试数据的不合理影响性能测试的结果脚本中的参数和变量的使用要合理。脚本中加入一些必要的控制逻辑,使脚本健壮,稳定运行。1718第二部分性能测试的基本流程,各阶段的介绍检查确认测试环境在测试环境搭建好后,需要确认测试环境,需要做以下的一些事情:收集并检查测试环境的软硬件信息检查部署的代码版本。测试环境各服务器是否部署监控程序,性能测试人员是否具备监控权限所有服务器的进程是正常对外提供服务确认系统是否具备执行性能测试的条件(可适当用小负载测试下系统)确认系统无外界干扰,性能测试执行过程中确保能独占该环境确认服务器所在的操作系统的状态正确,包括CPU,内存使用,磁盘空间剩余是否足够等对于数据库服务器,确保数据库的基础数据量满足测试需求,数据库中的表若有重大的改变,确认执行过runstat操作等......19第二部分性能测试的基本流程,各阶段的介绍设计测试场景测试场景的设置对性能测试的结果影响很大。执行测试之前务必确认场景的设置是否正确。以下
本文标题:性能测试基础培训--基本理论和流程规范
链接地址:https://www.777doc.com/doc-1071921 .html