南京市某高校计算机科学与技术专业性能测试与Loadrunner—考试
XXX科技学院试卷
20 /20 学年 第 学期
课程所属部门: 课程名称: 课程编号:
考试方式:(A、B、开、闭)卷 使用班级: 学院 班
命 题 人: 教研室(系)主任审核: 主管领导批准:
班级: 学号: 姓名:
题号 | 一 | 二 | 三 | 四 | 五 | 六 | 七 | 八 | 九 | 十 | 总分 |
得分 |
一、填空题(本题×小题,共×分 )
(试卷内容全部使用小四、宋体;英文用Times New Roman字体、题号用罗马数字)
1、………………
2、………………
二、
单项选择题(本题×小题,共×分)
1、………………
2、………………
三、是非题(对划“√”,错划“×”,本题共×小题,每小题×分,共×分)
1、………………
2、………………
四、名词解释(本题×小题,每小题×分,共×分 )
1、………………
2、………………
五、简答题(本题18小题,共100分 )
1、系统用户数、在线用户数、并发用户数三者的区别?(6)
系统用户数:该系统的注册用户数,可以是活跃的也可以是僵尸用户
在线用户数:登录系统的用户,在线用户数并不一定对服务器都产生压力,因为有人登录了什么也不干
并发用户数:正在与服务器进行交互的在线用户数,对服务器产生真正的压力
2、LoadRunner进行测试的流程?(6)
1:首先性能测试也是需要做性能测试的需求分析。
2:制定性能测试方案。
3:开发测试脚本。
4:设计测试场景
5:执行场景。
6:对场景进行监控
7:分析结果系统调优。
8:输出性能测试报告
3、什么是集合点?设置集合点有什么意义? LoadRunner中设置集合点的函数是哪个?(6)
集合点:是一个控制真正并发访问的点,通常和事务结合起来使用,一般放在事务开始的前面。
集合点只需要在脚本中插入lr_rendezvous()函数即可。
4、Loadrunner中脚本增强有哪些方式?脚本增强的意义是什么(6)
1、参数化——更加真实的模拟客户端数据
2、事务——为统计动作的响应时间,人为定义的一个时间戳
3、检查点——是为了检查业务是否成功,类似与Jmeter中的断言
4、集合点——为了实现真正意义上的并发
5、关联——为了解决脚本中动态数据,比如把脚步中写死的数据用一个变量替换
5、vuser_ init 动作包含什么?vuser_ end动作包含什么?(5)
Vuser_init中包含在脚本执行过程中只需执行一次的脚本。一般来说,所有需要初始化的都可以放在vuser_init里面,比如登录。
vuser_end中一般包含退出的过程,比如退出系统,主要在脚本执行完成或停止时运行,在设置了迭代次数时,vuser_end和vuser_int均只执行一次。
6、手动场景和面向目标的场景有什么区别?(6)
目标模式:目标场景:目标可能是吞吐量,响应时间或并发Vuser数或者点击率或者TPS等,Loadrunner为了达到这个目标,Load Runner自动管理和调节虚拟用户Vuser进行测试。
手动模式:可以手动控制运行的Vuser数量和时间。
7、LoadRunner哪三大组件是什么,他们的作用分别是什么(5)
脚本生成器Virtual User Generator,简称VuGen
压力调度和监控系统Controller
结果分析工具Analysis
8、LoadRunner中的Think Time有什么作用?(5)
思考时间:用户在各步骤之间停下来进行思考的时间,由于用户基于其经验水平和目标而与应用程序进行交互操作,因此技术水平更高的用户工作起来可能会比新用户要快。通过启用思考时间,可以使 Vuser在负载测试期间更准确地模拟其对应的真实世界用户。
9、树视图和脚本视图各有什么优点?(5)
Tree View的好处是使用户更方便地修改脚本,Tree View支持拖拽,用户可以把任意一个节点拖拽到他想要的地方,从而达到修改脚本的目的。用户可以右键单击节点,进行修改/删除当前函数参数属性,增加函数等操作,通过Tree View能够增加LoadRunner提供的部分常用通用函数和协议相关函数。
Script View适合一些高级用户,在Script View中能够看到一行行的API函数,通过Script View向脚本中增加一些其他API函数。
10、解释下列函数的意义(6)
10.1、web_url();
10.2、web_submit_form();
10.3、lr_eval_string();
10.4、lr_output_message();
10.5、lr_save_string();
10.6、web_reg_save_param();
web_url ,加载由“URL”属性指定的URL,比如打开苏汽的首页。
web_submit_data(),模拟表单数据的提交,比如苏汽的立即招车
lr_output_message ,将消息发送到输出窗口
lr_eval_string(“{参数名}”),取得参数的数值
lr_save_string(“字符串变量”,“参数名”),将字符变量里的值传递给指定参数
web_reg_save_param("参数名","LB=左边界","RB=右边界",LAST);
//注册函数,在参数值出现的前面使用(先定义后使用),左右边界需根据TreeView里相关步骤的SeverResponse代码来确定。用以上函数能获取符合条件的数值。
11、保持每次参数取值的唯一性:比如我有100个用户,准备100条数据,大家用到数据都是不一样的,采用什么样的参数取值方式?(5)
保持每次参数取值的唯一性:Unique+Once( 比如我有100个用户,准备100条数据,大家用到数据都是不一样的)
12、设计性能测试常用的场景有哪些,设计场景的流程有哪些,一般每个场景测试多长时间?(6)
基准测试:
无负载情况下,对功能点分别进行一段时间的持续运行,取得各功能点平均响应时间作为分析衡量指标,用于初步诊断系统是否存在性能瓶颈。(一般5分钟)
单场景 → 单独某个功能、接口,测试目标是多少(一般10--15分钟)
混合场景 → 发现线程死锁和数据库死锁(一般10--15分钟)
稳定性场景 → 系统是否稳定运行,发现系统是否有内存泄漏(过程)、内存溢出(结果,系统崩溃)(一般N*24小时)
在进行场景的压测时,相当重要的一点是要保证数据库表中有足够的数据量
13、性能测试的类型都有哪些?(6)
基准测试
配置测试
负载测试
压力测试
压力测试
稳定性测试
容量测试
14、什么时候执行性能测试,如何选择性能的业务,什么是Load Generator,它的作用是什么?(5)
功能测试通过(一般需要执行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块)。
在Controller中对场景进行配置后,就可以启动测试了。在测试过程中,Controller控制Load Generator对被测试系统的加压方式和行为。
Controller同时负责搜集被测系统各个环节的性能数据。各个Load Generator会记录最终用户响应时间和脚本执行的日志。
压力运行结束以后,Load Generator将数据传到Controller中,由Controller对测试结果进行汇总。
15、如果参数如果采用sequential+each iteration(顺序取值方式)方式,虚拟用户数设置5个用户,那么在迭代的时候,是怎么取得参数的?,假设迭代3次的取值是什么?(6)
所有的虚拟用户迭代方式如下:
第1次迭代:网页前端
第2次迭代:软件测试
第3次迭代:自动化测试
16、什么是逐步递增?你如何来设置?(5)
虚拟用户数随着负载时间逐渐增加,可以帮助确定系统响应时间减慢的准确时间点。
可以在如下选项卡中进行设置:如下图所示,将设置更改为:“每 15 秒启动 2 个 Vuser”
17、解释曲线拐点模型的含义?(5)
随着测试时间的变化,虚拟用户数的增加的压力的增加(从轻压力区到重压力区),然后响应时间、吞吐量、资源利用率等的变化趋势进入的一个拐点区区域。
18、如何监控Windows服务器资源(cpu、内存等),如何监控Linux服务器上资源(cpu、内存等),一般稳定系统的资源状态值是多少?(6)
Windows可以在Controller中添加Windows Resource度量参数等,以windows资源监控为例,可右键点“添加度量”,输入系统IP、选择平台类型,确定即可。
Linux中可以通过Linux命令:TOP 、Vmstat 、free和NMON监控等方式。
系统稳定性资源如下: