LoadRunner性能测试笔试/面试题
- 客户交付一个性能测试项目,请阐述你的实施流程。
测试设计阶段:
1)了解被测系统的性能需求,定义测试目标和范围;
2)了解系统的技术信息,如系统架构等;
3)确定测试方案、进度安排,并制定测试计划,场景设置方案,及需要收集的测试数据;
4)同相关人员协商讨论测试方案;
5)准备数据收集模板;不同项目的性能测试,需要收集的数据不同;针对性的制定一个模板,更符合需要;
测试环境准备:
1)技术准备;选择性能测试工具;测试方案中涉及到的技术问题;测试数据的收集方案实现;如:如何监控系统资源等;
2)搭建测试环境;
3)创建初始数据;如虚拟用户使用的账号等;
测试执行阶段:
1)录制脚本;
2)调试脚本;
3)执行场景;
4)收集测试数据,并简单整理;
测试分析阶段:
1)分析测试数据;
提交测试报告。
2.解释5个常用的性能指标的名称与具体含义。
l 并发:所有用户在同一时刻对系统执行操作,一般指做同一件事情或操作。
l 在线:所有用户在一段时间内对系统执行操作。
l 请求响应时间
从client端发出请求到得到响应的整个时间;
包括:client端响应时间+网络响应时间+Server端响应时间。
l 事务请求响应时间
完成相应事务所用的时间;这个是性能测试中重点关注的指标。
l TPS(Transaction Per Second)
每秒钟系统能够处理的交易或事务的数量。它是衡量系统处理能力的重要指标。TPS是LoadRunner中重要的性能参数指标。
l 点击率(Hit Per Second)
每秒发送的HTTP请求的数量;点击率越大对Server的压力越大
l 资源利用率
对不同资源的使用程度,如CPU,I/O,内存,……
3.写出5个Loadrunner中常用函数,并对其中2个举例说明用法。
字符串复制
strcpy(str,"Hello ") ;
字符串连接
strcat(str,"World !");
lr_message("str: %s",str);
sprintf(s, "%s love %s.", "I", “ocean"); //产生:“I love ocean. "
变量转为参数,将变量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.什么是集合点?设置集合点有什么意义?LoadRunner中设置集合点的函数是哪个?
集合点:是一个并发访问的点,例如在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,并发访问的目的。
注意:集合点经常和事务结合起来使用,常放在事务的前面,集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。集合点函数如下:lr_rendezvous(“SubmitData”)
6.HTML-based script与URL-based script的脚本有什么区别?
使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。
通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。
7.如何设置LaodRunner才能让集合点只对一半的用户生效?
在Loadrunner中,进入Controller->Scenario->Rendezvous …->Policy,系统弹出Policy对话框。在该对话框中可以设定集合点执行的策略。
第一项:表示当所有用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。
第二项:表示当前正在运行用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。
第三项:表示当X个用户到达集合点时,开始释放等待的用户并继续执行场景。
其中还有一项Timeout between Vusers,就30秒来说,当第一个用户到达集合点后,再等待30秒,如果在30秒内到达的用户数达到指定的数量,就开始继续执行场景。如果在30秒内还没有达到指定的用户数量,就不再等待,开始释放等待的用户并继续执行场景。
由上可知,将第一项用户数设置成50%可。
8.LoadRunner的Controller组件中Pacing参数的作用是什么?
设置LoadRunner中事务(trsaction)在每次循环中的间隔时间,系统可以利用该间隔时间进行相应事务的结束收尾工作的处理。加大Pacing参数,可使系统压力减小。
9.LoadRunner中如何监控Windows资源?
进入被监视windows系统,开启以下二个服务:Remote Procedure Call(RPC)和Remote Registry Service;在controller 中,Windows Resources窗口中右击鼠标选择Add Measurements,添加被监控windows的IP地址,选择所属系统,然后选择需要监控的指标就可以开始监控。
10.如果让QALoad模拟LoadRunner中只对关注的性能点进行迭代测试,你有什么好方法?
可以将QAload脚本中关注的事务点写成一个循环,如果进行长时间的综合场景测试,则可将其写成一个永真循环,如while (1) {事务点},则对关注的性能点进行循环,而脚本其他代码不会进行循环。
11.什么是负载测试?
负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试,例如,访问一个页面的响应时间规定不超过1秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大并发访问用户的数量。
12.什么是性能测试?
性能测试:指在一定的约束条件下(指定的软件、硬件、网络环境等),确定系统所能承受的最大负载压力。
13.说明