1.什么是负载测试?什么是性能测试?2.性能测试包含了哪些测试(至少举出3种)3.简述性能测试的步骤4.简述使用Loadrunner的步骤5.什么时候可以开始执行性能测试?6.LoadRunner由哪些部件组成?7.你使用LoadRunner的哪个部件来录制脚本?8.LoadRunner的哪个部件可以模拟多用户并发下回放脚本?9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?10.什么是场景?场景的重要性有哪些?如何设置场景?11.请解释一下如何录制web脚本?12.为什么要创建参数?如何创建参数?13.什么是关联?请解释一下自动关联和手动关联的不同。14.你如何找出哪里需要关联?请给一些你所在项目的实例。15.你在哪里设置自动关联选项?16.哪个函数是用来截取虚拟用户脚本中的动态值?(手工管联)17.你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?18.你如何调试LoadRunner脚本?19你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。20.在运行设置下你能更改那些设置?21.你在不同的环境下如何设置迭代?22.你如何在负载测试模式下执行功能测试?23.什么是逐步递增?你如何来设置?24.以线程方式运行的虚拟用户有哪些优点?25.当你需要在出错时停止执行脚本,你怎么做?26.响应时间和吞吐量之间的关系是什么?27.说明一下如何在LR中配置系统计数器?28.你如何识别性能瓶颈?29.如果web服务器、数据库以及网络都正常,问题会出在哪里?30.如何发现web服务器的相关问题?31.如何发现数据库的相关问题?32.解释所有web录制配置?33.解释一下覆盖图和关联图的区别?34.你如何设计负载?标准是什么?35.Vuser_init中包括什么内容?36.Vuser_end中包括什么内容?37.什么是thinktime?think_time有什么用?38.标准日志和扩展日志的区别是什么?39.解释以下函数及他们的不同之处。Lr_debug_messageLr_output_messageLr_error_messageLrd_stmtLrd_fetch40.什么是吞吐量?41.场景设置有哪几种方法?1.什么是负载测试?什么是性能测试?负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。负载测试的加载方式也有很多种,可以根据测试需要来选择。性能测试是为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行。压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。2.性能测试包含了哪些测试(至少举出3种)压力测试、负载测试、并发测试、可靠测试、失效恢复测试。3.简述性能测试的步骤Step1.IdentifytheTestEnvironmentStep2.IdentifyPerformanceAcceptanceCriteriaStep3.PlanandDesignTestsStep4.ConfiguretheTestEnvironmentStep5.ImplementtheTestDesignStep6.ExecutetheTestStep7.AnalyzeResults,Report,andRetest4.简述使用Loadrunner的步骤脚本录制设置—录制脚本—调试脚本—场景设置—结果分析5.什么时候可以开始执行性能测试?在产品相对比较文档,功能测试完成后。灵活性比较强。6.LoadRunner由哪些部件组成?virtualusergeneratorcontorlleranalysis7.你使用LoadRunner的哪个部件来录制脚本?virtualusergenerator8.LoadRunner的哪个部件可以模拟多用户并发下回放脚本?contorller9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?集合点:设置多个用户到达某个用户数量点集合,同时触发一个事务,以达到模拟真实环境下同时多个用户操作,同时模拟负载,实现性能测试的最终目的LR_rendezvous(“集合点名称”)10.什么是场景?场景的重要性有哪些?如何设置场景?场景:模拟真实环境中,用户运行状况。1.通过场景来模拟实际用户的操作,性能测试结果才具有代表性。2.在运行过程中也需要关注场景性能测试值,测试过程是否正常。1.选择场景中需要的脚本2.选择为目标场景,还是指定的手工场景3.设置用户数、设置产生负载的设备4.设置执行策略milan2010-1-2219:29:2711.请解释一下如何录制web脚本?LR通过转发请求,来捕获数据包,来形成脚本12.为什么要创建参数?如何创建参数?参数:在环境变化时必须时脚本具有环境变化的能力,就需要参数化(客户端发送到服务器端)1.确定要参数话的数据2.设定规则形式来取值13.什么是关联?请解释一下自动关联和手动关联的不同。关联:很多构架用sessionid等方法标识不同任务和数据,应用在每次运行时方式发送数据不完全相同,需要利用的机制对录制的脚本进行处理,这种机制叫做关联(服务端发送到客户端)14.你如何找出哪里需要关联?请给一些你所在项目的实例。用户登陆,客户端发送请求后,服务端验证正确性后,发送给客户端sessionid,是某种规则产生。15.你在哪里设置自动关联选项?两地方可以设置1.设置允许录制时进行自动关联,可以自定义规则2.录制完成后,vuser-scanactionforcorrelations16.哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联)17.你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?Run-time,log,当调试脚本时,可以只输出错误日志,当在场景找你管加载脚本时,日志自动变为不可用。StandardLogOption:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中18.你如何调试LoadRunner脚本?VuGen有两个选项帮助调试Vuser脚本。RunStepbyStep命令和断点(breakpoints)。Option对话框中的调试设置(Debugsetting)项,可以确定在场景执行过程中执行轨迹范围。调试信息写在output窗口。可以用lr_set_debug_messag函数在脚本中手工设置信息类型。如果我们只想接收到一小段脚本的调式信息。19.你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。在创建用户自定义函数前我们需要和创建DLL(externallibary)。把库放在VuGenbin目录下。一旦加了库,把自定义函数分配做一个参数。该函数应该具有一下格式:__declspec(dllexport)char*functionname(char*,char*)。milan2010-1-2219:30:1023.什么是逐步递增?你如何来设置?Rampup这个选项用于逐渐增加服务器的虚拟用户数或负载量。设置一个初始值而且可以在两个迭代之间设置一个值等待。设置Rampup,请到‘ScenarioSchedulingOptions’。24.以线程方式运行的虚拟用户有哪些优点?VuGen提供了用多线程的便利。这使得在每个生成器上可以跑更多的虚拟用户。如果是以进程的方式跑虚拟用户,为每个用户加载相同的驱动程序到内存中,因此占用了大量的内存。这就限制了在单个生成器上能跑的虚拟用户数。如果按进程运行,给定的所有虚拟用户数(比如100)只是加载一个驱动程序实例到内存里。每个进程共用父驱动程序的内存,因此在每个生成器上可以跑更多的虚拟用户。25.当你需要在出错时停止执行脚本,你怎么做?lr_abort函数放弃虚拟用户脚本的执行。说明虚拟用户停止Action的执行,直接执行vuser_end然后结束执行。在出现错误情况下想手工放弃脚本的执行,这个函数是有用的。用这个函数停止脚本时,Vuser被指定为“Stopped”状态。为了这个函数起作用,开始时候就不能选择Run-TimeSettings中的Continueonerror选项。26.响应时间和吞吐量之间的关系是什么?吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间差不多在同时出现。27.说明一下如何在LR中配置系统计数器?通过Web资源监视器,利用这些监控器可以分析web服务器的吞吐量、点击率、每秒http响应数以及每秒下载的页面数。37.什么是thinktime?think_time有什么用?思考时间是真实用户在action之间等待的时间。例如:当一个用户从服务器接收到数据时,用户可能需要在响应之前等待几分钟回顾数据,这种推迟被称为思考时间。38.标准日志和扩展日志的区别是什么?StandardLogOption:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中39.解释以下函数及他们的不同之处。Lr_debug_messagelr_debug_message函数在指定的消息级别//处于活动状态时发送一条调试消息。如果指定的//消息级别未处于活动状态,则不发出消息。Lr_output_message要发送不是特定错误消息的特殊通知,Lr_error_message函数将错误消息发送到//输出窗口和Vuser日志文件Lrd_stmtlrd_exec函数执行lrd_stmt设置的SQL语句。Lrd_fetch函数从结果集中提取后续若干行resultset.函数准备用于//通过光标输出字符串(通常为SQL语句)//的下一结果集。对于CtLib,它发出ct_result//命令,并且在ODBC中它运行用于当前数据库40.什么是吞吐量?单位时间内系统处理客户端的请求数。41.场景设置有哪几种方法?目标场景,手工场景在LoadRunner中为什么要设置思考时间和pacing答:录制时记录的是客户端和服务端的交互,如果要精确模拟用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?录入填写提交的内容,从列表中下拉搜索选择特定的值等,这时LOADRUNNER不会记录用户的客户端操作,而是记录了用户这段时间,成为思考时间(Think-time),因为用户的这些客户端操作不会影响服务端,只是让服务器端在这段时间内没有请求而已。,所以加入思考时间就能模拟出熟练的或者生疏的用户操作,接近实际对于服务端的压力。Vuser思考时间模拟实际用户在不同操作之间等待的时间。例如,当用户收到来自服务器的数据时,可能要等待几秒钟查看数据,然后再做出响应。这种延迟就称为“思考时间”。VuGen使用lr_think_time函数将思考时间值录制到Vuser脚本中。以下录制的函数指明用户等待了8秒钟才执行下一个操作:lr_think_time(8);当您运行了Vuser脚本并且Vuser遇到了上述lr_think_time语句时,默认情况下,Vuser将等待8秒钟后再执行下一个操作。可以使用思考时间运行时设置来影响运行脚本时Vuser使用录制思考时间的方式。如何理解TPS?答:TPS主要还是体现服务器对当前录制的事务的处理速度快慢。TPS高并不代表性能好。TPS是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器