软件性能测试习题Word格式文档下载.docx
《软件性能测试习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件性能测试习题Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
●在线:
所有用户在一段时间内对系统执行操作。
●请求响应时间
从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:
VU3:
VU4:
(Unique,Once)
A,A,A
B,B,B
C,C,C
D,D,D
2.web系统脚本录制过程中,两次录制同一功能点,在ViewTree的ServerResponse中产生的字符串分别为:
ServerResponse:
name="
_id_Node"
value="
RSDP0013425"
/>
ENDITEM,
RSDP1203655"
为脚本回放成功,需要对字符串中某些字符做一定处理,写出详细实现方法。
答案(概要):
1、发现文中两个字符串为动态ID:
和"
;
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
888402
Seaworth Albany
0.04
Sales表:
SaleID
CustID
SaleMount
234112
499320
8000
234113
888402
6500
234114
5900
234115
890003
4500
要求:
1)
给出查询语句,描述:
在Customers表中查询名字为AA的查询语句;
2)
给出删除操作,描述:
在Sales表中删除SaleID为234115的语句。
3)
根据以下结果表给出多表查询语句。
Discount
0.05
8000
Seaworth 0.04
6500
5900
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"
>
CLIENT_SYN_ID1"
value=1142480138645>
请修改上面脚本,使之能够成功并发执行。
char*businessid;
char*clientid;
businessid=DO_GetUniqueString("
businessid\"
clientid=DO_GetUniqueString("
CLIENT_SYN_ID1\"
DO_SetValue("
businessidx"
businessid);
clientidx"
clientid);
businessid={businessidx}&
CLIENT_SYN_ID1={*clientidx}&
free(businessid);
free(clientid);
六、实践题
下面是一个项目的性能测试结果,请分析可能存在的性能问题。
Unix服务器性能监控(数据库服务器内存8G,上千万行大量数据)
监控对象
性能参数
说明
内存
Memory
RealFreeMBytes
可用自由内存总量,单位是兆字节
VirtualFreeMBytes
可用自由虚拟内存总量,单位是兆字节
网络NetworkInterface
BytesTotal/s
网络发送和接收的速率,单位是字节/秒
磁盘
PhysicalDisk
DiskReadKB/s
磁盘读取速率,单位是千字节/秒
DiskWriteKB/s
磁盘写入速率,单位是千字节/秒
处理器
Processor
CPUTime%
处理器执行非闲置线程时间的百分比
WaitTime%
处理器执行等待时间的百分比
Linux服务器性能监控(应用服务器内存4G)
AvailableSwapMBytes
显示Swap空间的剩余量,单位是千字节
FreeMemoryMBytes
可用自由内存总量,单位是千字节
表1单用户执行XX查询
时间特性表
测试过程说明
测试结果(时间单位:
秒)
用户数
响应时间
XX查询
1
51.77
资源特性表
最小值
平均值
最大值
数据库服务器资源特性
4474.00
4479.05
4487.40
16116.60
BytesTotal/sec
0.00
11.36
393.00
5539.28
8437.50
21.99
339.80
1.78
3.60
13.67
17.30
应用服务器资源特性
AvailableSwapKBytes
2045.60
FreeMemoryKBytes
49.40
49.44
49.50
24.29
807.40
15.25
143.20
0.26
4.00
表220用户并发执行XX查询
并发用户数
成功用户数
最小响应时间
平均响应
时间
最大响应
90%响应
20
82.29
83.15
84.42
83.60
4430.50
4963.65
6477.20
16115.70
16116.97
16120.90
2.40
175.82
2198.20
110732.71
196719.10
30.80
441.60
0.10
23.30
59.00
0.20
39.17