第一篇:性能测试问题解决方法-19种情况(模版)
一、Error-27727: Step download timeout(120 seconds)has expired when downloading resource(s).Set the “Resource Page Timeout is a Warning” Run-Time Setting to Yes/No to have this message as a warning/error, respectively
处理方法:
Run-Time Setting------Internet Protocol------Preferences------Option------Step download timeout(sec)改为32000 A、应用服务参数设置太大导致服务器的瓶颈
B、页面中图片太多
C、在程序处理表的时候检查字段太大或多
二、错误现象:Action.c(16): Error-27728: Step download timeout(120 seconds)has expired when downloading non-resource(s)。
错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送一个请求到服务器端,如果超过120秒服务器端还没有返回结果,则出现超时错误。解决办法:首先在运行环境中对超时进行设置,默认的超时时间可以设置长一些,再设置多次迭代运行,如果还有超时现象,需要在“Runtime Setting”>“Internet Protocol:Preferences”>“Advanced”区域中设置一个“winlnet replay instead of sockets”选项,再回放是否成功。
三、Action.c(7): Error-27791: Server “192.168.1.77″ has shut down the connection prematurely
解决方案如下:
1、应用服务器死掉。小用户时程序上的问题,程序上处理数据库的问题
2、应用服务没有死。应用服务参数设置问题。例如:在许多客户端weblogic应用服务器被拒绝,而在服
务器端没有错误显示,则有可能是weblogic中的server元素的acceptbacklog属性值设得过低。如果连接
时收到connection refused消息,说明应提高该值,每次增加25%。
3、数据库的连接
在应用服务的性能参数可能太小了,数据库启动的最大连接数(跟硬件的内存有关)
4、有时关闭卡巴斯基也会解决如上问题
1)观察response time 是否 超出默认的120秒
2)检查服务器日志是否有异常以及负载是否过高
3)web_set_timeout 设置更长的超时超时上限
如
web.set_timeout(”CONNECT”, “360″);
web.set_timeout(”RECEIVE”, “360″);
web.set_timeout(”STEP”, “360″))观察response time 是否 超出默认的120秒这个问题,要详细分析了。
应该不会是LR自身造成的问题。
把时间调长,就是为了,定位问题在什么地方,而不是为了绕过这个错误的出现。
四、Action.c(38): Error-27492: “HttpSendRequest” failed, Windows error code=12002 and retry limit(0)exceeded for URL
在runtime setting中的preferences-->options-->http-request connect timeout(sec)的值设为999。
五、错误现象:Action.c(81):Continuing after Error-27498: Timed out while processing URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/ subOrderQuery.do 错误分析:这种错误常常是因为并发压力过大,服务器端太繁忙,无法及时响应客户端的请求而造成的,所以这个错误是正常现象,是压力过大造成的。
如果压力很小就出现这个问题,可能是脚本某个地方有错误,要仔细查看脚本,提示的错误信息会定位某个具体问题发生的位置。
解决办法:例如上面的错误现象问题定位在某个URL上,需要再次运行一下场景,同时在其他机器上访问此URL。如果不能访问或时间过长,可能是服务器或者此应用不能支撑如此之大的负载。分析一下服务器,最好对其性能进行优化。
如果再次运行场景后还有超时现象,就要在各种图形中分析一下原因,例如可以查看是否服务器、DNS、网络等方面存在问题。
最后,增加一下运行时的超时设置,在“Run-Time Settings”>“Internet Protocol:Preferences”中,单击“options”,增加“HTTP-request connect timeout” 或者“HTTP-request receive”的值。
六、Action.c(6): Error-26612: HTTP Status-Code=500(Internal Server Error)for http://192.168.0.8:10001/logonConsole.do;jsessionid={JSESSIONID2} 造成HTTP-500错误,有朋友告诉我如下几个可能:
1、运行的用户数过多,对服务器造成的压力过大,服务器无法响应,则报HTTP500错误。减小用户数或者场景持续时间,问题得到解决。
2、该做关联的地方没有去做关联,则报HTTP500错误。进行手工或者自动关联,问题得到解决。
3、录制时请求的页面、图片等,在回放的时候服务器找不到,则报HTTP500错误,若该页面无关紧要,则可以在脚本中注释掉,问题将会得到解决。例如:有验证码的情况下,尽管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不存在响应。
4、参数化时的取值有问题,则报HTTP500错误。可将参数化列表中的数值,拿到实际应用系统中进行测试,可排除问题。
5、更换了应用服务器(中间件的更换,如tomcat、websphere、jboss等),还是利用原先录制的脚本去运行,则很可能报HTTP500错误。因为各种应用服务器处理的机制不一样,所录制的脚本也不一样,解决办法只有重新录制脚本。
6、Windows xp2 与ISS组件不兼容,则有可能导致HTTP500错误。对ISS组件进行调整后问题解决。
7、系统开发程序写的有问题,则报HTTP500错误。例如有些指针问题没有处理好的,有空指针情况的存在。修改程序后问题解决。
查找后台日志发现报了很多0ra-01000错误,这是oracle达到最大游标参数值,google了下,最大原因可能是JDBC连接没关闭。最后查找weblogic连接池出了问题,很多连接没关闭。
七、Action.c(15): 错误-27496: 内部错误(呼叫客户服务): _eStat(7)!= LRW_ITEM_STAT_ENUM_UNHANDLED for HandledTask at 048E180C
八、Action.c(56): Error-27995: Requested link(“Text=计划管理”)not found [MsgId: MERR-27995] 方法:在IE中的工具—>Internet选项—>高级—>HTML设置中选择第二个脚本类型.九、错误-27279:内部错误(呼叫客户服务):Report initialization failed ,error code =-2147467259 [MsgId : MERR-27279 ] 建议重装一下LR.这种问题有可能和你安装有关.dll文件出错不是说写的程序就能修改的.十、设置了持续时间,出现错误为:27796, Failed to connect to server 'hostname';port_ld': 'reason'.10048.(凭记忆写的,不知道写错了没有)
成功的解决方法:
在注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters里,有如下两个键值: TcpTimedWaitDelay MaxUserPort 1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。
十一、如何解决LodRunner中报错关于Error-10489 : Exception was raised when calling per-thread-terminate function
在用Loadrunner实施性能测试时,采用Goal模式加压,存在如果持续长时加压时LoadRunner的Controller会报 Error-10489 : Exception was raised when calling per-thread-terminate function错误;
问题产生原因:
Unlike the earlier Windows versions, Windows 2000 and Windows XP have the default environment set to C:Document and Settings
在C盘(或是其它盘均可以)新建TEMP文件夹(为了后续设置临时文件准备)右键"我的电脑"->高级->环境变量->编辑修改TEMP变量目录,指身上面新建的目录,如我的指向C:TEMP->保存即可^_^
1> 问题描述Connection reset by peer.Error code : 10054 设置下载等的超时
用VuGen录制脚本后,回放或者加压的时候,可能会出现错误信息“Action.c(65): Error : socket6-Connection reset by peer.Error code : 10054”
这是因为,下载的速度慢,导致超时,所以,需要调整一下超时时间,方法如下: 在Run-time setting窗口中的‘Internet Protocol’-‘Preferences’设置set advanced options(设置高级选项),重新设置一下“HTTP-request connect timeout(sec)”
2> 问题描述:
Error:Failed to connect to server“192.168.2.192”:[10060]Connection Error:timed out Error:Server“192.168.2.192”has shut down the connection prematurely 原因:
1> 应用访问死掉
小用户时:程序上的问题。程序上存在数据库的问题 2> 应用服务没有死
应用服务参数设置问题 例如:
在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的server元素的AcceptBacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25% Java连接池的大小设置,或JVM的设置等
3> 数据库的连接
在应用服务的性能参数可能太小了 数据库启动的最大连接数(跟硬件的内存有关)
3> 问题描述
Error:Page download timeout(120seconds)has expired 分析原因:
应用服务参数设置太大导致服务器的瓶颈 页面中图片太多
在程序处理表的时候检查字段太多
十二、LoadRunner脚本中出现乱码:在录制Web协议脚本时出现中文乱码,在回放脚本时会使回放停止在乱码位置,脚本无法运行。
错误现象:某个链接或者图片名称为中文乱码,脚本运行无法通过。
错误分析:脚本录制可能采用的是URL-based script方式,如果程序定义的字符集合采用的是国际标准,脚本就会出现乱码现象。
解决办法:重新录制脚本,在录制脚本前,打开录制选项配置对话框进行设置,在“Recording Options”的“Advanced”选项里先将“Surport Charset”选中,然后选中支持“UTF-8”的选项。
十三、LoadRunner HTTP服务器状态代码:在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。
错误现象1:-404 Not Found服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。
错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。
解决办法:在出现错误的位置进行脚本关联,在必要时插入相应的函数。错误现象2:-500 Internal Server Error服务器内部错误,脚本运行停止。错误分析:服务器碰到了意外情况,使其无法继续回应请求。
解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。
十四、LoadRunner请求无法找到:在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。
错误现象:Action.c(41): Error-27979: Requested form not found [MsgId: MERR-27979] Action.c(41): web_submit_form highest severity level was “ERROR”,0 body bytes, 0 header bytes [MsgId: MMSG-27178]“ 这时在tree view中看不到此组件的相关URL。
错误分析:所选择的录制脚本模式不正确,通常情况下,基于浏览器的Web应用会使用”HTML-based script“模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用HTTPS安全协议,这 时则使用”URL-based script“模式进行录制。
解决办法:打开录制选项配置对话框进行设置,在”Recording Options“的”Internet Protocol“选项里的”Recording“中选择”Recording Level“为”HTML-based script“,单击”HTML Advanced“,选择”Script Type“为”A script containing explicit“。然后再选择使用”URL-based script“模式来录制脚本。
十五、LoadRunner不执行检查方法:在录制Web协议脚本中添加了检查方法Web_find,但是在脚本回放的过程中并没有执行。
错误现象:在脚本中插入函数Web_find,在脚本中设置文本以及图像的检查点,但是在回放过程中并没有对设置的检查点进行检查,即Web_find失效。
错误分析:由于检查功能会消耗一定的资源,因此LoadRunner默认关闭了对文本以及图像的检查,所以在设置检查点后,需要开启检查功能。
解决办法:打开运行环境设置对话框进行设置,在”Run-time Settings“的”Internet Protocol“选项里的”Perference“中勾选”Check“下的”Enable Image and text check“选项。
十六、LoadRunner回放Web Services协议脚本错误:LoadRunner 8.0版本在录制Web Services协议的脚本时正常,但在回放时会出现错误,提示停止脚本运行。
错误现象:利用LoadRunner 8.0版本来录制Web Services协议的脚本没有任何错误提示,回放脚本时会出现如下错误提示”Error:server returned an incorrectly formatted SOAP response“。
错误分析:出现此错误的原因是LoadRunner8.0在录制Web Services协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为,所以才会有此错误提示。
解决办法:下载两个补丁,分别为”LR80WebServicesFPI_setup.exe“和”lrunner_web_ services_patch_1.exe“安装上即可。
http://wenku.baidu.com/view/a576eb0a79563c1ec5da71c8.html
十七、业务:进入借款单(显示借款单列表),新建借款单,新建后显示借款单列表(新建的借款单在此列表中有显示)我是录制的脚本,可运行时,提示Action.c(112): 错误-26627: 对于“http://192.168.1.105:8080/T3/fee/feeLoanList.action”,HTTP 状态代码=404(Not Found)
解决: 说两点:
1.手动正常未必就真正常,LR加压的时候可能连接数占满了,所以出404 2.还有一种情况,脚本里有检查语句,叫什么lr_check还是什么的,就是一个脚本内部检查是否有该资源用的,不见着他我拼不出来,如果有,注释掉看看
十八、Action.c(38): Error-27492: ”HttpSendRequest" failed, Windows error code=12002 and retry limit(0)exceeded for URL
在runtime setting中的preferences-->options-->http-request connect timeout(sec)的值设为999 Runtime Setting>Preferences>Advanced区域中设置一个winlnet replay instead of sockets选项(不勾选此项报 Error-27727)
十九、错误-27279:内部错误(呼叫客户服务):Report initialization failed , error code =-2147467259 [MsgId : MERR-27279 ]
警告: 扩展 LrXml.dll 报告在调用函数ExtPerThreadInitialize时出现错误-1 错误: Vuser初始化扩展 LrXml.dll 失败。Vuser Terminated.建议你重装一下LR.这种问题有可能和你安装有关.dll文件出错不是说写的程序就能修改的.
第二篇:喷漆性能测试
6.4 喷漆性能测试(样品数量:每种颜色6套外壳)
试验条件:物理测试需要在注塑完成,产品放置72小时以后进行,化学测试则需6天以后。喷涂干燥 硬化后应在常温下放置48小时以后再进行试验。
试验方法:
1)把滤纸放于酸性(PH=2.6)溶液中充分浸透;
2)用胶带将浸有酸性溶液的滤纸分别粘在两套喷涂样品表面,确保滤纸与样品喷漆 表面充分接触,将样品放入试验箱。
3)测试时间以试验箱达到所需温湿度条件时开始计算。在24小时与48小时分别取 出一套样品,揭下滤纸,并放置2小时后,检查样品表面喷涂。
检验标准:样品表面无变色、起气泡、起皮、脱落、褪色以及其他与测试前状态不一致的现象。
6.4.5 镜面划伤测试
测试环境:室温(20~25° C);
测试目的:验证镜面耐硬物划伤性能的可靠性
样品数量:不少于2个
试验方法:将实验样品固定在划伤试验机上,接触部分为直径为1mm的碳化钨球,硬度为90.5~ 91.5,用载重(load)为500g的力在样品表面往复划伤50次,划线速度为3~4cm/秒,接触部分与被测面成90度角,对样品的X和Y轴两个轴向进行测试。每10次对镜面进行外观检查,并对镜面表面进行清洁。检验标准:镜面表面划伤宽度应不大于100μm(依靠目视分辨、参照缺陷限度样板)
6.4.6 紫外线照射测试
测试环境:50° C
测试目的:验证喷涂抗紫外线照射的可靠性
样品数量:不少于1套壳体
试验方法:在温度为50° C,紫外线为340W/mm2的光线下直射油漆表面48小时。
试验结束后 将手机外壳取出,在常温下冷却2小时后检查喷漆表面。
检验标准:印刷、电镀无褪色、变色、纹路、开裂、剥落以及与测试前不一致的现象。
6.4.7盐雾测试
测试环境:35° C
测试目的:测试样机抗盐雾腐蚀能力
试验方法:a.溶液含量:5%的氯化钠溶液b.将手机关机放在盐雾试验箱内,合上翻盖,样机用绳子悬挂起来,以免溶液喷洒 不均或有的表面喷不到。c.样机需要立即被放入测试箱。实验周期是48个小时。实验过程中样机不得被中途 取出,如果急需取出测试,要严格记录测试时间,该实验需向后延迟相同时间。d.取出样机,放置48小时进行常温干燥,对其进行外观检查。
检验标准:外观检查无异常:表面喷涂、丝印、电镀、装饰件、标牌等无脱落、起泡、腐蚀以及与测试前不一致的现象。
试验环境:温度20~25度,湿度65+/-20% 6.4.1 耐磨测试测试环境:室温(20~25° C);测试目的:喷涂/印刷等抗摩擦性能的可靠性 样品数量:不少于1套壳体
试验方法:将最终喷涂的手机外壳固定在RCA试验机上,用175g力队同一点进行摩擦试验。对于表面摩擦300cycles,侧面和侧棱摩擦150 Cycles。特殊形状的手机摩擦点的确定由测试工程师和设计工程师共同确定
检验标准:对于喷涂、电镀、IMD等,涂层不能脱落,不可露出底材质地;对于表面印刷类,印刷图案、字体不能出现缺损、不清晰现象。
6.4.2 附着力测试
测试环境:室温室温(20~25° C);高低温箱
测试目的:喷涂附着力测试
样品数量:不少于1套壳体
试验方法:选最终喷涂的手机外壳表面,使用百格刀刻出25个1mm2方格,划线应深及底材;使用毛刷将划线处的喷漆粉屑清除干净;再用3M610号胶带纸完全粘贴在方格面,1分钟后迅 速以90度的角度撕下胶带,检查被测区域表面。
检验标准:有涂层脱落的方格数应不大于总方格数的3%;单个方格涂层脱落面积不大于单个方格总面积的50%。
6.4.3 硬度测试
测试环境:室温(20~25° C);
测试目的:表面喷涂硬度的可靠性
样品数量:不少于1套壳体
试验方法:将铅笔芯削成圆柱形并在400目砂纸上磨平后,装在铅笔硬度测试仪上,以500g 的力度,铅笔与水平面的夹角为45度,在样品表面从不同方向划出30~50mm长的线条3~5条。对于喷漆表面的硬度标准为2H(三菱牌),500g的载荷;对于Lens表面的硬度标准为3H(三菱牌),500g的载荷;每划完一次都应将铅笔磨平。
检验标准:用橡皮擦去铅笔痕迹,目视喷漆、印刷、电镀、Lens表面无划痕。
6.4.4 汗液测试
测试环境:60° C,95%RH
测试目的:表面抗汗液腐蚀的能力
样机数量:不少于2套
注:部品由于使用场所、材质、色泽等有特殊要求时可以考虑采用其他标准。
7.2 整机状态下的可靠性试验
温度冲击测试(Thermal shock)
测试环境:低温箱:-40° C ;高温箱:+80° C
试验方法:将手机设置成关机状态放置于高温箱内持续30分钟后,在15秒内迅速移入低温箱并持续30分钟,为一个循环,共循环27次。实验结束将样机从温度冲击箱中取出,并在 室温下恢复2小时,进行外观、机械和电性能检查。
试验标准:手机各项功能正常;外观检验:壳体表面喷涂、丝印、电镀无气泡、褶皱、裂纹、起皮、脱落;装饰件无翘起、脱落以及其他与测试前状态不一致的现象。跌落试验(Drop Test)测试条件:1.5m高度,20mm大理石板。
试验方法:将手机处于开机状态,进行6个面的自由跌落实验,每个面的跌落次数为1次,跌 落之后进行外观、机械和电性能检查。对于翻盖手机,在跌翻盖一面时,应将一半样品合上翻盖跌,一半样品打开翻盖跌。
试验标准:手机各项功能正常;
外观检查:壳体表面无明显掉漆,无裂纹、破损、冲击痕以 及其他与测试前不一致的现象。振动试验(Vibration test)
测试条件:振幅:0.38mm;振频:10~30Hz;振幅:0.19mm;振频:30~55Hz;
试验方法:将手机开机放入振动箱。X、Y、Z三个轴向分别振动1个小时之后取出,然 后进行外观、机械和电性能检查。
试验标准:振动前5分钟内手机内存和设置没有丢失现象,后55分钟可以出现关机现象,手机各项功能正常,尤其是显示和SPL,外壳无严重损伤(如掉漆),内部元件无脱落。
湿热试验(Humidity test)
测试环境:60oC,95%RH
试验方法:将手机处于关机状态,放入温度实验箱内的架子上,持续60个小时之后 取出,恢复2小时,然后进行外观、机械和电性能检查。
试验标准:手机各项功能正常;外观检查:外观测试无异常(壳体、Lens表面无裂纹、气泡;Lens 无被腐蚀现象;金属、电镀壳体或装饰件无变色、腐蚀,以及无其他与测试前不一致的现象)。
高温/低温参数测试(Parametric Test)
测试环境:-10oC/55oC
试验方法:将手机处于开机状态,放入温度实验箱内的架子上。持续2个小时之后(与 环境温度平衡),然后在此环境下进行电性能检查,检查项目见附表1。
试验标准:手机电性能指标满足要求,功能正常,表面喷涂、电镀无裂纹等。高温高湿参数测试(Parametric Test)
测试环境:+45oC,95%RH
试验方法:将手机处于开机状态,放入温度实验箱内的架子上。持续48个小时之 后,然后在此环境下进行电性能检查。
试验标准:手机电性能指标满足要求,功能正常;结构检查:装饰件、Logo及机壳 等无脱落,壳体卡钩无脱出、断裂,外壳无变形;
外观检查:壳体表面无明显掉漆,无裂纹、破损、冲击痕以及其他与测试前状态不一致现象。高温/低温功能测试(Functional test)
测试环境:-40oC/+70oC
第三篇:LoadRunner测试工具教学存在问题及解决方法
LoadRunner测试工具教学存在问题及解决方法
href=“#”> 摘要:LoadRunner作为业内主流的负载测试工具在软件测试教学中被大量采用,同时在实际的项目性能测试中也被广泛使用。本文主要对高职院校现有软件自动化测试工具教学中存在的一些问题进行分析,并有针对性地提出了可操作的解决方案,以自动化测试工具为载体,可以有效开展性能测试教学。 关键词:LoadRunner;测试工具;问题;解决方法 中图分类号:G712 文献标识码:A 文章编号:1672-5727(2012)01-0104-03 随着我国信息产业的发展,产品的质量控制和质量管理将成为企业生存与发展的核心。一方面,企业对高质量的测试人才需求量逐步增加;另一方面,软件测试人才相对缺乏。近几年高职院校针对市场对人才的实际需要开设了软件测试相关课程,加大了对软件测试人才的培养力度。 在高职院校软件测试课程教学中,一般主要侧重三个方面:软件测试的基本概念和流程、常用的利用黑盒白盒等方法进行测试用例设计、一些主流测试工具的使用。而目前随着网络应用系统的广泛应用,软件系统对性能的要求越来越高,因此在很多实际项目应用中,性能测试被摆到越来越重要的位置,而性能测试比较功能等测试对测试人员有更高的要求。在让学生更好地掌握性能测试方法并在实际项目中灵活运用这方面,软件测试课程教学相对比较薄弱。 Loadrunner自动化测试工具教学目前存在的问题 由于在实际的软件测试中性能测试占据越来越重要的地位,因此一般在高职的软件测试教学中都会涉及性能测试,目前高职软件测试教学中多通过让学生操作自动化测试工具来开展性能测试,如常用的HP公司的LoadRunner,它是HP公司的一款预测系统行为和性能的工业标准级负载测试工具,它能通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。目前,大部分院校的教学重点放在教学生如何使用操作工具,而笔者通过几年的教学实践发现存在以下一些问题:(1)学生能利用工具进行功能操作,但对测试脚本不理解,无法进行基本的修改,以适应测试需求;(2)学生知道一些基本概念,但不能在实际测试中合理运用;(3)调试能力弱,不能较好地解决测试中遇到的基本问题;(4)缺乏对性能测试的总体和直观的认识,学生学习起来存在困难。 在实际教学中如何把握教学重点和难点,让学生真正对性能测试有所认识,并能进行实际应用,而不是单纯学习工具的操作方法,这是教学中亟须解决的主要问题。 解决方案及其实施 LoadRunner性能测试操作流程如图1所示。LoadRunner软件提供工具录制并生成测试脚本,测试人员通过设置并运行场景,最后通过收集的数据评价系统性能。在教学中一般会让学生学习这三个部分的操作,例如通过VGen录制并编辑脚本,利用Controller按照要求设置不同运行场景,最后通过Analysis生成并分析测试结果。整个流程学生都能够通过鼠标点击操作完成,但这对于性能测试是远远不够的,在教学中需要在以下几方面进行重点强化。 (一)理解基本函数,读懂测试脚本 LoadRunner能够通过录制的方式自动生成测试脚本,因此学生感觉比较简单。此外,编辑脚本中插入事务、集合点,参数化输入的操作也都可通过鼠标点击来一步步完成,但面对一段段自动生成的测试脚本,应该在哪里定义事务?集合点设在哪里比较合适?哪些数据需要参数化?学生往往无所适从。 因此,读懂测试脚本非常重要,面对LoadRunner大量的函数,要帮助学生理解基本常用函数的用法,在基于B/S结构的系统测试中主要包括以下函数,在教学中要求学生重点掌握这些函数的用法,理解函数结构。 1.web_url() 2.web_link() 3.web_submit_form() 4.web_submit_data() 5.web_add_cookie() 6.lr_think_time() 7.web_find() 8.web_reg_fing() 9.web_reg_save_param() (二)整合软件功能,设计教学案例 在LoadRunner软件教学中一些基本的概念和设置是学生必须掌握的,主要包括事务及事务的响应时间、集合点、数据参数化、检查点和关联设置等,通过鼠标点击能够快速地进行事务、集合点等设置,但如何让学生理解这些功能的灵活应用是教学中的重点和难点。通过教学实践,采取场景教学法可以有效帮助学生快速理解这些功能的实际应用。例如,在检查点功能的教学中,我们设计了7个教学案例,把软件的基本功能进行了整合,让学生充分理解这些功能的实际应用。 通过案例一(见图2)的教学和实践,学生能够发现问题:回放脚本时用了与以前一样的注册信息,为何没有提示任何错误,显示脚本运行“PASS”呢?该场景运行可让学生学习VuGen怎样区分脚本是否回放正确。一般情况下脚本回放错误都是页面无法找到,而只要页面返回了,VuGen都不会提示任何错误,仍会显示为PASS状态,这并不能说明脚本完成了相关操作,而只能说明服务器端正确接收到了客户端的请求并且返回了相应的数据,但并不代表操作在逻辑上是正确的。通过该测试场景我们了解到VuGen不会判断注册失败的错误,这就需要通过增加检查点来判断操作是否真正成功。 通过案例二(见图3)的教学和实践,学生能够理解通过检查点函数的执行,测试脚本能够自动检测返回页面上的信息,并给出检测结果。 通过案例三(见图4)的教学和实践,学生能够理解参数化在实际测试中的应用,通过参数化选取不同的用户注册信息,测试脚本能顺利通过检查点,自动完成多用户注册。 案例四(见图5)和案例五(见图6)需要进行对比教学,主要帮助学生理解在真实的项目测试中如何获得正确的事务响应时间。 案例六(见图7)和案例七(见图8)主要让学生理解关联的作用已经应用场合及方法。 在进行性能测试中经常需要度量用户完成一个操作需要多少时间,而通过案例四我们能够知道测试脚本执行并没有真正通过,此时事务时间的统计存在错误,并不是真实用户注册的事务响应时间。案例五设计的目的在于让学生理解实际测试中在绝大多数情况下对于事务都需要采用手工事务的方式来确保事务的正确性和事务时间的有效性。 同样,在Controller操作的教学中也可以设计几个不同的测试场景,把需要讲授的内容进行整合,让学生在实际应用中学习软件的主要功能。 场景一:手工场景设置方式,两组虚拟用户,运行在本地负载机,负载逐渐加载,持续一段时间后虚拟用户逐渐减压。该场景点击执行后立即执行。 场景二:手工场景设置方式,两组虚拟用户,一组在本地负载机运行,负载同时加压,脚本运行完结束;一组在远程负载机运行,负载逐渐增加,持续一段时间后负载同时停止。该场景点击执行后过一段时间执行。 场景三:手工场景百分比模式设置方式,两组虚拟用户,运行在本地负载机,逐步增加负载,持续一段时间后逐步降低负载,再次逐步增加负载,持续一段时间后,同时停止所有负载。该场景设定为某年某月具体时间开始执行。 场景四:创建目标场景模式,选取虚拟用户数目标设定。 通过以上四个场景的教学,让学生在应用中学习虚拟用户组、负载机、用户行为、测试场景等概念及操作设置。 (三)利用四步调试,明确问题定位 学生在开始学习LoadRunner时经常会遇到录制的脚本在试用中出现问题,在教学中可对脚本的运行设计以下四个步骤,帮助学生快速定位脚本问题: (1)确认在VU里SUSI(单用户单循环次数single user & single iteration); (2)确认在VU里SUMI(单用户多循环次数single user & multi iteration); (3)确认在controller中MUSI(多用户单循环次数multi user & single iteration); (4)确认在controller中MUMI(多用户多循环次数 multi user & multi iteration)。 第一步骤是验证脚本编写正确与否,尤其是学生进行了事务、集合点等操作后,脚本经常容易存在错误;第二步骤可以验证数据池是否正常运作;第三步骤验证并发功能;第四步骤是最终目的,验证软件系统的性能。 软件工程中对软件开发的种种行为都要制定一个proccess(过程),性能测试也是如此,按照过程来调试脚本和场景,能及早发现问题和定位问题。 (四)搭建测试环境,理解性能测试 在进行LoadRunner测试软件教学中,测试环境的搭建对学生理解性能测试非常重要。 目前应用比较广泛的网络客户/服务器软件(也称为B/S结构)的基本组成部分大致相同。最简单的网络软件构成(见图9),它的用户端只是一个浏览器,服务器则只有网络服务器。 现在广泛使用的商用网络软件中最常见的模型就是所谓三层体系结构,如图10所示。 针对网络软件在进行性能测试时,测试的入口是客户端,但关注的系统性能与网络环境、服务器等密切相关,因为在利用LoadRunner进行性能测试时,必须要搭建测试环境,让学生更好地理解测试结果的实际意义。在教学中可以按照图11所示组建测试环境,每组学生利用二台机器作为负载机,其中一台同时作为控制器,让学生理解单台负载机有一定的负载上线,服务器可以根据实际设备情况采用一台或二台,把应用服务器与数据服务器进行分离。此外,在准备测试环境时,需要把原始环境进行备份,以便恢复,方便教学。 只有在一定的测试环境下,LoadRunner提供的测试结果数据才有相应的意义,一方面,通过负载的变化,可以帮助学生理解LoadRunner收集的性能测试数据,如每秒事务数、每秒点击数、事务平均响应时间、带宽使用等情况。另一方面,通过搭建的环境,我们可以方便地监控服务器的各项性能指标,如服务器CPU、内存使用率、各个进程所使用的相关资源信息等,并在不同负载下对各个指标进行跟踪对比,使学生对性能测试有直观的认识。 (五)采用经验公式,设计负载压力 在LoadRunner软件的教学中难点不在于工具的使用,而在于测试场景中的数据如何产生,如测试中并发用户数为什么设为120,而不是300?如果对此没有一定的认识,仅仅学习工具的操作使用,并不能很好地在实际项目中开展性能测试,因此在教学中需要加入相应的易理解可操作的内容。在教学中可采用经验公式,让学生有可操作的依据,也便于理解。例如,在设计并发测试时可以利用如下公式: C=nL/T 其中C:平均并发用户数 n:login session的数量 L:login session的平均长度 T:考察的时间段长度 并发数峰值估算公式:C(max)≈C+3 在教学中通过利用这些经验公式,学生在实际场景设计中就有了可实施的具体方法,使性能测试具有实际意义。 参考文献: [1]于涌.精通软件性能测试与LoadRunner实战[M].北京:人民邮电出版社,2010.[2]赵艳玲.软件开发中的需求获取[J].现代电子技术,2007,(11):580-581.[3]柳纯录,黄子河,陈渌萍.软件评测师教程[M].北京:清华大学出版社,2005.作者简介: 徐芳(1970―),女,上海市人,硕士,浙江机电职业技术学院高级工程师,主要从事计算机工程的教学与研究。 高级性能测试工程师培训心得 --税务事业部 魏琳 从中国的软件现状来看,各式各样的软件层出不穷,但是好的却并不多,能够走向国际的更是少之又少。中国的软件要想与国际接轨,就必须要完善自己的软件产业,使软件产业走向正规化、国际化,从而更加完善自己的软件产品,这就使软件测试工程师的人员缺口很大。很多人认为软件测试无非就是找错误,挑程序员的毛病,仅此而已,其实不然,测试并不只是单纯的挑刺,更多的意义是在辅助程序员,让程序员的程序更加完美,让公司的产品能够更稳固的占据市场,尤其是现在这个软件行业竞争异常激烈的时代,只有公司的产品站住了脚,公司才会有更多的效益产生,只有公司有了效益,员工才会领到更多的工资,这样公司才能长久的生存下去,而帮助产品能够更坚牢的站住市场的,就是软件测试人员。 这次有幸参加公司组织的为期五天的高级性能测试工程师的培训,虽然课程紧密,内容繁多,但是我却乐在其中,受益匪浅。借此机会与大家分享一下我这几天以来的学习心得: 首先,知识日新月异,不学则惘。在当今这个信息高速传递的社会,不难感受到知识爆炸的巨大威力,特别对于我们IT行业,更加深刻体会到什么叫做“日新月异”,更加深刻认识到,先进的知识与技术是一个企业立于不败之地关键因素。但是对于已经步入社会的我们,已经远离校园的我们,现在的学习缺乏系统性,往往不能自觉主动地抽出时间,静下心来学习,常常是需要什么,急用什么,才想起来学什么,遇到问题才翻理论、寻政策,临时抱佛脚,学习缺乏“挤”劲和“钻”劲,浅尝辄止,通过这次培训,使我在老师那里学到了当今最流行的测试技术以及测试管理,当然这只是其次,最重要的是在同行中营造了浓厚的学习氛围,大家互相取长补短,分享工作中遇到的各种问题,与老师讨论如何提升自己的价值。知识就是力量,知识就是本钱,我们应该以这次培训为契机认真学,努力学。 其次,责任重于泰山,无为则殆。做而不学等于蛮干,学而不做等于白学。我们学习的根本目的就是要用所学的知识来指导我们做事。通过这次学习,我更清楚地感到自己肩上责任的重大,无论我们从事哪种行业,无论我们身兼何职,责任心、使命感和进取心是我们一辈子不能舍弃的东西。通过这次学习,使我感觉到学习的重要性和紧迫性,我们学习的自觉性、主动性、积极性得到了激发,把所学的知识应用到自己的岗位当中,提升自己的价值,当我们付出艰苦劳动得到的产品传递的客户那里,获得的是一份肯定,一份赞赏时,我们才可以如释重负,我们的努力才没有白费。 最后,学以致用,做好本职工作。通过五天的学习,使我的理论水平、知识素养都有了很大的提高,但归根到底还是要把工作做好。NO excuse!不为失败找借口,要为成功找方法。我们在工作中要完成一项工作,往往会碰到这样那样的问题和困难,如何正确的对待这些问题和困难?没有任何借口,只有千方百计地寻找解决问题、克服困难的办法。 北京学习虽然短暂,但是我们从中获得的东西却是受益终生的! 性能测试学习总结 一、明确性能测试的范围 例如:以iptv系统为例,是需要测试bss页面、中间件具体接口、boss/crm具体接口 二、明确性能测试的指标 例如: 1、支持最大并发用户数是多少?(压力测试) 2、每秒n个用户并发,能正常持续运行多久?(负载测试) 3、在系统用户为n个的情况下,每秒x个用户并发,持续运行y分钟,查看系统硬件io、cpu、内存;查看软件平均吞度量、tps、平均响应时间、事务成功率、事务失败率、错误率等(性能测试)、响应时间:事务从开始到完成所花费时间 平均吞吐量:指单位时间内系统处理用户的请求数 TPS:transaction per second 服务器单位时间处理的事务数(事务数/运行时间s) 事务:指访问并可能更新数据库中各种数据项的一个程序执行单元。例如订购操作,它含有多个请求 事务成功率:成功事务数占完成总事务数的比率 事务失败率:失败事务数占完成总事务数的比率 三、定义数据模型 1、目标系统用户数、目标每秒并发数、硬件系统配置情况,如下:模板 IPTV-BSS 性能指标.docx 四、设计性能测试方案 IPTV BSS四川电信版本性能 五、搭建性能测试环境 1、尽可能模拟现网的环境与组网结构 2、前台应用和后台数据库安装在独立干净的服务器上。 3、当前性能测试环境分别为:192.168.12.11(前台)192.168.12.31(数据库)192.167.12.177(Loadrunner) 六、构造性能测试数据 1、使用LR、QTP自动化工具构造(比较慢,不需要了解表结构,但是需要了解业务流) 2、编写存储过程构造用户、包月、订购数据(比较快,需要对相关表结构和数据库了解) 七、录制、调试测试脚本 1、中间件接口目前是web services协议,因当前测试指标均超过100个并发,故使用web(http/html)协议录制。中间件接口录制页面: 2、boss接口当前有两种协议,一种是web services协议,一种是sockets协议,因当前测试指标最大为100个并发,故可以使用web services协议或http/html协议录制。 3、bss页面基于ie运行,故使用web(http/html)协议录制。 注明:当前中间件接口,四川boss接口,浙江电信bss部分页面均有现成的脚本,如果其它局点需要测试可使用原有的脚本调试即可。 详细参考:LoadRunner性能测试_刘双林_20110115.doc 2.3/2.4章节 进行学习 八、执行性能测试场景 1、按照测试方案文档中的测试用例执行即可。 2、在执行性能测试过程中会具体使用到性能测试工具LR。关于性能测试工具的使用方法网上有大把资料。请自行学习:场景设置、参数化等 详细参考:LoadRunner性能测试.doc 3章节 进行学习 九、监控并记录性能测试结果 1、硬件性能:bss应用服务器cpu、内存;数据库服务器cpu、内存、io 内存、cpu 不高于70% ;IO不高于80% 否则可能存在性能瓶颈 统计方式: (1)通过命令在服务器上查询 内存 sar-r 5 120 (每5s刷新1次共刷新120次)cpu sar-u 5 120 io iostat 5 120(2)在服务器上安装rpc.rstatd工具,通过LR客户端窗口监控记录 2、软件性能:平均吞度量、tps、平均响应时间、事务成功率、事务失败率、错误率等(场景运行完毕可通过loadrunner工具导出性能测试结果),是否达标是要与性能测试指标进行比对。 详细参考:LoadRunner性能测试.doc 4章节 进行学习 十、分析性能测试结果输出总结报告 1、将实际测试结果和性能测试指标进行对比,总结出不达标测试对象及具体测试数据 2、测试与开发人员根据性能测试数据,从硬件环境和软件本身进行分析。例如:优化硬件配置、软件处理逻辑、数据库架构脚本等。 3、具体分析的方法:一般是具体问题具体分析,查找瓶颈时按以下顺序,由易到难。(1)服务器硬件瓶颈 (2)网络瓶颈(对局域网,可以不考虑)(3)服务器操作系统瓶颈(参数配置)(4)中间件瓶颈(参数配置,数据库,web 服务器等)(5)应用瓶颈(SQL 语句、数据库设计、业务逻辑、算法等)注:以上过程并不是每个分析中都需要的,要根据测试目的和要求来确定分析的深度。对一些要求低的,我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了。 十一、LoadRunner性能测试工具操作文档 LoadRunner性能测试.doc loadrunner8.1教材.pdf第四篇:性能测试工程师心得
第五篇:性能测试学习总结