Q1:甚么是负载测试?甚么是机能测试?
A1:负载测试是经由过程渐渐添加系统负载,测试系统机能的转变,并究竟肯定在知足机能目的的环境下,系统所能承受的最年夜负载量的测试,例如,拜候一个页面的照应时分划定不逾越1秒,负载测试就是测试在照应时分为1秒时,系统所能承受的最年夜并发拜候用户的数目。
机能测试:指在必然的约束前提下(指定的软件、硬件、搜集状况等),肯定系统所能承受的最年夜负载压力。
Q2.机能测试包括了哪些测试(最少举出3种)
A2:机能测试包括负载测试、压力测试、年夜数据量测试、委靡强度测试等。
Q3.甚么时辰起头睁开机能测试?机能测试稀有的步伐?
A3:
Q4.简述应用Loadrunner的步伐
A4:拟定机能测试打算— 开拓测试剧本— 想象测试场景— 实行测试场景— 监控测试场景— 阐发测试成果
Q5.甚么时辰能够起头实行机能测试?
A5:功用测试经由过程;普通需求中止机能测试的系统,都是用户量比力年夜、停业应用比力频仍、比力主要的功用模块。
Q6.LoadRunner由哪些部件构成?
A6:首要有三部门构成:
Q7.你应用LoadRunner的哪一个部件来录制剧本?
A7:应用Virtual User Generator录制测试剧本
Q8.LoadRunner的哪一个部件能够摹拟多用户并发下回放剧本?
A8:LoadRunner的Controller组件。
Q9.甚么是调集点?设置调集点有甚么意义?Loadrunner中设置调集点的函数是哪一个?lr中的调集点跟场景设置中全数初始化后在运转有甚么辨别?
A9:在机能测试进程中,需求摹拟年夜量用户在统一时辰,拜候系统并同时支配某一任务,能够经由过程设置配备摆设调集点来完成,多个用户同时中止某支配;
调集点能够在办事器上树立密集的用户负载,使LoadRunner能够或许测试办事器在负载情况下的机能。
设置调集点函数:lr_rendezvous( Meeting ); // Meeting是调集点称号
Q10.甚么是场景?场景的主要性有哪些?若何设置场景?
A10:场景用于摹拟用户理想停业支配;
LoadRunner中场景有手工厂景和面向方针的场景。
设置场景:选择场景类型、设置运转时设置、摹拟用户数、加减压格式、持续时分,设置配备摆设负载天生器。
Q11.请诠释一下若何录制web剧本?
A11:支配Virtual User Generator录制测试剧本,录制步伐:
1、选择合适的和谈
2、设置录制选项
3、起头录制
Q12.为何要树立参数?若何树立参数?
A12:LoadRunner在录制剧本的时辰,只是忠厚的记实了一切从客户端发送到办事器的数据,而在中止机能测试的时辰,为了更接近真实的摹拟实践应用,对某些信息需求每次提交分歧的数据,或应用多个分歧的值中止轮回输出。这时分,在LoadRunner中便能够中止参数化设置,以应用多个分歧的值提交应用请求。
【参数化】:应用指定命据源中的值来替代剧本录制天生的语句中的参数。
【参数化好处】
● 削减剧本的年夜小
● 供应应用分歧的值实行剧本的才干,加倍真实的摹拟实践应用。
【参数化步伐】
● 用参数替代Vuser剧本中的常量值
● 为参数设置属性和数据源
Q13.甚么是联络关系?请诠释一下主动联络关系和手动联络关系的分歧。
A13:【联络关系的界说】俭朴的说:就是把剧本中某些写死(固定)的数据,改动成静态的数据,或说将后面语句的成果数据保存上去,然后在前面的语句提交请求时应用这些数据。
【需求联络关系的条件前提】:
客户端需求从办事器端前往数据中取得部门数据,并将这些部门数据处置后作为自身下一次请求的一部门收回。
【主动联络关系与手工联络关系的分歧】:主动联络关系是在剧本录制进程中,VuGen会依照已拟定好的规律,主动找出需求联络关系的值或剧本录制完成后,实行剧本一次,经由过程Correlation Studio主动找出需求联络关系的数据,并成立联络关系;而手动联络关系是需求录制两份不异停业流程的剧本,输出的数据要不异,支配WinDiff东西,找出两份剧本之间分歧的中央,也就是需求联络关系的数据,再经由过程web_reg_save_param函数手动成立联络关系,将剧本顶用到联络关系的数据参数化。
Q14.你若何找出哪里需求联络关系?请给一些你地点项目的实例。
A14:
1、录制两份不异停业流程的剧本,输出的数据要不异
2、支配BeyondComparePortable东西,找出两份剧本之间分歧的中央,也就是需求联络关系的数据
3、经由过程web_reg_save_param函数手动成立联络关系,将剧本顶用到联络关系的数据参数化。
示例:
经由过程录制两份剧本,中止对照,可知jsessionid、sap-ext-sid、sap-wd-cltwndid、sap-wd-tstamp需求中止联络关系。
Q15.你在哪里设置主动联络关系选项?
A15:录制选项中中止设置,以下图所示:
Q16.哪一个函数是用来截取虚拟用户剧本中的静态值?(手工联络关系)
A16:Web_reg_save_param函数首要依照需求做联络关系的静态数据后面和前面的固定字符串来识别、提取静态数据,所以在做联络关系时,需求找出静态数据的左、右侧界字符串。
1.函数原型:
int web_reg_save_param (const char *ParamName, List of Attributes , LAST);
2.参数声明:
ParamNam:存放静态数据的参数称号
List of Attributes:其它属性,包括Notfound、LB、RB、RelFrameID、Search、ORD、SaveOffset、Convert、SaveLen。
● Notfound:指当找不到要找的静态数据时,怎样处置。
● Notfound=error,当找不到静态数据时,收回一个缺点信息,为LoadRunner的默许值。
● Notfound=warning,当找不到静态数据时,不收回缺点信息,只收回正告,剧本会连续实行下往不会连续。
● LB:静态数据的左侧界字符串,该参数为必选参数,并区分年夜小写。
● RB:静态数据的右侧界字符串,该参数为必选参数,并区分年夜小写。
● ORD:指提取第几回呈现的左侧界的数据,该参数为可选参数,默许值是1。假定值为All,则查找一切适宜前提的数据并把这些数据存储在数组中。
● Search:搜索的范围。可所以Headers(只搜索Headers)、Body(只搜索Body部门,不搜索Headers)、Noresources(只搜索Body部门,不搜索Header与Resource)或是All(搜索全数范围,此为默许值),该参数为可选参数。
● RelFrameID:相对URL而言,欲搜索的网页的Frame,此属性可所以All或是细致的数字,该参数为可选参数。
● SaveOffset:当找到适宜的静态数据时,从第几个字符起头才存储到参数中,该参数为可选参数,此属性值不成为正数,其默许值是0.
● Convert:可以的值有两种:
● HTML_TO_URL:将HTML-encoded数据转成URL-encoded数据格局。
● HTML_TO_TEXT:将HTML-encoded数据转成纯文字数据格局。
● SaveLen:从Offset起头算起,到指定长度内的字符串,才储存到参数中,该参数为可选参数,默许值为-1,暗示储存到开头全部字符串。
Q17.你在VUGen中什么时分选择封锁日记?什么时分选择尺度和扩展日记?尺度日记和扩展日记的辨别?
A17:在测试场景实行时,封锁日记,由于日记信息过量,也会影响机能测试成果;在调试测试剧本时,能够选择尺度或扩展日记,用于输入调试信息。
能够在运转时设置中,中止日记设置,以下图所示:
尺度日记:剧本实行进程中,将函数集及信息发送到日记文件中
扩展日记:能够将详细的剧本实行信息输入到日记文件中,能够选择以下三种扩展日记信息:
● 参数替代:剧本运转进程中,能够将参数及以后参数值输入到日记文件中
● 办事器前往的数据:将办事器前往给客户真个数据输入到日记文件中
● 初级跟踪:一切的虚拟用户信息和函数挪用输入到日记文件中
Q18.你若何调试LoadRunner剧本?
A18: 但凡采取以下方式调试LoadRunner测试剧本
● 断点
【方式】在剧本的肆意一行上按右键菜单或F9添加断点。
● 单步跟踪
【方式】经由过程菜单号令VUser— Run Step by Step或F10,能够节制剧本以语句为单元实行。
● 日记输入
【方式】经由过程日记输入函数lr_message、lr_log_message、lr_output_message输入。
● 对话框输入
综上,在理想测试任务中,根基上应用前三种方式,对话框输入根基上没用过。
Q19、你在LR中若何编写自界说函数?请给出一些你在之前中止的项目中编写的函数。
A19:在编写用户自界说函数之前,需求起首为函数树立内部库(DLL)文件,将这些库文件放在bin目次下,一旦库文件已被添加而且将用户自界说函数作为参数,函数应当为以下格局:__declspec (dllexport) char* (char*, char*)
Q20.在运转设置下你能更改那些设置?
A20:能够点窜Run Logic、pacing、Log、Think Time等,见下图;能够测试理想需求,点窜相干选项。
Q21.你在分歧的状况下若何设置迭代?
A21:在“运转时设置”中设置,以下图所示:
Q22.你若何在负载测试方式下实行功用测试?
A22:在负载测试方式下,能够经由过程同时运转数个虚拟用户,经由过程添加虚拟用户数,肯定办事器在多年夜的负载量下,仍然能够正常运转,我普通中止焦点功用支配,考证焦点功用运转是不是正常。
Q23.甚么是渐渐递增?你若何来设置?
A23:虚拟用户数跟着负载时分逐渐添加,能够帮助肯定系统照应时分减慢的准确时分点。
能够在“加压”选项卡中中止设置:以下图所示,将设置更改成:“每 30 秒启动 2 个 Vuser”
Q24.以线程格式运转的虚拟用户有哪些优点?
A24:以线程格式运转的虚拟用户,在默许环境下,Controller为每50个用户仅启动一个mmdrv进程,而每一个用户都按线程格式来运转,这些线程用户将同享父进程的内存,这就节流了年夜量内存空间,从而能够在一个负载天生器上运转更多的用户。
Q25.当你需求在犯错时遏制实行剧本,你怎样做?
A25:消除运转设置中的“Continue on error”复选框。
或应用lr_abort函数。
Q26.照应时分和吞吐量之间的关系是甚么?
A26:当系统吞吐量未抵达系统处置极限时,系统机能不会衰减,买卖平均照应时分普通也不会递增,当系统抵达吞吐量极限时,客户端买卖会在请求队列中列队等待,等待的时分会记真实照应时分中,故人易平均照应时分普通会递增。
Q27.声明一下若何在LR中设置配备摆设系统计数器?
A27:以windows资本监控为例,可右键点“添加怀抱”,输出系统IP、选择平台类型,肯定便可,详细参加LR自带支配手册^_^。
对监控分歧类型的支配系统,需求做一些筹办任务,可拜见监控支配系统资本部门。
Q28.你若何识别机能瓶颈?
A28:
自身的理解,瓶颈发作在以下几方面:
1、搜集瓶颈,如带宽,流量等构成的搜集状况
2、应用办事瓶颈,如中心件的根基设置配备摆设,CACHE等
3、系统瓶颈,这个比力经常运用:应用办事器,数据库办事器和客户机的CPU,内存,硬盘等设置配备摆设
4、数据库瓶颈,以ORACLE为例,SYS中默许的一些参数设置
5、应用法式本人瓶颈,
针对搜集瓶颈,此刻冒似很少,不外也不是没有,起首想一下若是有搜集的梗阻,断网,带宽被其他资本占用,限速等环境,应用法式或系统会是甚么环境,针对WEB,不过是超时,HTTP400,500之类的错,针对一些客户端法式,可以也是超时,失落线,办事器下发的,需求办事器前往的信息取得不到还有一种更较着的环境,应当就是事务提交慢,若是封装事务的代码再不圆满,普通酿成的缺点,不过就是数据提交不完整,或由于网终缘由+代码缺陷构成重复性提交。如斯综合上去,必定是推敲搜集有瓶颈,然后推敲搜集有标题时,如何往优化,是需求优化交互的一些代码,仍是接口之类的。
应用办事的瓶颈的定位,比力复杂,进修中,不外网上有良多资料能够参考的。普通像tomcat,weblogic之类的,有默许的设置,也有颠末架构和维护职员中止实验调试的一些值,这些值普通能够知足法式发布的需求,没必要中止太多的设置,可以我们熟习的最根基的就是JAVA_OPTS的设置,maxThreads,time_out之类的参数我们做借助LR,Jemeter或webload之类的东西,实行机能测试,特别是对应用办事构成了压力,若是应用办事有瓶颈,普通我们设置的log4j.properties,日记城市记实上去。然后依照日记,往进一步肯定应用办事的标题
系统瓶颈,这个定位固然说比力复杂,可是有良多先辈的阅历值参考,不作声明,置信誉LR的同业,也可以从机能记数器中得出一些目的值,加上nagios,cacti,能够很较着的看出系统哪些资本够用,哪些资本较着不敷用。不外,普通系统瓶颈的构成,是由于应用法式本人酿成的。关于这点儿的阐发和定位,就需求回进应用法式本人瓶颈阐发和定位了。
此刻根基一切的东东,都离不开数据库这个后台,数据库的瓶颈其实是不明白是甚么概念,数据库办理员的任务,数据库办理员平常做的任务,可以就是有瓶颈定位的任务,好比:查询一下V$sys_event,V$sysstat,v$syssql之类的表,比对一下平常正常环境下的监控数据,看一下有无异常等。其他方面,我也不是太体会。
应用法式瓶颈,这个是测试进程中最需求往存眷的,需求测试职员和开拓职员共同实行,然后定位,我这儿做的年夜都是实行性的,好比会有剧本往运转,开拓职员会连系jprofiler之类的东西,往看一下堆遍历,线程合成的环境肯定哪儿有标题。
年夜致是多么,没有理想支配过渐渐细化阐发,先能够监控一些稀有权衡CPU,内存,磁盘的机能目的,中止综合阐发,然后依照所测系统细致环境,中止初步标题定位,然后肯定更详细的监控目的来阐发。
Q29.若是web办事器、数据库和搜集都正常,标题会出在哪里?
A29:标题可以出在系统本人或应用办事器、或为应用编写的代码编写中。
Q30.若何发现web办事器的相干标题?
A30:能够支配web资本监控器发现web办事器相干标题,在场景实行进程中,能够支配监控器阐发web办事器吞吐量、每秒点击率、每秒HTTP照应数、每秒页面下载数,和web办事器硬件资本应用环境等。
Q31.若何发现数据库的相干标题?
A31:能够经由过程数据库监控器和数据资本图发现数据库相干的标题,例如在运转Controller之前,能够指定需求怀抱的资本,以后能够依照监控的数据,阐发数据库相干的标题。
Q32.诠释一切web录制设置配备摆设?
A32:选择录制和谈、设置录制选项、选择阅读器、选择存放途径、起头录制。
Q33.诠释一下笼盖图和联络关系图的辨别?
A33:笼盖图:归并两个图的内容,应用统一个X轴,归并图左Y轴显现以后图的值,归并图右Y轴显现被归并图的值。
联络关系图:以后勾当图的Y轴变成归并图的X轴,被归并图的Y轴酿成归并图的Y轴。
Q34.你若何想象负载?尺度是甚么?
A34:负载测试打算几多用户数目、应用甚么类型的机械、和在甚么状况下中止。首要基于两个主要的文档,任务分布图和事务信息,任务分布图告知我们在负载时分段内,某一个事务应用的用户数,岑岭应用率及低峰应用率均来自该文档;
事务信息告知我们事务名及优先级,在想象场景时能够参考。
Q35.Vuser_init中包罗甚么内容?
A35:Vuser_init中包括在剧本实行进程中只需实行一次的剧本。普通来讲,一切需求初始化的都能够放在vuser_init外面,好比登录。
Q36. Vuser_end中包罗甚么内容?
A36:vuser_end中普通包括参加的进程,好比参加系统,首要在剧本实行完成或遏制时运转,在设置了迭代次数时,vuser_end和vuser_int均只实行一次。
Q37.甚么是think time?think_time有甚么用?
A37:思虑时分:用户在各步伐之间停上去中止思虑的时分,由于用户基于其阅历水平和方针而与应用法式中止交互支配,是以手艺水平更高的用户任务起来可以会比新用户要快。
经由过程启用思虑时分,可使 Vuser在负载测试时期更准确地摹拟其对应的真实世界用户。
Q38.诠释以下函数及他们的分歧的中央。
A38:lr_debug_message:发送调试信息到输入窗口或停业监控日记文件中
lr_output_message:发送日记信息到输入窗口或停业监控日记文件中
lr_error_message:发送缺点信息到输入窗口或停业监控日记文件中
lrd_stmt:付与一个SQL语句用于处置
lrd_fetch:取得成果集中的下一行数据
Q39.甚么是吞吐量?
A39:客户端每秒从办事器领遭到的数据,或系统办事器每秒能处置经由过程的买卖数。普通跟着虚拟用户数的添加,吞吐量也添加,声明搜集带宽比力充分,反之,吐过跟着虚拟用户数的添加,吞吐量比力安稳,呈直线情况,则声明搜集带宽成为瓶颈,限制了数据传输。
Q40.场景设置有哪几种方式?
A40:面向方针的场景设置和手动场景
Q41.在中止机能测试的时辰,我们需求明白一些有用的机能目的,上面我们来列出一些首要的机能目的:
A41:
一是,通用目的(指Web应用办事器、数据库办事器必需测试项):
*ProcessorTime:指办事器CPU占用率,普通平均抵达70%时,办事就接近饱和;
*Memory Available Mbyte:可用内存数,若是测试时发现内存有转变环境也要注重,若是是内存走漏则比力严重;
*Physicsdisk Time :物理磁盘读写时分环境。
二是,Web办事器目的:
*Avg Rps:平均每秒钟照应次数=总请求时分/秒数;
*Avg time to last byte per terstion(mstes):平均每秒停业角本的迭代次数;*Successful Rounds:胜利的请求;
*Failed Rounds:掉败的请求;
*Successful Hits:胜利的点击次数;
*Failed Hits:掉败的点击次数;
*Hits Per Second:每秒点击次数;
*Successful Hits Per Second:每秒胜利的点击次数;
*Failed Hits Per Second:每秒掉败的点击次数;
*Attempted Connections:检验考试链接数。
三是,数据库办事器目的:
*User 0 Connections :用户毗邻数,也就是数据库的毗邻数目;
*Number of deadlocks:数据库死锁;
*Butter Cache hit:数据库Cache的射中环境。
web机能测试中,若何获得dns解析时分?
lr的help文档中提到了 ms_dns_* 的函数
Q42.若何中止场景想象?场景想象的主要性?
A42:
Q43.你在之前公司机能测试是怎样做的,用你做的最好的一个项目仔细说一下。
A43:
Q44.若何理解CPU、内存、磁盘之间的关系?linux支配系统中,监控CPU、内存、I/O的号令是?若何断定CPU、内存、磁盘的瓶颈?
A44:
Q45.若何理解linux支配系统的内存办理和线程调剂?
A45:
Q46.数据库中,为了尽量避免年夜表全表扫描,稀有方式有哪些?数据库锁的种类?若何写存储进程?
A46:
Q47.若是测试时辰发现事物照应时分很慢,你若何中止阐发定位标题缘由?
A47:
Q48.在一个文件里有一堆数字年夜概100多G,数字直接用逗号离隔的,试找出此中最年夜的100个数字
A48:
Q49.若何发现系统是不是存在内存走漏风险?若何定位内存走漏标题的缘由?
A49:
Q50.Cookie与session甚么意义?有甚么辨别?
A50:
Q51.socket超时缘由有哪些?
A51:
Q52.若何准确取得机能测试需求并中止停业建模?容量方案?机能预警?
A52:
Q53.银行流水号场景,需求对流水号中止参数化,请求支撑1000人并发10分钟,系统每秒处置100笔流水,若何想象参数化?
A53:
Q54.web系统中,username参数表为file类型,表中有12个值,分别A、B、C、D、E、F、G、H、I、J、K、L。测试场景中虚拟并发用户数设为4,迭代次数设为3,参数中Selectnext row与Update value on分别为(Sequential, Each Iteration)与(Unique, Once)时,写出迭代3次的取值环境。
A54:
Q55.
A55:
Q56.
A56: