Seeing is not believing,testing is believing.

发布新日志

  • loadrunner 错误&解决方案锦集

    2011-10-26 16:21:18

    error:missing newline in d:\loadrunner\name.dat

    场景执行时报error:missing newline in d:\loadrunner\name.dat


    第二次执行不报

    两个解决办法:
    第一:如果参数不是很多的话,不要打开记事本去编辑参数,就直接在LR提供的参数的表格中进行编辑即可。

    第二:如果参数很多超过100条的话。 在记事本中编辑好了之后,记着在最后一个参数后打个回车,让鼠标的光标移动到下一行。

    Step download timeout (120 seconds)

    这是一个经常会遇到的问题,解决得办法走以下步骤:

    1、修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-request connect timeoutHTTP-request receieve timeoutStep download timeout,分别建议修改为6006005000run time setting设置完了后记住还需要在control组件的optionrun time setting中设置相应的参数。

    2、办法一不能解决的情况下,解决办法如下:

    设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。

    问题描述:Connection reset by peer.

    这个问题不多遇见,一般是由于下载的速度慢,导致超时,所以,需要调整一下超时时间。

    解决办法:Run-time setting窗口中的‘Internet Protocol’-‘Preferences’设置set advanced options(设置高级选项),重新设置一下“HTTP-request connect timeoutsec),可以稍微设大一些”。

    问题描述:connection refused

    这个的错误的原因比较复杂,也可能很简单也可能需要查看好几个地方,解决起来不同的方式也不同。

    1、首先检查是不是连接(weblogic)服务过大部分被拒绝,需要监控服务(weblogic)的连接等待情况,此时需要增加acceptBacklog,每次增加25%来提高看是否解决,同时还需要增加连接池和调整执行线程数,(连接池数*Statement Cache Size)的值应该小于等于oracle连接数最大值。

    2、如果方法一操作后没有变化,此时需要去查看服务器操作系统中是否对连接数做了限制,AIX下可以直接vi文件limits修改其中的连接限制数、端口数,还有tcp连接等待时间间隔大小,wiodows类似,只不过windows修改注册表,具体修改注册表中有TcpTimedWaitDelayMaxUserPort项,键值在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip \Parameters\]。因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。

    1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
    2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。

    问题描述:open many files

    问题一般都在压力较大的时候出现,由于服务器或者应用中间件本身对于打开的文件数有最大值限制造成,解决办法:

    1、修改操作系统的文件数限制,aix下面修改limits下的nofiles限制条件,增大或者设置为没有限制,尽量对涉及到的服务器都作修改。

    2、方法一解决不了情况下再去查看应用服务器weblogiccommonEnv.sh文件,修改其中的nofiles文件max-nofiles数增大,应该就可以通过了,具体就是查找到nofiles方法,修改其中else条件的执行体,把文件打开数调大。修改前记住备份此文件,防止修改出错。

    3、linux上可以通过ulimit –HSn 4096来修改文件打开数限制,也可以通过ulimit -a 来查看。

    4、linux上可以通过lsof -p pid | wc -l 来查看进程打开的句柄数。

    五、问题描述has shut down the connection prematurely

    一般是在访问应用服务器时出现,大用户量和小用户量均会出现。

    来自网上的解释:

    1>应用访问死掉

    小用户时:程序上的问题。程序上存在数据库的问题

    2>应用服务没有死

    应用服务参数设置问题

    例如:

    在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的元素的AcceptBacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25

    Java连接池的大小设置,或JVM的设置等

    3>数据库的连接

    在应用服务的性能参数可能太小了

    数据库启动的最大连接数(跟硬件的内存有关)

    以上信息有一定的参考价值,实际情况可以参考此类调试。

    如果是以上所说的小用户时:程序上的问题。程序上存在数据库的问题,那就必须采用更加专业的工具来抓取出现问题的程序,主要是程序中执行效率很低的sql语句,weblogic可以采用introscope定位,期间可以注意观察一下jvm的垃圾回收情况看是否正常,我在实践中并发500用户和600用户时曾出现过jvm锯齿型的变化,上升下降都很快,这应该是不太正常的。

    ---------------------------------------

    实际中,可以用telent 站点看看是否可以连接进去,可以通过修改连接池中的连接数和适当增加应用内存值,问题可以解决。

    六、问题描述Failed to connect to server

    这个问题一般是客户端链接到服务失败,原因有两个客户端连接限制(也就是压力负载机器),一个网络延迟严重,解决办法:

    1、修改负载机器注册表中的TcpTimedWaitDelay减小延时和MaxUserPort增加端口数。注:这将增加机器的负荷。

    2、检查网络延迟情况,看问题出在什么环节。

    建议为了减少这种情况,办法一最好测试前就完成了,保证干净的网络环境,每个负载机器的用户数不易过大,尽量平均每台负载器的用户数,这样以上问题出现的概率就很小了。

    七、问题描述Overlapped transmission of request to ... WSA_IO_PENDING

    这个问题,解决方法:

    1、方法一,在脚本前加入web_set_sockets_option("OVERLAPPED_SEND", "0"),禁用TTFB细分,问题即可解决,但是TTFB细分图将不能再使用,附图。

    来源:(http://blog.sina.com.cn/s/blog_5a06b52a0100ib2u.html) - 出现error问题及解决方法总结_海棠烟雨1002_新浪博客

    2、方法二,可以通过增加连接池和应用系统的内存,每次增加25%。

    八、问题描述Deleted the current transaction ... since response time is not accurate

    这个问题不多遇见,一般出现在压力机器上发生ping值为负数(AMD双核CPU),可以重新启动pc机或者打补丁,附图。

    九、问题描述HTTP Status-Code=500 (Internal Server Error) for

    1、应用服务当掉,重新启动应用服务。

    2、当应用系统处于的可用内存处于阀值以下时,出现HTTP Status-Code=500的概率非常高,此时只要增加应用系统的内存,问题即可解决。

    十、问题描述Failed to transmit data to network: [10057]Socket is not connected

    这个错误是由网络原因造成的,PC1和PC2上面都装了相同的loadrunner 9.0,且以相同数量的虚拟用户数运行相同的业务(机器上的条件都相同),PC1上面有少部分用户报错,PC2上的用户全部执行通过。

    十一、问题描述 Error -27257: Pending web_reg_save_param/reg_find/create_html_param[_ex] request(s) detected and reset at the end of iteration number 1
    解决方法:web_reg_save_param位置放错了,应该放到请求页面前面。
    十二、问题描述 通过Controler调用远程代理时报错,Error: CCI security error:You are running under secure mode and the function system is not allowed in this mode.
    解决方法:在代理开启的时候,去掉勾选防火墙选项。

    1.LoadRunner超时错误:在录制协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同。

    错误现象1: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”选项,再回放是否成功。

    错误现象 2: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”的值。

    2.LoadRunner脚本中出现乱码:在录制Web协议脚本时出现中文乱码,在回放脚本时会使回放停止在乱码位置,脚本无法运行。

    错误现象:某个链接或者图片名称为中文乱码,脚本运行无法通过。

    错误分析:脚本录制可能采用的是URL-based script方式,如果程序定义的字符集合采用的是国际标准,脚本就会出现乱码现象。

    解决办法:重新录制脚本,在录制脚本前,打开录制选项配置对话框进行设置,在“Recording Options”的“Advanced”选项里先将“Surport Charset”选中,然后选中支持“UTF-8”的选项。

    3.LoadRunner HTTP服务器状态代码:在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。

    错误现象1:-404 Not Found服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。

    错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。

    解决办法:在出现错误的位置进行脚本关联,在必要时插入相应的函数。

    错误现象2:-500 Internal Server Error服务器内部错误,脚本运行停止。

    错误分析:服务器碰到了意外情况,使其无法继续回应请求。

    解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。

    4.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”模式来录制脚本。

    5.LoadRunner不执行检查方法:在录制Web协议脚本中添加了检查方法Web_find,但是在脚本回放的过程中并没有执行。

    错误现象:在脚本中插入函数Web_find,在脚本中设置文本以及图像的检查点,但是在回放过程中并没有对设置的检查点进行检查,即Web_find失效。

    错误分析:由于检查功能会消耗一定的资源,因此LoadRunner默认关闭了对文本以及图像的检查,所以在设置检查点后,需要开启检查功能。

    解决办法:打开运行环境设置对话框进行设置,在“Run-time Settings”的“Internet Protocol”选项里的“Perference”中勾选“Check”下的“Enable Image and text check”选项。

    6.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文件的头改为<?xml version=”1.0″encoding=”zh_cn” ?>,所以才会有此错误提示。

    解决办法:下载两个补丁,分别为“LR80WebServicesFPI_setup.exe”和“lrunner_web_ services_patch_1.exe”安装上即可。

    2.load generator is currently running them aximum number of vuser of this type

    使用的是loadrunner8.0,有10000个用户的web的license,global的有10个。

    在测试的时候发现runningvuser到达1000以后就不能再提高,后面的vuser就会出错。错误是“Theloadgeneratoriscurrentlyrunningthemaximumnumberofvuserofthistype”.

    已经可以排除是loadgenerator机器本身资源的问题。因为换了性能比较强的酷睿2还是同样的问题,CPU和memory都有空闲。

    解决办法:

    在loadgenerator中有一个Vuserlimitstab,可以设置runninguser的最大数目。即设置 load generator----Details------Vuser limits ----Other Vusers 的最大参数

    3.LoadRunner 常见问题:

    (1)sofeware caused connction:这种情况,一般是脚本有问题,或者loadrunner有问题。解决方法:重新启动机器,或者重新录制脚本,估计是loadrunner的bug。

    (2)cannot connect to server:无法连接到服务器。这种情况是服务器的配置有问题,服务器无法承受过多的并发连接了。需要优化服务器的配置,

    如操作系统采用windows 2003 server,

    优化tomcat配置:maxThreads="500" minSpareThreads="400" maxSpareThreads="450"。但是tomcat 最多支持500个并发访问

    优化apache配置:

    ThreadsPerChild 1900

    MaxRequestsPerChild 10000

    其他的错误如:

    Action.c(10): Error -27791: Server has shut down the connection prematurely

    HTTP Status-Code=503 (Service Temporarily Unavailable)

    一般都是由于服务器配置不够好引起的,按照问题(2)处理,如果仍旧不行,需要优化硬件和调整程序了。

    Apache问题:

    (1) File does not exist: C:/Apache/htdocs/favicon.ico:

    这个问题是apache,htdocs目录没有favicon.ico文件引起的,该文件是网站的图标,仅在firefox,myIE等浏览器出现。

    (2) 图片无法显示:

    配置apache后,却无法显示图片。

    解决方法:把程序的图片,按照程序结构copy到apache的htdocs目录下。

    (3) 无法处理请求:

    当我们输入 ***.do 命令后,apache确返回错误信息,而连接tomcat却没有问题。原因是没有把.do命令转发给tomcat处理。解决方法如下:

    在apache配置文件中配置如下内容:

    DocumentRoot "C:/Apache/htdocs"

    JkMount /*.jsp loadbalancer

    JkMount /*.do loadbalancer

    11.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”模式来录制脚本。

    12.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文件的头改为<?xml version="1.0"encoding="zh_cn" ?>,所以才会有此错误提示。

      解决办法:下载两个补丁,分别为“LR80WebServicesFPI_setup.exe”和“lrunner_web_ services_patch_1.exe”安装上即可。


     

  • 自动化软件测试入门、管理与实现(英文翻译)

    2009-07-27 16:18:44

    第一章

    The Birth and Evolution of Automated Testing

    自动化测试的产生与发展

    An effective test program, incorporating the automation of software testing,involves a mini-development life cycle of its own. Automated testing amounts to a development effort involving strategy an goal planning,test requirement definition,analysis,design,development,execution,and evaluation activities.

     

        一个有效的测试程序,包括自动化软件测试,还包括其自身的一个小型开发生命周期。自动化测试无异于开发努力的一个目标,涉及战略规划,测试要求的定义,分析,设计, 开发 , 执行和评价活动。
     
    1.1 Automated testing(自动化测试)
        “我们需要新的应用软件越早越好。”“我现在需要那些产品插件。”这两句话听起来相似吗?
         当今的软件管理者和软件开发者被要求产品在日益缩小的计划和最低限度的资源中完成,90%多的开发者已经超出最晚期限,对67%的开发者来说,超出项目的最晚期限(项目延期)是很平常的事了。另外,91%的开发者不得不在开发周期的后期删除部分关键功能来按期完成项目。斯坦迪什集团报道支持类似的统计结果。尽早的把商品投入市场意味着一个产品的生存和灭亡的不同,从而也关乎着一个企业的生存和灭亡。
            

  • 给自己充点电

    2009-03-17 14:22:35

    最近特别想学习QTP,之前对QTP有一定的了解,并能熟练应用其中的许多功能,但在测试的脚本的维护及编写上还很欠缺,所以想进一步的学习QTP,深入学习脚本,但不知从何学起,又有些许的迷茫,希望高手给一点指点,领我入道,万分期待。。。
Open Toolbar