vlambda博客
学习文章列表

常见面试题目汇总(性能测试部分)

关注 我们,一起 学习+涨薪不掉队!

常见面试题目汇总(性能测试部分)

什么是负载测试?什么是性能测试?
负载测试是通过改变系统负载方式、增加负载等来发现系统中存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。负载测试的加载方式有很多种,可根据测试需要来选择。
性能测试是为获取或验证系统性能指标而进行的测试。通常情况下,性能测试会在不同负载情况下进行。
压力测试通常是在高负载情况下来对系统的稳定性进行测试,可更有效地发现系统稳定性的隐患和系统在负载峰值条件下功能的隐患等。

LR_OUT_MESSAGE函数
与LR_ERROR_MESSAGE函数分别有什么作用

LR_OUT_MESSAGE用于打印输出到控制台和output.txt文件中
LR_ERROR_MESSAGE用于打印错误,错误会以红色字体在控制台输出。

LR可以发现哪些常见的系统问题?
如内存泄漏、CPU瓶颈以及应用程序的问题。

场景设置有哪几种方法?
目标场景和手工场景

性能测试的分析原则流程是?
关键WEB指标-> 系统级关键指标-> 组件级关键指标-> 程序代码级关键指标

简述使用Loadrunner的步骤
测试计划—脚本录制设置—录制脚本—调试脚本—场景设置—结果分析

LoadRunner由哪些部件组成?
  Virtual User Generator
  Contorller
  Analysis

使用LoadRunner的哪个部件来录制脚本?
  Virtual User Generator

LoadRunner的哪个部件可以模拟多用户并发下回放脚本?
  Contorller

性能测试包含了哪些测试
  压力测试、负载测试、并发测试、可靠性测试

什么是集合点?设置集合点有什么作用?Loadrunner中设置集合点的函数是哪个?
集合点:设置多个用户到达某个用户数量点集合,同时触发一个事务,以达到模拟真实环境下多个用户同时操作,同时模拟负载,实现性能测试的最终目的
LR_rendezvous(“集合点名称”)

什么是吞吐量?
单位时间内系统处理客户端的请求数。 

如何录制web脚本?
LR通过转发请求,来捕获数据包,形成脚本

常见面试题目汇总(性能测试部分)

为什么要创建参数?如何创建参数?
在环境变化时必须使脚本具有环境变化的能力,就需要参数化(客户端发送到服务器端)

启用IP欺骗需要注意什么?
启用IP欺骗时一定要在终端机指定一个静态IP,不能设置为自动获取,使用完后通过REMOVE进行释放IP欺骗,并重启计算机。

如何找出哪里需要关联?请给一些你所在项目的实例。
用户登录-客户端发送请求->服务端验证正确性通过->发送给客户端SessionId

Client软件性能测试有哪些关注点?
最常见的为响应时间、以及资源占用内存、CPU、IO等

说明以下函数及他们的不同之处。
lr_debug_message 处于活动状态时发送一条调试消息。如果指定的消息级别未处于活动状态,则不发出消息。
Lr_error_message
函数将错误消息发送到输出窗口和 Vuser 日志文件
Lrd_stmt lrd_exec 函数执行 lrd_stmt 设置的SQL语句
Lrd_fetch 函数从结果集中提取后续若干行

标准日志和扩展日志的区别是什么?
Standard Log Option:选择标准日志时,会在脚本执行过程中,生成函数的标准日志且输出信息,供调试用。
扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中。

如何调试LoadRunner脚本?
VuGen有两个选项帮助调试Vuser脚本。Run Step by Step 命令和断点(breakpoints)。Option对话框中的调试设置(Debugsetting)项,可以确定在场景执行过程中执行轨迹范围。调试信息写在output窗口。可以用lr_set_debug_message函数在脚本中手工设置信息类型。

常见面试题目汇总(性能测试部分)

在LR中如何编写自定义函数?请给出一些在以前进行的项目中编写的函数。
在创建用户自定义函数前我们需要和创建DLL(external library)。把库放在VuGen bin 目录下。一旦加了库,把自定义函数分配一个参数。

什么是think time?think_time有什么用?
思考时间是真实用户在action之间等待的时间。例如:当一个用户从服务器接收到数据时,用户可能需要在响应之前等待几分钟回顾数据,这种推迟被称为思考时间。

Errors per Second是指什么?
是每秒错误数,是针对每秒出现的错误数进行统计,数值越小越好。

如何在LR中配置系统计数器?
通过Web资源监控器,利用这些监控器可以分析web服务器的吞吐量、点击率、每秒http响应数以及每秒下载的页面数。

响应时间和吞吐量之间的关系是什么?
吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间会同时出现。
随着并发用户的增加,系统CPU使用率也在逐渐增加,同时存在排队现象,如何分析结果
可能硬件存在瓶颈,可以通过增加CPU或磁盘,同时进行修改WINDOWS系统对于TCP连接数的限制。

什么是逐步递增?如何设置?
Ramp up这个选项用于逐渐增加服务器的虚拟用户数或负载量。设置一个初始值而且可以在两个迭代之间设置一个值等待。

常见面试题目汇总(性能测试部分)

以线程方式运行的虚拟用户有哪些优点?
VuGen提供了用多线程的便利。这使得在每个生成器上可以跑更多的虚拟用户。如果是以线程的方式跑,为每个用户加载相同的驱动程序到内存中,因此占用了大量内存。这就限制了在单个生成器上能跑的虚拟用户数。如果按进程运行,给定的所有虚拟用户数(比如1000)只是加载一个驱动程序实例到内存里。每个进程共用父驱动程序的内存,因此在每个生成器上可以跑更多的虚拟用户。

如何在出错时停止执行脚本?
lr_abort函数放弃虚拟用户脚本的执行。说明虚拟用户停止Action的执行,直接执行vuser_end结束执行。在出现错误情况下想手动放弃脚本的执行,这个函数是有用的。用这个函数停止脚本时,Vuser被指定为“Stopped”状态。使用这个函数时,开始时不能选择Run-Time Settings中的Continue on error选项。

欢迎补充!


无论上课或自学,

你首先需要准备:

每天 2 小时+的学习时间

每天坚持写代码的习惯!

有投入才有产出,

10k+的涨幅需要 1 年以上的努力!

祝你成功!


光荣之路出品