软件性能测试习题.docx

上传人:b****5 文档编号:3534927 上传时间:2022-11-23 格式:DOCX 页数:14 大小:23.47KB
下载 相关 举报
软件性能测试习题.docx_第1页
第1页 / 共14页
软件性能测试习题.docx_第2页
第2页 / 共14页
软件性能测试习题.docx_第3页
第3页 / 共14页
软件性能测试习题.docx_第4页
第4页 / 共14页
软件性能测试习题.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

软件性能测试习题.docx

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

软件性能测试习题.docx

软件性能测试习题

软件性能测试

注:

本试卷中题目所涉及性能测试工具如无特殊说明则均为LoadRunner。

一、填空题

1.软件性能测试的目的是为了对软件系统的性能情况给于评价,并发现可能存在的性能问题。

2.常见的性能测试策略有、、、、。

答案:

基准测试,并发测试,综合场景测试,场景测试,负载测试,疲劳测试,极限测试,吞吐量测试,大数据量测试,内存泄漏测试等

3.LoadRunner由Analysis、Controller、VirtualUserGenerator三大模块组成,功能分别为录制脚本、创建运行及监视场景、分析测试结果。

4.在用LoadRunner进行性能测试过程中Run-TimeSetting的超时设置常用的有HTTP-requestconnecttimeout(sec)、HTTP-requestreceivetimeout(sec)、Stepdownloadtimeout三种。

5.QALoad中Datapool支持两种形式,分别为CentralDatapool和LocalDatapool。

二、简答题

1.客户交付一个性能测试项目,请阐述你的实施流程。

答案:

测试设计阶段:

1)了解被测系统的性能需求,定义测试目标和范围;

2)了解系统的技术信息,如系统架构等;

3)确定测试方案、进度安排,并制定测试计划,场景设置方案,及需要收集的测试数据;

4)同相关人员协商讨论测试方案;

5)准备数据收集模板;不同项目的性能测试,需要收集的数据不同;针对性的制定一个模板,更符合需要;

测试环境准备:

1)技术准备;选择性能测试工具;测试方案中涉及到的技术问题;测试数据的收集方案实现;如:

如何监控系统资源等;

2)搭建测试环境;

3)创建初始数据;如虚拟用户使用的账号等;

测试执行阶段:

1)录制脚本;

2)调试脚本;

3)执行场景;

4)收集测试数据,并简单整理;

测试分析阶段:

1)分析测试数据;

提交测试报告。

2.解释5个常用的性能指标的名称与具体含义(5分)

答案:

●并发:

所有用户在同一时刻对系统执行操作,一般指做同一件事情或操作。

●在线:

所有用户在一段时间内对系统执行操作。

●请求响应时间

从client端发出请求到得到响应的整个时间;

包括:

client端响应时间+网络响应时间+Server端响应时间。

●事务请求响应时间

完成相应事务所用的时间;这个是性能测试中重点关注的指标。

●TPS(TransactionPerSecond)

每秒钟系统能够处理的交易或事务的数量。

它是衡量系统处理能力的重要指标。

TPS是LoadRunner中重要的性能参数指标。

●点击率(HitPerSecond)

每秒发送的HTTP请求的数量;点击率越大对Server的压力越大

●资源利用率

对不同资源的使用程度,如CPU,I/O,内存,……

3.写出5个Loadrunner中常用函数,并对其中2个举例说明用法。

答案:

字符串复制

strcpy(str,"Hello");

字符串连接

strcat(str,"World!

");

lr_message("str:

%s",str);

sprintf(s,"%slove%s.","I",“ocean");//产生:

“Iloveocean."

变量转为参数,将变量str的值存到参数Param中

lr_save_string(str,"Param");

参数复制

lr_save_string(lr_eval_string("{Param}"),"Param_1");

参数转为变量

strcpy(str1,lr_eval_string("{Param_1}"));

4.简述LoadRunner的工作原理?

答案:

loadrunner会自动监控指定的URL或应用程序所发出的请求及服务器返回的响应,它做为一个第三方(Agent)监视客户端与服务器端的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应。

5.LaodRunner脚本中action()和init、end()除了迭代的区别还有其他吗?

答案:

集合点只能插入到Action部分,vuser_init和vuser_end中不能插入集合点。

action()和init、end()都可以插入事务点。

6.什么是集合点?

设置集合点有什么意义?

LoadRunner中设置集合点的函数是哪个?

答案:

集合点:

是一个并发访问的点,例如在测试计划中,可能会要求系统能够承受1000人同时提交数据,在LoadRunner中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner就会检查同时有多少用户运行到集合点,如果不到1000人,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000人时,LoadRunner命令1000人同时去提交数据,并发访问的目的。

注意:

集合点经常和事务结合起来使用,常放在事务的前面,集合点只能插入到Action部分,vuser_init和vuser_end中不能插入集合点。

集合点函数如下:

lr_rendezvous(“SubmitData”)

7.录制Web脚本时,生成的脚本中存在乱码该如何解决?

答案:

录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Supportcharset”,然后选择中支持UTF-8再次录制,就不会出现中文乱码问题了。

8.HTML-basedscript与URL-basedscript的脚本有什么区别?

答案:

使用“HTML-basedscript”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-basedscript”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。

通常,基于浏览器的Web应用会使用“HTML-basedscript”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的JavaApplet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-basedscript”模式进行录制。

9.network中的speedsimulation模拟的是什么带宽?

答案:

模拟实际生产环境中用户使用的带宽。

10.如何设置才能让集合点只对一半的用户生效?

答案:

在Loadrunner中,进入Controller->Scenario->Rendezvous…->Policy,系统弹出Policy对话框。

在该对话框中可以设定集合点执行的策略。

第一项:

表示当所有用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。

第二项:

表示当前正在运行用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。

第三项:

表示当X个用户到达集合点时,开始释放等待的用户并继续执行场景。

其中还有一项TimeoutbetweenVusers,就30秒来说,当第一个用户到达集合点后,再等待30秒,如果在30秒内到达的用户数达到指定的数量,就开始继续执行场景。

如果在30秒内还没有达到指定的用户数量,就不再等待,开始释放等待的用户并继续执行场景。

由上可知,将第一项用户数设置成50%可。

11.使用LoadRunner进行综合场景测试,如何设置能够使被测系统所受压力减轻,请分别加以说明。

答案:

若使被测系统所受压力减轻,可从如下方面进行综合调解:

1)将测试脚本中thinktime值加大并在控制台中按比例实现,此处thinktime指在transaction外部的时间;

2)Controller中Run-TimeSetting的Pacing设置值加大;

3)虚拟用户登录时使用递增策略,间隔稍长。

12.如何用LoadRunner实现多机联合性能测试。

答案:

多机联合测试模型能够有效的提供大负载量进行并行测试,并且具有负载均衡的能力,将大负载量分配到若干个代理PC机上进行联合测试。

相较于单个测试PC机进行独立测试所产生的负载量以及消耗的系统资源,多机联合测试模型能够产生规模更大的测试负载量,而且对每个代理PC机而言也大大减少了系统资源的消耗。

具体设置:

在控制台中的loadGenerator中添加相应代理PC机的IP地址,再测试连通性即可。

13.LoadRunner的Controller组件中Pacing参数的作用是什么?

答案:

设置LoadRunner中事务(trsaction)在每次循环中的间隔时间,系统可以利用该间隔时间进行相应事务的结束收尾工作的处理。

加大Pacing参数,可使系统压力减小。

14.LoadRunner中,如果Web窗体中包含有JavaScript脚本,那么在TreeView视图中显示可能会有问题。

如何解决这个问题?

答案:

可以在“General”选项中进行适当设置。

单击“Tools”菜单选择“General Options”。

进入图所示的设置窗口,切换到“Correlation”选项卡上,选中“Enable Scripting and Java applets on Snapshots viewer”的复选框即可。

  单击“OK”后,设置完毕。

15.LoadRunner中如何监控Windows资源?

答案:

进入被监视windows系统,开启以下二个服务:

RemoteProcedureCall(RPC)和RemoteRegistryService;在controller中,WindowsResources窗口中右击鼠标选择AddMeasurements,添加被监控windows的IP地址,选择所属系统,然后选择需要监控的指标就可以开始监控。

16.如果让QALoad模拟LoadRunner中只对关注的性能点进行迭代测试,你有什么好方法?

答案:

LoadRunner中把关注的性能点(如查询文档)放在脚本的Action()中运行,可以实现迭代的方式进行测试。

如果使QALoad模拟迭代的过程,可以将脚本中关注的性能点放在循环中实现。

如综合场景测试过程要执行1小时,则可以在Qaload的场景执行时间中设置1小时,在脚本相关处写条件永远为真的循环来实现。

 

三、LoadRunner工具使用题

1.web系统中,username参数表为file类型,表中有12个值,分别A、B、C、D、E、F、G、H、I、J、K、L。

测试场景中虚拟并发用户数设为4,迭代次数设为3,参数中Selectnextrow与Updatevalueon分别为(Sequential,EachIteration)与(Unique,Once)时,写出迭代3次的取值情况。

(Selectnextrow,Updatevalueon)    虚拟用户取值(VUi:

迭代时取值)

(Sequential,EachIteration)

VU1:

A,B,C

VU2:

A,B,C

VU3:

A,B,C

VU4:

A,B,C

(Unique,Once)    

VU1:

A,A,A

VU2:

B,B,B

VU3:

C,C,C

VU4:

D,D,D

2.web系统脚本录制过程中,两次录制同一功能点,在ViewTree的ServerResponse中产生的字符串分别为:

ServerResponse:

name="_id_Node"value="RSDP0013425"/>",ENDITEM,

ServerResponse:

name="_id_Node"value="RSDP1203655"/>",ENDITEM,

为脚本回放成功,需要对字符串中某些字符做一定处理,写出详细实现方法。

答案(概要):

1、发现文中两个字符串为动态ID:

"RSDP0013425"和"RSDP1203655";

2、对动态ID进行处理,利用下面函数,将动态ID的值取出保存在“id”变量中。

web_reg_save_param("id","LB=ServerResponse:

name=\"_id_Node\"value=\"","RB=\"\/>\",ENDITEM,",LAST);

lr_log_message("%s",lr_eval_string("{id}"));

3、在后续代码中如遇到该动态ID可由“id”变量代替。

替换形式如:

"Name=outboundFlight","Value={out}",ENDITEM

四、【数据库应用】

现有Customers表和Sales表的数据如下:

Customers表:

CustID    Name     City        Discount

449320    Adapto    PortLand        0.05

890003    AA      PortLand        0.05

888402    Seaworth  Albany        0.04

Sales表:

SaleID    CustID    SaleMount

234112    499320    8000

234113    888402    6500

234114    499320    5900

234115    890003    4500

要求:

1)  给出查询语句,描述:

在Customers表中查询名字为AA的查询语句;

2)  给出删除操作,描述:

在Sales表中删除SaleID为234115的语句。

3)  根据以下结果表给出多表查询语句。

SaleID    CustID    Name     Discount    SaleMount

234112    499320    Adapto     0.05      8000

234113    888402    Seaworth   0.04      6500

234114    499320    Adapto     0.05      5900

234115    890003    AA     0.05      4500

答案:

1)select*fromCustomerswhereName=‘AA’

2)deletefromSaleswhereSaleID=234115

3)selectSaleID,CustID,Name,Discount,SaleMountfromCustomers,SaleswhereCustomers.CustID=Sales.CustID

五、QALoad工具使用题

用Qaload5.1录制脚本,无法成功并发执行,部分内容如下:

DO_Http("GEThttp:

//192.168.107.189/layout/style/style1/icon-bg.gifHTTP/1.0\r\n"

"Accept:

*/*\r\n"

"Referer:

http:

//192.168.107.189/shouwencontroller?

command="

"GetShouwenhao&businessid="ar0000011199"&instanceid=&snian=&slaiwenleibie="

"&swenhao=&tasktype=&url=&CLIENT_SYN_ID1=1142480138645&businesstitle="

(后略)

通过对比,发现上述脚本包含2个动态ID号:

businessid和CLIENT_SYN_ID1,查看对应源文件,有如下内容:

inputtype="hidden"name="businessid"value="ar0000011199">

inputtype="hidden"name="CLIENT_SYN_ID1"value=1142480138645>

请修改上面脚本,使之能够成功并发执行。

答案:

char*businessid;

char*clientid;

businessid=DO_GetUniqueString("name=\"businessid\"value=\"","\">");

clientid=DO_GetUniqueString("name=\"CLIENT_SYN_ID1\"value=",">");

DO_SetValue("businessidx",businessid);

DO_SetValue("clientidx",clientid);

DO_Http("GEThttp:

//192.168.107.189/layout/style/style1/icon-bg.gifHTTP/1.0\r\n"

"Accept:

*/*\r\n"

"Referer:

http:

//192.168.107.189/shouwencontroller?

command=""GetShouwenhao&businessid={businessidx}&instanceid=&snian=&slaiwenleibie="

"&swenhao=&tasktype=&url=&CLIENT_SYN_ID1={*clientidx}&businesstitle="

free(businessid);

free(clientid);

六、实践题

下面是一个项目的性能测试结果,请分析可能存在的性能问题。

Unix服务器性能监控(数据库服务器内存8G,上千万行大量数据)

监控对象

性能参数

说明

内存

Memory

RealFreeMBytes

可用自由内存总量,单位是兆字节

VirtualFreeMBytes

可用自由虚拟内存总量,单位是兆字节

网络NetworkInterface

BytesTotal/s

网络发送和接收的速率,单位是字节/秒

磁盘

PhysicalDisk

DiskReadKB/s

磁盘读取速率,单位是千字节/秒

DiskWriteKB/s

磁盘写入速率,单位是千字节/秒

处理器

Processor

CPUTime%

处理器执行非闲置线程时间的百分比

WaitTime%

处理器执行等待时间的百分比

Linux服务器性能监控(应用服务器内存4G)

监控对象

性能参数

说明

内存

Memory

AvailableSwapMBytes

显示Swap空间的剩余量,单位是千字节

FreeMemoryMBytes

可用自由内存总量,单位是千字节

网络NetworkInterface

BytesTotal/s

网络发送和接收的速率,单位是字节/秒

磁盘

PhysicalDisk

DiskReadKB/s

磁盘读取速率,单位是千字节/秒

DiskWriteKB/s

磁盘写入速率,单位是千字节/秒

处理器

Processor

CPUTime%

处理器执行非闲置线程时间的百分比

WaitTime%

处理器执行等待时间的百分比

表1单用户执行XX查询

时间特性表

测试过程说明

测试结果(时间单位:

秒)

用户数

响应时间

XX查询

1

51.77

资源特性表

最小值

平均值

最大值

数据库服务器资源特性

内存

Memory

RealFreeMBytes

4474.00

4479.05

4487.40

VirtualFreeMBytes

16116.60

16116.60

16116.60

网络NetworkInterface

BytesTotal/sec

0.00

11.36

393.00

磁盘

PhysicalDisk

DiskReadKB/s

0.00

5539.28

8437.50

DiskWriteKB/s

0.00

21.99

339.80

处理器

Processor

CPUTime%

0.00

1.78

3.60

WaitTime%

0.00

13.67

17.30

应用服务器资源特性

内存

Memory

AvailableSwapKBytes

2045.60

2045.60

2045.60

FreeMemoryKBytes

49.40

49.44

49.50

网络NetworkInterface

BytesTotal/sec

0.00

24.29

807.40

磁盘

PhysicalDisk

DiskReadKB/s

0.00

0.00

0.00

DiskWriteKB/s

0.00

15.25

143.20

处理器

Processor

CPUTime%

0.00

0.26

4.00

WaitTime%

0.00

0.00

0.00

 

表220用户并发执行XX查询

时间特性表

测试过程说明

测试结果(时间单位:

秒)

并发用户数

成功用户数

最小响应时间

平均响应

时间

最大响应

时间

90%响应

时间

XX查询

20

20

82.29

83.15

84.42

83.60

资源特性表

最小值

平均值

最大值

数据库服务器资源特性

内存

Memory

RealFreeMBytes

4430.50

4963.65

6477.20

VirtualFreeMBytes

16115.70

16116.97

16120.90

网络NetworkInterface

BytesTotal/sec

2.40

175.82

2198.20

磁盘

PhysicalDisk

DiskReadKB/s

0.00

110732.71

196719.10

DiskWriteKB/s

0.00

30.80

441.60

处理器

Processor

CPUTime%

0.10

23.30

59.00

WaitTime%

0.20

39.17

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

当前位置:首页 > 初中教育 > 数学

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

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