性能测试笔记讲解.docx

上传人:b****7 文档编号:23589702 上传时间:2023-05-18 格式:DOCX 页数:43 大小:4.21MB
下载 相关 举报
性能测试笔记讲解.docx_第1页
第1页 / 共43页
性能测试笔记讲解.docx_第2页
第2页 / 共43页
性能测试笔记讲解.docx_第3页
第3页 / 共43页
性能测试笔记讲解.docx_第4页
第4页 / 共43页
性能测试笔记讲解.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

性能测试笔记讲解.docx

《性能测试笔记讲解.docx》由会员分享,可在线阅读,更多相关《性能测试笔记讲解.docx(43页珍藏版)》请在冰豆网上搜索。

性能测试笔记讲解.docx

性能测试笔记讲解

2749555640

123456789

性能测试笔记

1.什么是性能测试

软件的功能:

对一个软件基本功能能够实现,比如:

银行卡能够正常转账成功(用户数=1)

软件的性能:

要求软件性能更好,一般关注多用户的使用情况,软件的响应时间。

响应时间例子:

登录一个软件,点击“登录”按钮时,多久能够显示成功登录的页面。

性能问题:

1.每秒平均浏览量:

2200次/秒

浏览量(PV,PageView):

即页面访问量或点击量,用户每次刷新即被计算一次

购票申请:

20万张/秒以上

自身设计浏览量100万次/小时浏览量280次/秒

2.响应时间的358原则:

3秒之内,客户比较满意

5秒之内,客户可以接受

8秒之内,客户可以忍受

大于8秒,无法忍受

3.一般进行性能测试之前,要对系统尤其是数据库进行备份

负载测试是一种正常的测试(在正常测试的指标下测出最大的负载量)

指标或者某种资源达到某种指标,比如响应时间达到多少,比如CPU负载100%等

压力测试和负载测试二者的区别:

负载测试强调系统在正常工作情况下的性能指标

压力测试的目的是发现在什么条件下系统的性能变得不可接受,发现应用程序性能下降的拐点

影响系统性能的主要因素

(1)硬件:

CPU,内存,硬盘,网卡及其他网络设备【最好解决】

(2)操作系统

(3)网络

(4)中间件(又叫应用服务器),web服务器

(5)数据库服务器

(6)客户端

(7)变成语言,程序实现方式,算法【最难解决】

客户端=服务端(Web服务器)=应用服务器=数据库服务器

性能测试主要关心两个部分:

web服务器和应用服务器。

客户端向服务器发送请求

服务器端向客户端返回应答(响应response)

性能测试的常用术语:

并发(Concurrency):

所有用户在同一时刻(一个时间点,可以精确到毫秒级)做同一件事情或操作,一般针对同一类型的业务

例如:

在信用卡审批业务中,一定数目的用户在同一时刻对已经完成的审批业务进行提交

做并发的测试就称为“并发测试”。

【发测试不包含睡眠时间】

在线(OnLine):

多用户在一段时间内对系统执行操作【包含睡眠时间】

并发测试与在线测试对系统的压力不同,一般来讲并发测试的压力和在线测试的压力的比值是10:

1。

例如:

200用户并发测试相当于2000用户在线测试。

并发测试一定是多用户。

请求响应时间

指从客户端发送一个请求开始计时,到客户端接到从服务器端返回的响应结果计时结束。

在一些工具中,请求响应时间通常被称为TTLB即“TimetoLastByte”,意思是从开始发送第一个请求开始,到客户端收到最后一个字节的响应为止所耗费的时间。

请求响应时间的单位一般为“秒”或者“毫秒”

再复杂的响应时间都可以分为3段:

请求的响应时间=客户端的响应时间+网络的响应时间+服务器的响应时间

一般测试放在内网里,带宽,网络不会成为瓶颈。

只用分析客户端的响应问题和服务器的响应问题。

一般客户端的响应很少有问题,一般只分析服务器响应问题即可。

事务响应时间:

用户完成某个具体事务(如跨行取款事务)所需要的时间。

事务可能包含多个请求。

比如点击“登录”按钮,到登录进页面。

事务的响应时间和请求响应时间的区别?

一个事务包含一个或多个请求(一般,一个请求指的是一个http请求)。

点击率:

每秒钟用户向web服务器提交的http请求数。

---点击率越大,对服务器的压力也越大

---注意:

点击不是指鼠标的一次“单击”操作。

因为在一次“单击”操作中,客户端可能向服务器发出多个HTTP请求(比如跳转页面需要更新展示图片等)。

点击量的计算:

假如单击“登录”按钮,请求一个页面登录后的欢迎页面中包含3个图片,则每个图片都需要重新发送一个http请求,所以,单击鼠标一次产生的http请求总数为4=1(登录请求)+3(图片请求)

点击率=点击量/时间

吞吐量:

用户在任意给定一秒从服务器端获得的全部数据量,单位是字节

吞吐量/传输时间=吞吐率

吞吐率很重要,反应了服务器的处理速度和性能,也是衡量网络性能的重要指标。

TPS(事务数/秒)

