注:二八定律:80%员工在20%时间登录;80%员工在使用20%的功能
概念:性能测试是模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
1). 峰值:客户指定指标数值或场景需求数值,如:CPU80%以内、登录3秒、内存空间40%...
功能测试:验证软件系统操作功能是否符合产品功能需求规格,主要焦点在功能(正向、逆向);
性能测试:验证软件系统是否满足业务需求场景,主要焦点是业务场景的满足(时间、空间);
时间(对于应用服务器而言):软件的响应时间...
空间(对于硬件服务器而言):服务器的磁盘使用率、CPU使用率、内存空闲率...
提示:性能测试分类还有其他类型比如:配置测试、容量测试等
概念:通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量的测试。 (负载:向服务器发送请求)
提示:负载测试是通过逐步加压的方式来确定系统的处理能力、确定系统能够承受的各项阀值。例如:逐步加压,从而得到“响应时间不超过3秒”、“服务器平均CPU利用率低于80%”等指标的阀值。
概念:通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于【失效】状态。
1). 压力测试:是逐步增加负载,使系统某些资源达到饱和甚至失效。
(如:测试系统最多支持同时处理多少请求,超过此数数量系统瘫痪)
2). 负载测试:是逐步增加负载,确定在满足性能指标情况下,系统能承受的最大负载测试。
(如:登录3秒内,最多支持多少用户同时登录;如超出此数量,可能需要5秒钟或更多时间才能登录成功)
概念:并发测试就是【多用户】同时访问【同一个应用】
目的:测试应用服务器 指定功能 的同时访问数是否达到预期结果
概念:通过给系统加载一定的业务压力(理解为不断向系统发送请求)(如CPU资源在70%~90%的使用率)的情况下,运行一段时间,检查系统是否稳定
提示:通常稳定性测试,我们测试一段时间即可;(分阶段测试如:24小时、时间充裕的时候再测3×24小时,时间还是充裕的时候再测7×24小时来模拟长时间运行)
说明:指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力。通常情况下,吞吐量用“请求数/秒”或者“页面数/秒”来衡量。
说明:并发:它最简单的描述就是指多个同时发生的业务操作。(例如,100个用户同时单击登录页面的“登录”按钮操作。)
说明:响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回结果(返回的是一堆代码,正常说的响应时间不含浏览器解析接收到的代码的时间,但对客户而言是要包含浏览器解析时间的)整个过程所耗费的时间
1). 点击数不是通常一般人认为的访问一个页面就是1次点击数,点击数是该页面包含的元素(如:图片、链接、框架等)向Web服务器发出的请求数数量,由服务器的响应状态码(200)来统计。
说明:性能测试需求最终要体现在性能测试用例设计中,性能测试用例应结合用户应用系统的场景,设计出相应的性能测试用例,用例应能覆盖到测试需求。
说明:性能测试执行过程中,性能测试工具搜集相关性能测试数据,待执行完成后,这些数据会存储到数据表或者其他文件中,为了定位系统性能问题,我们需要系统分析这些性能测试结果。
1). HP LoadRunner是一种工业级标准性能测试负载工具,可以模拟上千万用户实施测试,并在测试时可实时检测应用服务器及服务器硬件各种数据,来确认和查找存在的瓶颈;
VuGen介绍:录制客户端和服务器之间的相关交互活动,它将自动生成相关模拟实际情况的API函数。
LR录制脚本功能由于兼容性问题,非常不好使,我们平时在工作中也不使用录制方式,在这里我们了解下它的录制过程;由于兼容性和录制多余操作,一般手写脚本。
【推荐-File】,Properties:属性-点击此按钮,可直接设置参数化引用名称对应的值;【点击】
table才能在相应的目录下创建一个对应的txt文件;在txt文件中最后一行的数据后面要多一个回车【推荐】,Add Row:添加行,在当前表格编辑数据;【可选】, Edit with Notepad:在记事本内编辑数据;【推荐】,Select next row:运行或迭代时对行的选择方式,Update value on:运行或迭代时对值的选取方式
说明:动态获取指定的数据,把获取的数据通过参数化方式在另一处引用
1.2 为什么要学习关联?
2. 测试的时候需要获取页面上指定的数据,注意是获取,而不是查找;
说明:Session ID:客户端与服务器交互时,服务器生成的一个唯一标识码; (通过标识码服务器可以区分多次交互对象是否同一客户端,浏览器只要不关闭标识码就不变;)
说明:检查点是在回放脚本期间搜索指定的文本或图片,从而验证服务器响应数据的正确性;
也是一般放在action函数后面,等页面加载出来了之后才能去查找,使用src属性+相对路径去查找(这些信息可以在网页的源码中找到),也可以使用alt属性查找
录制脚本的时候添加事务
运行脚本的时候添加事务
1. 站在代码角度,事务的开始与结束,其实就是指定一段代码为一个事务;
2. 而代码段内可以包含思考时间、业务代码、事务函数,所以说事务时间包含响应(业务),时间、思考时间、事务自身、其他函数(浪费时间)
3. 事务时间=响应时间+浪费时间+思考时间+事务自身执行时间
概念:集合点(rendezvous),在指定的地点集合指定虚拟用户(Vuser),条件满足时集合的虚拟用户,同时去操作同一事务;
说明:一个应用程序,有不同的操作功能且支持多用户同时应用,【模拟不同的用户进行不同的操作】,就是场景;(比如:机票网站,5个用户在进行注册业务,20个用户在进行订票操作,5个注册+20订票=场景)
(测试目标:LR提供了5种目标-虚拟用户数、每秒单击次数、每秒事务数、每分钟页面数、事务响应时间) 提示:每秒单击次数、每分钟页面数只适合Web项目;
3.3 目标场景5种 测试目标(每秒点击率&每秒事务数 在性能测试中用得比较多,直接体现服务器的负载能力)
-. Hits per Second目标:测试服务器每秒点击率(每秒点击数)(指定每秒点击数目标以及达到这一目标的最小用户数和最大用户数,如果最小用户数没有达到这个目标会自动加载用户)
(例如:需求100个人使用支付软件付款,在3秒钟内完成;预期目标时间为3秒,最少用户80,最多用户180)
在实际工作场景中使用最多的还是手工场景;
3. 标3:标1计划运行模式(虚拟用户初始化方式、虚拟用户启动加载方式、计划持续运行时间方式、计划完成用户退出方式)
schedule(基本计划):和实际计划相同,不同之处,基本计划只能设置虚拟用户在场景一次的启动和停止策略