性能测试学习计划.docx

上传人:b****6 文档编号:6182825 上传时间:2023-01-04 格式:DOCX 页数:54 大小:1.47MB
下载 相关 举报
性能测试学习计划.docx_第1页
第1页 / 共54页
性能测试学习计划.docx_第2页
第2页 / 共54页
性能测试学习计划.docx_第3页
第3页 / 共54页
性能测试学习计划.docx_第4页
第4页 / 共54页
性能测试学习计划.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

性能测试学习计划.docx

《性能测试学习计划.docx》由会员分享,可在线阅读,更多相关《性能测试学习计划.docx(54页珍藏版)》请在冰豆网上搜索。

性能测试学习计划.docx

性能测试学习计划

一概念理解

1.性能测试目的?

答:

验证软件系统是否能够达到用户提出的性能指标。

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

1)评估系统的能力----测试中得到的负荷和响应时间数据可被用于验证所计划的模型的能力,并帮助作出决策。

2)识别体系中的弱点----受控的负荷被增加到一个极端水平,并突破它,从而修复体系的瓶颈或薄弱的地方。

3)系统调优---重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。

检测软件中的问题,长时间的测试执行可导致程序发生由于内存泄漏引起的失败,揭示程序中的隐含问题或冲突。

4)验证稳定性,可靠性---在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

2.系统实际用户数,系统在线用户数含义?

用户数:

是指计费系统所能允许记录的不同名称用户数量的最大值。

这个数值取决于计费系统硬件存储器容量和软件的支持能力

系统实际用户数:

系统额定的用户数量,如一个OA系统,可能使用该系统的用户总数是2000个,那么这个数量,就是系统用户数

系统在线:

在一定的时间范围内,同时在线用户数量

3.并发概念?

答:

并发是同时执行一个操作(同时像服务器提交申请)。

主要指当测试多个用户并同时访问同一个应用程序、同一个模块数据记录时是否存在死锁或其他性能问题,几乎所有的性能测试都会涉及并发测试。

4.理解负载测试,压力测试,容量测试,配置测试,基准测试,并发测试,疲劳测试的含义和区别

答:

负载测试(Loadtesting),负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。

直接添加用户数双击Down

-点击AddVuser(s)-点击Quantitytoadd输入框输入要添加的用户数,在原基础上添加用户。

压力测试:

压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。

(压力测试就是不断的向服务器增加用户数,直到服务器返回响应时间过长。

)Initialize5Vusersevery00:

00:

15(HH:

MM:

SS)(初始化每5个Vuser00:

00:

15(HH:

MM:

SS)),

StartVusersStart7Vusers:

2every00:

00:

15(HH:

MM:

SS)(开始Vuser的启动7个用户:

每15秒增加2个用户

DurationRunfor00:

05:

00(程序运行时间00:

05:

00)

StopVusersStopallVuserssimultaneously(停止Vuser的Vuser的同时停止所有)

容量测试(界限或极限值):

通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。

容量测试还将确定测试对象在给定时间内能够持续处理的最大负载(负载和或压力)的来的,和工作量。

配置测试:

就是查看配置项的内容是不是符合标准,也就是说是不是配置项起到了先前所预期的功能。

个人计算机;部件;外设;接口;可选项和内存;设备驱动程序。

基准测试:

是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。

并发测试:

主要指当测试多个用户并同时访问同一个应用程序、同一个模块数据记录时是否存在死锁或其他性能问题,几乎所有的性能测试都会涉及并发测试。

疲劳测试:

通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程(内存溢出)场景结束,没有释放内存(前提要清理内存)。

总结压力测试可以看作是容量测试,不是直接的测试目标。

压力测试的重点在于发现功能性测试所不易发现的系统方面的缺陷。

而容量测试是系统测试的主要目标内容,也就是确定软件产品或系统的非功能性方面的质量特征,包括具体的特征值。

容量测试更着力于提供性能与容量方面的数据,为软件系统部署、维护、质量改进服务,并可以帮助市场定位、销售人员对客户的解释、广告宣传等服务。

压力测试、容量测试,测试的方法相似、相通,在实际测试工作中,往往结合起来进行,以提高测试效率。

一般会设置专门的性能测试实验室,完成这些工作。

即使用虚拟的手段模拟实际操作,所需要的客户端有时还是很大的,所以性能测试实验室的投资较大。

(并发测试(获得最佳用户数和最大用户数)是为疲劳测试做准备)

5.性能测试指标包括哪些,每项的含义是什么?

答:

I/O(vmstat、iostat)、CPU(top)、内存(sar)、事务通过数、事务的响应时间(ART)、交易成功率、事务点击数、用户数)