在性能测试过程中,要监控服务器系统的各项资源情况,比如:

CPU,内存,磁盘及网络等情况。

吞吐率和点击率的区别:

吞吐率:

指服务器每秒处理的数据量。

反应了服务器的处理能力,吞吐率越大,服务器处理能力越强。

点击率:

客户端每秒向服务器发送请求的数量。

反应了服务器的压力,点击率越大,服务器的压力越大

吞吐率受点击率影响,也受服务器性能的限制。

完美的吞吐率是:

在带宽充足的情况下,吞吐率随着点击率的增加而增加。

资源利用率

指对不同的资源系统的使用程度,包括web服务器,操作系统,数据库服务器,网络,硬件,是测试和分析瓶颈的主要参数

-如:

服务器cpu利用率,磁盘利用率等

它是分析系统性能指标进而改善性能的主要依据,因此是web性能测试工作的重点。

性能测试的策略(即方法):

重点测试方法:

基准测试,并发测试,综合场景测试,疲劳强度测试,极限测试,递增测试

基准测试:

一般做的是单用户测试(BenchmarkTesting)

----指测试环境确定以后,对业务模型中涉及的重要业务做单独的测试。

----目的是获取单用户执行时的各项性能指标,为多用户并发和综合场景等性能测试分析提供参考依据。

并发测试:

就是多用户的并发测试某个测试点。

并发测试对系统要求比较严格,因为要模拟一个瞬间压力。

并且要忽略系统的睡眠时间(思考时间)。

递增测试:

A)指每隔一定时间段(如5秒,10秒)加载不同数目的虚拟用户执行测试点操作,对测试点进行递增用户压力加载测试。

原因:

所有用户(5000)共同登陆可能会导致系统压力过大,进而影响到后面关心的测试点(buy)的性能,导致关心的测试点结果不准确,所以采取递增,分散一下前面的压力,使系统关心的测试点能够正常的测试。

(这里是递增着登陆)

B)测试一个测试点(如:

购票),先测试单用户,再测试20用户,40用户等情况,有利于分析,也称为递增测试。

(这里是递增着全套测试)

综合场景测试【重难点】:

通过对系统结构和功能的分析,对用户的分布和使用频率的分析,来构造系统综合场景的测试模型,模拟不同用户执行不同操作。

如10%的用户执行浏览首页,50%的用户执行查询订单,40%的用户执行订购机票,最大限度地模拟系统的真实场景,使用户预知系统投入使用后的性能水平。

没特别指明的话,一般都是指在线的。

Login不适合放在综合场景中运行。

综合场景:

号称能最真实的模拟实际的生产环境。

如测试时间为50分钟,则综合场景中的每个脚本都是在循环执行。

所以综合场景中不宜加入login测试点,因为不能真实模拟实际的生产环境。

疲劳强度测试:

是一种特殊的强度测试(压力测试)。

指在一定的压力下(如:

相同的用户数)长时间(疲劳)对系统进行测试,并监控服务器的各项资源情况。

如:

7x24小时,24小时(如移动电信银行的服务器)。

测试其服务器的稳定性:

指长时间的运行过程中,系统的各项资源及时间等指标表现是否正常。

内存泄露:

系统的服务器内存都被占用,而没有释放。

导致系统没有可用内存。

内存泄露测试:

通过LR监控时查看具体的几项指标,或者通过其它的专门内存泄露检测工具测试。

数据容量测试:

查看系统服务器能否实现大数量下使用情况,系统的各项资源表现情况。

如:

200G,或者3个T。

极限测试:

也叫“摸高测试”,测试系统的极限,如系统最大能承受的用户数,吞吐量等。

虚拟用户:

VirtualUsers

控制台:

Controller

分析工具:

Analysis

LoadRunner的三大组件:

虚拟用户脚本生成器(VirtualUserGenerator)---Creat/EditScripts【Generator:

生成器】

压力调度控制台(Controller)---RunLoadTests

压力结果分析器(Analysis)---AnalyzeTestResults

QTP(功能自动化的工具)和LR(性能测试工具)的区别:

QTP关心的是功能方面,LR关心的是性能方面。

QTP关心界面的控件属性(对象,对象的属性,属性值等)等,LR关心的是客户端和服务器之间往来的数据包。

LR的工作原理:

录制时,LR记录客户端和服务器二者之间的所有对话(数据包),形成脚本,回放时,LR模拟真实的客户端,向服务器发送请求。

并验证服务器的响应。

LR是怎么记录下数据包的:

(1)基于局域网的广播原理。

【这种用的很少】

(2)基于一种嗅探原理sniffer。

【目前在用的方式】

虚拟用户脚本生成器:

是用来生成脚本的

LR的常用术语:

虚拟用户(VirtualUser【简称VU】):

在场景中,loadRUnner用VU代替实际用户。

Vuser模拟实际用户执行操作。

一个场景可以包含几十,几百甚至几千个Vuser。

(每个虚拟用户是一个进程或者线程,一般用的是线程)

Vuser脚本(VirtualUserScript):