6.怎么理解响应时间是从什么时候开始什么时候结束?

答:

(是通过记录用户请求的开始时间和服务器返回内容到客户时间的差值来计算用户操作响应时间)响应时间是提交请求和返回该请求的响应之间使用的时间。

7.每秒处理请求数,响应时间,点击率的缩写?

答:

事务的请求数(TPS),平均响应时间(ART),点击率(HPS)

8.什么是事务?

答:

事务是指用户在客户端做一种或多种业务的操作集,通过事务函数可以标记完成该业务所需要的操作内容(响应时间等)就是把多件事情当做一件事情来处理叫做事物.

9.什么是性能调优,什么情况下需要调优?

答:

通过指标的监控发现系统存在的性能缺陷,利用分析工具定位并修正性能问题。

系统响应速度太慢。

每秒所完成的系统输出/入低于预期。

相同的环境,但每秒钟所完成的批操作较先前少。

系统资源(如CPU、内存、硬盘或网络等)长时间处于耗尽的状态。

(环境、基准负载、性能指标响应时间多少S)

10.性能测试通用流程?

答:

性能测试需求(性能指标)

环境搭建(模拟现实环境)数据、

工具选择(性能

性能方案计划文档

场景设计

脚本设计

测试执行

结果分析(page/sec内存),CPU(top),内存(sar),I/O(iostat)

调优方案(代码级调优,数据库调优,架构调优)

性能测试报告

在本公司写好的脚本,到现场要改脚本的地方是(1.脚本请求的地址,证书(握手证书和加密证书)象EWP人员要)

11.怎么理解协议,http是指什么协议?

答:

协议:

计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。

httP:

超文本传送协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到Web浏览器。

(双方共用的协议)

12.分析简单http请求和http应答的报文体?

答:

http请求是从客户端到服务器端的请求消息包括,消息首行中,对资源的请求方法、资源的标识符及使用的协议。

http应答的报文体是xml格式的utf-8编码的字节流报文具体的内容包含在某个标签内

web_custom_request("EMP_HandShake","Method=POST",

"URL=http:

//{HostAdress}/user/handshake?

ota_version=AD-UMP-1.1.1-000000&app={AppName}&o=i",

"RecContentType=application/octet-stream",

"Body={ClientHelloBody}",

LAST);

协议:

通行双方共同约定的规则。

http协议(超文本传输协议):

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。

HTTP协议的主要特点可概括如下:

1.支持客户/服务器模式。

2.简单快速:

客户向服务器请求服务时,只需传送请求方法和路径。

请求方法常用的有GET、HEAD、POST。

每种方法规定了客户与服务器联系的类型不同。

由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:

HTTP允许传输任意类型的数据对象。

正在传输的类型由Content-Type加以标记。

4.无连接:

无连接的含义是限制每次连接只处理一个请求。

服务器处理完客户的请求,并收到客户的应答后,即断开连接。

采用这种方式可以节省传输时间。

5.无状态:

HTTP协议是无状态协议。

无状态是指协议对于事务处理没有记忆能力。

缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP报文结构:

http请求报文体:

方法-URL-协议/版本、请求头、请求正文

http应答报文体:

协议-状态代码-描述、应答头、应答正文

HTTP请求流程:

建立连接(客户端与服务器建立TCP连接)

发送请求:

(打开一个连接后,客户端把请求信息发送到服务器的相应端口上,完成请求动作提交)

发送响应:

(服务器在处理完客户端请求之后,要向客户端发送响应消息)

关闭连接:

(客户端和服务器端都可以关闭套接字来结束TCP/IP对话)

请求方法(所有方法全为大写)有多种,各个方法的解释如下:

GET请求获取Request-URI所标识的资源

POST在Request-URI所标识的资源后附加新的数据

HEAD请求获取由Request-URI所标识的资源的响应消息报头

PUT请求服务器存储一个资源,并用Request-URI作为其标识

DELETE请求服务器删除Request-URI所标识的资源

TRACE请求服务器回送收到的请求信息,主要用于测试或诊断

CONNECT保留将来使用

OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求

GET和POST请求的区别

(1)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTMLHEADER内提交。

(2)GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

(3)安全性问题。

正如在

(1)中提到,使用Get的时候,参数会显示在地址栏上,而Post不会。

所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用post为好。

(4)安全的和幂等的。

所谓安全的意味着该操作用于获取信息而非修改信息。

幂等的意味着对同一URL的多个请求应该返回同样的结果。

HTTP的状态响应码

100——客户必须继续发出请求

101——客户要求服务器根据请求转换HTTP协议版本

200——交易成功

201——提示知道新文件的URL

202——接受和处理、但处理未完成

203——返回信息不确定或不完整

204——请求收到,但返回信息为空

205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件

206——服务器已经完成了部分用户的GET请求

300——请求的资源可在多处得到

301——删除请求数据

302——在其他地址发现了请求数据

303——建议客户访问其他URL或访问方式

304——客户端已经执行了GET,但文件未变化

305——请求的资源必须从服务器指定的地址得到

306——前一版本HTTP中使用的代码,现行版本中不再使用

307——申明请求的资源临时性删除

400——错误请求,如语法错误

401——未授权

HTTP401.1-未授权:

登录失败

HTTP401.2-未授权:

服务器配置问题导致登录失败

HTTP401.3-ACL禁止访问资源

HTTP401.4-未授权:

授权被筛选器拒绝

HTTP401.5-未授权:

ISAPI或CGI授权失败

402——保留有效ChargeTo头响应

403——禁止访问

HTTP403.1禁止访问:

禁止可执行访问

HTTP403.2-禁止访问:

禁止读访问

HTTP403.3-禁止访问:

禁止写访问

HTTP403.4-禁止访问:

要求SSL

HTTP403.5-禁止访问:

要求SSL128

HTTP403.6-禁止访问:

IP地址被拒绝

HTTP403.7-禁止访问:

要求客户证书

HTTP403.8-禁止访问:

禁止站点访问

HTTP403.9-禁止访问:

连接的用户过多

HTTP403.10-禁止访问:

配置无效

HTTP403.11-禁止访问:

密码更改

HTTP403.12-禁止访问:

映射器拒绝访问

HTTP403.13-禁止访问:

客户证书已被吊销

HTTP403.15-禁止访问:

客户访问许可过多

HTTP403.16-禁止访问:

客户证书不可信或者无效

HTTP403.17-禁止访问:

客户证书已经到期或者尚未生效

404——没有发现文件、查询或URl

405——用户在Request-Line字段定义的方法不允许

406——根据用户发送的Accept拖,请求资源不可访问

407——类似401,用户必须首先在代理服务器上得到授权

408——客户端没有在用户指定的饿时间内完成请求

409——对当前资源状态,请求不能完成

410——服务器上不再有此资源且无进一步的参考地址

411——服务器拒绝用户定义的Content-Length属性请求

412——一个或多个请求头字段在当前请求中错误

413——请求的资源大于服务器允许的大小

414——请求的资源URL长于服务器允许的长度

415——请求资源不支持请求项目格式

416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段

417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。

HTTP500-内部服务器错误

HTTP500.100-内部服务器错误-ASP错误

HTTP500-11服务器关闭

HTTP500-12应用程序重新启动

HTTP500-13-服务器太忙

HTTP500-14-应用程序无效

HTTP500-15-不允许请求global.asa

Error501-未实现

HTTP502-网关错误

HTTP协议之长连接与短连接

分类:

网络知识2011-03-1520:

41638人阅读评论(0)收藏举报

 

HTTP协议之长、短连接

一、长连接与短连接:

长连接:

client方与server方先建立连接,连接建立后不断开,然后再进行报文发送和接收。

这种方式下由于通讯连接一直存在。

此种方式常用于P2P通信。

短连接:

Client方与server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。

此方式常用于一点对多点通讯。

C/S通信。

二、长连接与短连接的操作过程:

短连接的操作步骤是:

建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接

长连接的操作步骤是:

建立连接——数据传输...(保持连接)...数据传输——关闭连接

三、长连接与短连接的使用时机:

长连接:

短连接多用于操作频繁,点对点的通讯,而且连接数不能太多的情况。

每个TCP连接的建立都需要三次握手,每个TCP连接的断开要四次握手。

如果每次操作都要建立连接然后再操作的话处理速度会降低,所以每次操作后,下次操作时直接发送数据就可以了,不用再建立TCP连接。

例如:

数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,频繁的socket创建也是对资源的浪费。

短连接:

web网站的http服务一般都用短连接。

因为长连接对于服务器来说要耗费一定的资源。

像web网站这么频繁的成千上万甚至上亿客户端的连接用短连接更省一些资源。

试想如果都用长连接,而且同时用成千上万的用户,每个用户都占有一个连接的话,可想而知服务器的压力有多大。

所以并发量大,但是每个用户又不需频繁操作的情况下需要短连接。

总之:

长连接和短连接的选择要根据需求而定。

LoadRunner中web_custom_request和web_submit_data的差别

web_custom_request方法可以发送POST和GET类型的请求(只能看到请求获得的数据显示出来)不能显示

web_submit_data只能发送POST类型的请求(加密的数据也能显示出来)

所有web_submit_data方法发送的请求都可以使用web_custom_request来实现

web_custom_request可以实现web_submit_data无法实现的请求,

比如“查询所有邮件并删除”这个案例中,查询时我们使用关联把所有邮件对应的标识抓取成一个数组,如果使用web_submit_data来完成这个删除的请求,需要很多个web_submit_data请求才能完成,但使用web_custom_request就可以通过一个请求完成,方法是自己写代码拼一个web_custom_request 方法POST请求的Body值。

13.什么是关联,关联怎么应用?

答:

关联是指将客户端的数据与服务器端的数据建立联系,以获取服务器

端返回的动态数据。

web_reg_save_param_ex(

"ParamName=session",

"LB=

"RB=>",

SEARCH_FILTERS,

"Scope=Body",

"RequestUrl=http:

//127.0.0.1:

1080/WebTours/nav.pl?

in=home",

LAST);

14.添加事务的目的是什么?

答:

lr_start_transaction(”事务名称”),lr_end_transaction("事务名称",LR_AUTO);

(通过事务监控响应时间,需要做的就是在请求的发出前添加事务开始的计数器,在请求结束的地方添加一个事务的结束计数器,VuGen会自动计算函数间的时间差。

)系统操作的响应时间,验证某个功能承受压力的能力,事物来界定该功能在程序中的位置。

15.事务结果的状态有哪些,手工设置事务结果和自动返回事务结果是怎么设置,自动返回事务结果什么时候是正确的什么时候是错误的?

答:

事务开始lr_start_transaction(“事务名”);lr_end_transaction("事务名称",LR_AUTO);

自动添加事务点击InsertStartTransaction(Ctrl+T)和InsertEndTransaction(Ctrl+D)来添加事务。

LR_AUTO:

事物的状态被自动设置,如果事务执行成功,状态设置为PASS,如果执行失败,状态设置为FAIL,如果由于异常中断,状态被设置成STOP.

LR_PASS:

事务如果执行成功,代码的返回状态就是PASS。

LR_FAIL:

事务如果执行失败,代码的返回状态就是FAIL。

运行自动事务时,怎么变成手动设置事务函数lr_set_transaction_status();事务结束之前。

16.参数化的目的是什么?

答:

在脚本中,如果不使用参数,那么所有的测试数据是跟脚本绑定在一起的,如果需要测试不同的数据,需要运行一次,改一下,再运行。

如果使用了参数化,可以把多个测试数据保存起来,测试时脚本自动选择测试数据运行。

是向服务器批量提交符合业务逻辑的数据。

17.手动关联和自动关联区别,分别都怎么做?

答:

关联是指将客户端的数据与服务器端的数据建立联系,以获取服务器端返回的动态数据(自动关联是我们为关联设置规则,可以是具体的应用程序服务,这里的数据由所创建的规则替代。

在手工关联中,我们想要关联的数值被扫描并且编写关联函数完成关联。

VuGen内建自动关联引擎(auto-correlationengine),可以自动找出需要关联的值,并可以利用关联函数自动建立关联。

手动关联需要自行查找关联的对象,然后自行插入关联函数。

1.自动关联的方法是,你在tools-recordingoptions的correlation中,不选中enablecorrelationduringrecording的复选框的情况下进行自动关联,你可以先录制一个脚本,然后选择vuser-scanactionforcorrelation或者直接ctrl+f8来运行一下脚本,这样也能自动找到不同的地方而进行自动关联,此时你只需要钩选你需要关联的地方后点击关联即可。

2.手工关联,需要录制2个相同业务流程的虚拟用户脚本,然后通过tools-comparewithvusers来打开wdiff.exe对2个脚本进行比较,找到需要关联的部分,然后指定左右边界,然后将脚本中原来的值替换成参数即可.

18.怎么理解检查点的作用?

答:

在进行Web应用的压力测试时,经常会有页面间数据传递的操作,如果做性能测试时传递次数逐渐增多,页面间就会发生传递混乱的情况,或者客户端与服务端数据传输中断或不正确的现象。

为了解决这些问题,LoadRunner提供了在脚本中插入检查点的方法,就是检查Web服务器返回的网页是否正确。

在每次脚本运行到此检查点时,自动检查该处的网页是否正确,省去执行结束后人工检查的步骤和时间,进而加快了测试进度。

19.什么时候需要使用集合点,作用是什么?

答:

如果想让多个vuser同时进行某操作,那就要创建集合点了;集合点是为了衡量在加重负载的情况下服务器的性能情况lr_rendezvous("集合点名称");集合点函数可以帮助我们生成有效可控的并发操作。

集合点设置的策略有三种:

1种所有用户达到100%的加载的虚拟用户后才释放;2种是当到达集合点的用户是正在运行用户的100%时集合点释放;3种是到达多少用户释放,剩下的那个是超时时间。

20.cookies和session的含义和区别?

答:

用session,和cookie同时保存用户的信息,Session数据存于服务器,Cookie数据存于用户机器(1.session中保存的是对象,cookie中保存的是字符串。

2.session默认需要借助cookie才能正常工作)cookie的内容主要包括:

名字,值,过期时间,路径和域。

路径与域一起构成cookie的作用范围,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。

21.思考时间是什么?

答:

思考时间lr_think_time();就是一个事务要开始时思考的时间;(加入思考时间可以更真实的模拟系统的真实情况,压力也不一样)

22.动态链接库,头文件基本概念?

答:

动态链接库(DynamicLinkLibrary,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。

动态链接库文件的扩展名一般是dll,

头文件被大量使用的文件。

#include<>1头文件开头处的版权和版本声明;

(2)预处理块;(3)函数和类结构声明等。

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

当前位置:首页 > 表格模板 > 合同协议

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

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