用于描述VU在场景中执行的操作。

(记录的客户端发送的请求。

事物(Transaction):

为度量服务器的性能,需要定义事务。

事务表示要度量的最终用户业务流程或操作。

为何要定义事务:

因为脚本中将关心的操作(如购票)定义为一个事务,则结果报告中(analysis)就会返回事务的响应时间。

不关心的操作就不需要定义成事务。

场景(Scenario):

场景是一种文件,用于根据性能要求定义在每一个测试回话运行期间发生的事件。

模拟真实环境中,用户运行的情况。

【将脚本放到控制台去运行(包括设置各种参数)】

综合场景:

将不同的脚本,至少3个放到控制台去共同运行一段时间。

具体定义见PPT。

测试注意:

----设置IE(清楚浏览器缓存):

进入工具Internet选项常规设置每次访问此页面时检查

----LR中修改参数:

进入ControllerRunTimeSettingTnternetProtocolProxy,选择NoProxy。

Jojo/bean

LR基本测试流程:

制定性能测试计划(部分)创建测试脚本编译,运行测试脚本【VUG】创建场景运行,监控场景,收集数据【Con控制台】生成测试报告,分析测试结果【analysis】

最好用英文命名

小技巧:

弹出结果

日志文件

Transaction事务

将一个操作设置成事务的目的:

获取操作的响应时间(在analysis报告里)

在带宽充足的情况下,完美的吞吐率应该随着点击率的升高而升高。

反过来,当服务器压力过大服务器处理能力不足时,吞吐率会随着点击率的增高而保持恒定或者降低,那么点击率也会受到相应影响而变慢。

即吞吐率和点击率是相互影响的。

脚本生成器可以模拟1个用户,多用户一定要用控制台来实现。

(控制台就是来生成管理多用户的。

基准测试是单用户测试,可用脚本生成器(生成的调试结果是没有响应时间的),但是也还是需要控制台。

因为结果要写到报告里。

(结果生成器analysis得出单用户测试的结果,比如响应时间等等)

疲劳测试和综合场景测试的区别就是时间的长短,疲劳测试运行的时间会长一些。

只要业务逻辑不变(操作不变),则不需要重新调试脚本,回归测试中可以直接利用原来脚本。

调试脚本时请频繁保存副本,因为LR回退键效果不是很好。

脚本必须现在脚本生成器进行运行,执行通过将脚本放入控制台,在控制台执行完毕后生成结果报告

总的吞吐率

服务水平等级协议

报告中事务响应时间的标准方差值:

越趋近于0,说明系统越稳定(每一项事务的响应时间非常相似)

90percent:

表示90%的事务都可以在该响应时间内完成。

代表一个大多数情况。

HTTP状态码:

200表示成功

4XX表示客户端的失败

5XX表示服务器的失败

当场景设定的duration时间结束时,所有的虚拟用户需要运行完当前的transaction以及action再结束。

基准测试执行方法

单用户执行脚本操作1分钟

单用户执行脚本操作5次

B/S脚本必须要有登陆,有退出(否则假退出其实链接还没断开,会影响测试结果)

Replaylog:

脚本执行日志

Recordinglog:

录制时的日志

Generationlog:

所有客户端和服务器二者之间的对话

快捷键:

ctrl+GGotoLine跳到某一行

跳到对应的日志

基准测试:

单用户测试。

3.41.71.81.6

为了规避第一次测试的不准确性,则有两种测试方法:

(1)设置循环5次(N次)

Run-timeSetting

循环5次,或者持续运行1分钟。

(取平均值)

Runlogic:

循环次数----设置为5

Pacing:

两次循环之间的步长值(时间间隔)----随机值2-4秒

Thinktime:

ignore(忽略思考时间),因为对结果没什么影响

Pacing:

步长值,为了更真实的模拟环境(断开连接,释放资源),一般选随机值

基准测试单用户对服务器压力不大,一般可以ignorethinktime。

监控资源:

监控服务器的资源

客户端的资源:

自己随时把握一下,不要成为测试的瓶颈即可。

(2)持续运行1分钟

当duration和run_timesetting中循环(runlogic)都有值的话,duration的优先级比较高【二者循环的位置都为action】

Runlogic:

循环次数----设置为1

Pacing:

步长值,为了更真实的模拟环境(断开连接,释放资源),一般选随机值

基准测试单用户对服务器压力不大,一般可以ignorethinktime。

监控资源:

监控服务器的资源

客户端的资源:

自己随时把握一下,不要成为测试的瓶颈即可。

并发测试执行方法:

脚本添加集合点

在控制台设置并发策略

注意:

refresh中有两个选择,看情况使用。

脚本和控制台的run-timesetting都设置的话,哪个优先级高?

控制台的优先级高!

脚本中的run-timesetting何时使用?

运行脚本的时候使用

并发测试有两个步骤:

1)脚本中加并发点(即集合点)

2)在控制台设置:

5个虚拟用户(VU),可以设置递增(不设也可),设置并发策略。

Run-timeSetting---忽略休息时间,因为需要瞬间压力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1