LoadRunner脚本中的乱码问题以及解决办法

合集下载

loadrunner常见错误解决方法

loadrunner常见错误解决方法

loadrunner常见错误解决方法1.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 awarning/error, respectively处理方法:Run-Time Setting ------ Internet Protocol------ Preferences ------Option ------ Step download timeout(sec)改为32000A、应用服务参数设置太大导致服务器的瓶颈B、页面中图片太多C、在程序处理表的时候检查字段太大或多Error -27728: Step download timeout (120 seconds)的解决方法语法检查通过,但是在并发执行一个查询时候报错Action.c(16): Error -27728: Step download时收到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秒这个问题,要详细分析了。

常遇到LoadRunner问题整理

常遇到LoadRunner问题整理

常遇到LoadRunner问题整理LoadRunner常见问题整理1.LoadRunner录制脚本时为什么不弹出IE浏览器?当⼀台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以⽤下⾯的⽅法来解决。

启动浏览器,打开Internet选项对话框,切换到⾼级标签,去掉“启⽤第三⽅浏览器扩展(需要重启动)”的勾选,然后再次运⾏VuGen即可解决问题提⽰:通常安装Firefox等浏览器后,都会勾选上⾯得选项,导致不能正常录制。

因此建议运⾏LoadRunner得主机上保持⼀个⼲净的测试环境。

2.录制Web脚本时,⽣成的脚本中存在乱码该如何解决?录制脚本前,打开录制选项配置对话框Record-Options,进⼊到Advanced标签,先勾选“Support charset”,然后选择中⽀持UTF-8。

再次录制,就不会出现中⽂乱码问题了。

3.HTML-based script与URL-based script的脚本有什么区别?使⽤“HTML-based script”的模式录制脚本,VuGen为⽤户的每个HTML操作⽣成单独的步骤,这种脚本看上去⽐较直观;使⽤“URL-based script”模式录制脚本时,VuGen可以捕获所有作为⽤户操作结果⽽发送到服务器的HTTP请求,然后为⽤户的每个请求分别⽣成对应⽅法。

通常,基于浏览器的Web应⽤会使⽤“HTML-based script”模式来录制脚本;⽽没有基于浏览器的Web应⽤、Web应⽤中包含了与服务器进⾏交互的Java Applet、基于浏览器的应⽤中包含了向服务器进⾏通信的JavaScript/VBScript代码、基于浏览器的应⽤中使⽤了HTTPS安全协议,这时使⽤“URL-based script”模式进⾏录制。

4.为什么脚本中添加了检查⽅法Web-find,但是脚本回放时却没有执⾏?由于检查点功能会耗费⼀定的资源,因此LoadRunner默认关闭了对⽂本及图像的检查。

Load Runner常见问题

Load Runner常见问题

Load Runner常见问题----翁春芳在刚开始学习使用loadrunner进行性能测试时,经常碰到一些问题,比如录制脚本经常遇到不能打开浏览器的情况,到了后期对测试结果又经常不明白是什么原因导致失误失败,于是就自己上网查寻找些解决方法并记录下来,留以后备用也供大家参考。

其中有些问题和是我现在还没碰到的,不过若将来更深一步学习和使用lr,应该也会有用。

就一并记录下来。

1、LoadRunner录制脚本时为什么不会弹出IE浏览器?当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题。

提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。

因此建议运行LoadRunner得主机上保持一个干净的测试环境。

2、录制Web脚本时,生成的脚本中存在乱码该如何解决?录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,然后选择中支持UTF-8。

再次录制,就不会出现中文乱码问题了。

3、回放乱码,IE访问页面一切正常,但是LR回放时在run viewer中显示的页面为乱码?这一问题一般是由于页面保存时的编码格式和页面中的charset格式不一致引起的(html头中通常会有<meta http-equiv="Content-Type" c>)。

遇到这类问题,只需要将页面做另存为,将保存的编码格式和页面中的charset格式统一起来就可以了。

引起问题的原因是:IE浏览器解码时会优先考虑文件的保存编码格式,而后考虑页面中的charset格式,(正常情况下两者是一致的),而run viewer是直接使用页面中的charset 格式打开的。

LoadRunner脚本录制常见问题整理

LoadRunner脚本录制常见问题整理

LoadRunner脚本录制常见问题整理1.LoadRunner录制脚本时为什么不弹出IE浏览器?当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。

启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen 即可解决问题提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。

因此建议运行LoadRunner得主机上保持一个干净的测试环境。

1.Loadrunner录制脚本时无法正确打开IE或打开IE时无响应进行如下设置可排除问题:1、设置默认浏览器为IE;2、IE已禁用第三方浏览器扩展;3、Loadrunner中Run-time Setting 的User-agent设置正确;4、Start Recording中IE路径和Program to record也正确。

2.录制Web脚本时,生成的脚本中存在乱码该如何解决?录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,然后选择中支持UTF-8。

再次录制,就不会出现中文乱码问题了。

3.HTML-based script与URL-based script的脚本有什么区别?使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。

通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS 安全协议,这时使用“URL-based script”模式进行录制。

LoadRunner常见问题分析及解决办法

LoadRunner常见问题分析及解决办法

LoadRunner常见问题分析及解决办法2010-09-23 08:02在运行脚本回放过程中,有时会出现错误,这在实际测试中是不可避免的,毕竟自动录制生成的脚本难免会有问题,需要运行脚本进行验证,把问题都解决后才加入到场景中进行负载测试。

下面结合常用的协议(如Web、Web Services协议)录制的脚本进行回放时出现的问题介绍一下解决的方法。

需要注意的是,回放脚本时出现的错误有时是程序自身的原因导致的,因此在解决脚本回放问题前必须保证程序录制出的脚本是正确的。

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

错误现象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 processingURL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/ subOrderQuery.do错误分析:这种错误常常是因为并发压力过大,服务器端太繁忙,无法及时响应客户端的请求而造成的,所以这个错误是正常现象,是压力过大造成的。

LoadRunner常见问题汇总

LoadRunner常见问题汇总

LoadRunner常见问题汇总一、录制的脚本中,中文出现乱码问题字符集采用的是默认的国际标准,导致出现中文乱码,解决方法是:录制脚本前,tools-- Recording Options--- Advanced选项里先将“Surport Charset”选中,然后选中支持“UTF-8”的选项。

二、LoadRunner HTTP(404/500)服务器状态代码问题现象1、HTTP404 Not Found服务器没有找到与请求URI相符的资源,但可以继续运行直到结束错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。

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

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

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

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

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

1、问题现象Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)。

错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送一个请求到服务器端,如果超过120秒服务器端还没有返回结果,则出现超时错误。

解决办法:首先在运行环境中对超时进行设置,修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为600、600、5000;run time setting设置完了后记住还需要在control组件的option的run time setting中设置相应的参数;,再设置多次迭代运行,如果还有超时现象,需要在“Runtime Setting”>“Internet Protocol:Preferences”>“Advanced”区域中设置一个“winlnet replay instead of sockets”选项,再回放是否成功。

loadrunner乱码转换函数

loadrunner乱码转换函数

loadrunner乱码转换函数LoadRunner是一款常用的性能测试工具,可以对各类应用程序进行压力测试、负载测试、性能测试等。

在使用LoadRunner进行性能测试时,经常会遇到乱码的问题,特别是在测试中涉及到中文字符的场景。

为了解决这个问题,我们可以使用LoadRunner提供的乱码转换函数。

乱码是指在字符编码转换过程中,由于编码不一致或者错误的操作,导致原本正确的字符显示为乱码。

在LoadRunner中,乱码常常出现在对应用程序进行压力测试时,返回的响应报文中。

这是因为在进行压力测试时,LoadRunner会发送大量的请求给被测试的应用程序,并通过解析响应报文来判断应用程序的性能。

乱码转换函数可以将乱码转换为正确的字符,使得我们能够正确地分析和处理响应报文。

在LoadRunner中,有多种乱码转换函数可供使用,如web_convert_param、web_convert_html_entities、web_convert_url等。

下面我将分别介绍这些函数的使用方法和注意事项。

首先是web_convert_param函数,该函数用于将乱码转换为正确的字符。

使用该函数的方法是,在脚本中找到响应报文中出现乱码的位置,然后使用web_convert_param函数进行转换。

具体的使用方法是在函数的两个参数中,第一个参数是需要进行转换的字符串,第二个参数是目标编码方式。

目标编码方式可以是UTF-8、GB2312等常见的编码方式。

通过使用web_convert_param函数,我们可以将乱码转换为正确的字符,方便后续的解析和处理。

接下来是web_convert_html_entities函数,该函数用于将HTML实体字符转换为对应的字符。

在进行性能测试时,有时候会遇到响应报文中出现HTML实体字符的情况,这些字符无法直接显示,需要通过转换函数进行处理。

使用web_convert_html_entities函数的方法是,在脚本中找到响应报文中出现HTML实体字符的位置,然后使用web_convert_html_entities函数进行转换。

Loadrunner乱码问题处理方式总结(关注)

Loadrunner乱码问题处理方式总结(关注)

Loadrunner乱码问题处理方式总结1.如果是浏览器IE6.0中文版:首先,设置Vuser---Run-time Settings-Browser-Browser Emulation-Change。

选择6.0,chinese。

点击OK。

但发现这个东西一会儿就没了,保存不下来。

然后,设置IE,查看-编码-钩上“自动选择”和Unicode(UTF-8)。

这么设置完以后发现,一部分内容确实变成汉字了,但还有很多乱码未解决。

而且最关键的是在LR里设置的下次录制的时候设置的都没了,没保存下来,所以继续找保存的方法,或者研究为什么没保存下来,为什么剩下的还有乱码?现在发现剩余的乱码开头是“$$$$$$ Response Header For Transaction With Id 7 Ended $$$$$$****** Response Body For Transaction With Id 7 ******GIF89a\xE3\x01\”,从而发现这些乱码是一个图片,图片并不影响测试过程的进行,只要图片能正常加载就OK了。

所以这个问题算是解决。

2.还有一种方法是:LoadRunner的VUser Gen在录制Script时,如果网站采用的是UTF8编码,录出来的脚本,很多乱码,需要设置一下LoadRunner,方法如下:在Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8就OK了。

目前前2种方法结合起来可以解决我的问题。

一般情况下不需要开启此选项,否则在Submit里会出现有乱码。

如果未开启此功能还出现乱码,可尝试开启此选项。

如果开启此选项还是有乱码,且乱码处的内容你需要进行参数化,可使用lr_convert_string_encoding函数将字符转化为你需要的模式。

LoadRunner脚本中的乱码问题以及解决办法

LoadRunner脚本中的乱码问题以及解决办法

LoadRunner脚本中的乱码问题以及解决办法LoadRunner脚本中的乱码问题以及解决办法不少人在使用LoadRunner的过程中都遇到过这样的问题:在录制下来的脚本的中文信息出现了乱码。

关于乱码问题,可能大家在网上也能搜到不少相关的解决办法,我在这里就不多说了,这里只举一个实际例子来说明这个问题,也许不是解决这个问题的唯一办法,但至少也是其中的一种。

被测系统采用Ajax技术,通过录制下来的脚本看起来像下面的样子(省略函数其它部分,下同):web_custom_request("CALL-H001I","EncType=text/xml; charset=UTF-8","BodyBinary=CALLH001I1040浣忔埧01鏆傛棤鍙风爜1110000001000000.00A110102*********#1闇嶈景榫""""x99""10001鍘﹂棬100A1442000050031"r"n""",LAST);从上面脚本的黑体部分可以看出,LoadRunner向服务器提交的请求body部分,输入的中文字段被变成了诸如“浣忔埧”这样的乱码。

遇到这样的情况,或许这乱码的问题不能很容易得到解决,只能不加理会,直接点击回放,然后我们很高兴地发现,脚本回放成功了。

这些乱码是可以被LR识别的,而且到应用系统中查看运行的结果,也没有问题,显示的是正确的中文。

但是,我们可能会意识到:如果这个字段我们是需要进行参数化的怎么办?我们应该如何造出这种乱码的字呢?首先,我们直接用正常的字去参数化,这里只举其中的一个例子来说明,比如这个字段,我们用参数值“汽车”直接在脚本中替换“浣忔埧”,可惜脚本回放失败。

然后就想到会不会是所有的中文字段都需要用才行呢?于是把所有的乱码都用简体字替换,脚本回放还是失败。

自己整理的LoadRunner常见问题以及解决办法

自己整理的LoadRunner常见问题以及解决办法

1.LoadRunner录制脚本时为什么不弹出IE浏览器?当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。

启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。

因此建议运行LoadRunner得主机上保持一个干净的测试环境。

2.录制Web脚本时,生成的脚本中存在乱码该如何解决?录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,然后选择中支持UTF-8。

再次录制,就不会出现中文乱码问题了。

3.HTML-based script与URL-based script的脚本有什么区别?使用“HTML-based scr ipt”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。

通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。

4.为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行?由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。

要想开启检查功能,必须修改运行时的配置Run-time Setting。

loadrunner常见错误解决方法

loadrunner常见错误解决方法

loadrunner常见错误解决方法1.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 awarning/error, respectively处理方法:Run-Time Setting ------ Internet Protocol------ Preferences ------Option ------ Step download timeout(sec)改为32000A、应用服务参数设置太大导致服务器的瓶颈B、页面中图片太多C、在程序处理表的时候检查字段太大或多Error -27728: Step download timeout (120 seconds)的解决方法语法检查通过,但是在并发执行一个查询时候报错Action.c(16): Error -27728: Step downloadtimeout (120 seconds) has expired when downloading non-resource(s)设置了runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。

2.Action.c(7): Error -27791: Server “192.168.1.77″ has shut down the connection prematurely解决方案如下:1、应用服务器死掉。

小用户时程序上的问题,程序上处理数据库的问题2、应用服务没有死。

LoadRunner脚本录制常见问题

LoadRunner脚本录制常见问题

一、录制、回放乱码问题解决办法1、录制的脚本乱码LR录制的脚本中可能会有乱码,主要是当URL中有中文时。

通过如下问题可以解决此问题:情况一:勾选Virtual User Generator中Tools->Recoding Options -> Advanced -> Support charset -> UTF-8后进行录制情况二:把录制选项中的Support charset选中UTF-8录制脚本后,切换到树视图中,打开相应的脚本页面。

在右侧的PageView中录制的脚本呈现中文版式,但是当切换到Server Response中,所有的中文全部换成的乱码,如“勌缞仫訆”。

原因是服务器端没有把响应的编码设置为gb231在IIS中找到Web.Config文件,在<system.web>….</system.web>节加入<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>后再次录制脚本,乱码变中文。

产生原因:网站采用的是UTF8编码,录出来的脚本,会有很多乱码。

2、回访乱码还有一类乱码问题是:IE访问页面一切正常,但是LR回放时在run viewer中显示的页面为乱码。

这一问题一般是由于页面保存时的编码格式和页面中的charset格式不一致引起的(html 头中通常会有<meta. http-equiv="Content-Type" c>)。

遇到这类问题,只需要将页面做另存为,将保存的编码格式和页面中的charset格式统一起来就可以了。

引起问题的原因是:IE浏览器解码时会优先考虑文件的保存编码格式,而后考虑页面中的charset格式,(正常情况下两者是一致的),而run viewer是直接使用页面中的charset格式打开的。

LoadRunner错误及解决方法总结

LoadRunner错误及解决方法总结

LoadRunner错误及解决⽅法总结LoadRunner错误及解决⽅法总结1. error:missing newline in d:\loadrunner\name.dat场景执⾏时报error:missing newline in d:\loadrunner\name.dat第⼆次执⾏不报两个解决办法:第⼀:如果参数不是很多的话,不要打开记事本去编辑参数,就直接在LR提供的参数的表格中进⾏编辑即可。

第⼆:如果参数很多超过100条的话。

在记事本中编辑好了之后,记着在最后⼀个参数后打个回车,让⿏标的光标移动到下⼀⾏。

2.load generator is currently running the maximum numb er of vuser of this type使⽤的是loadrunner8.0,有10000个⽤户的web的license,global的有10个。

在测试的时候发现running vuser到达1000以后就不能再提⾼,后⾯的vuser 就会出错。

错误是“The load generator is currently running the maximum number of vuser of this type”.已经可以排除是load generator机器本⾝资源的问题。

因为换了性能⽐较强的酷睿2还是同样的问题,CPU和memory都有空闲。

解决办法:在load generator中有⼀个Vuser limits tab,可以设置running user 的最⼤数⽬。

即设置load generator----Details------Vuser limits ----Other Vusers 的最⼤参数。

3. ERROR-26374及ERROR-26377错误no match found for the requested parameter ”Siebel_Analytic_search_id2”.check whether the requested boundaries exist in the response data. 如果初期或脚本单独回放时即出现此错误,则可能是关联问题:1.⾸先看下脚本中有没有使⽤了⾃动关联(web_reg_save_param)2.在Virtual的脚本⾥查询下web_reg_save_param的参数使⽤位置,然后把这个参数化给还原回来。

LoadRunner录制Socket协议脚本乱码调研

LoadRunner录制Socket协议脚本乱码调研

LoadRunner录制Socket协议脚本乱码调研发布时间: 2013-4-02 10:35 作者: lovesoo 来源: 51Testing软件测试网采编字体: 小中大| 上一篇下一篇| 打印| 我要投稿| 推荐标签:软件测试LoadRunner 测试工具最近在测试过程中使用LoadRunner录制Socket协议脚本,在data.ws中,中文参数显示为乱码,直接影响到参数化等操作,导致压力测试无法继续下去。

本文对录制脚本的乱码问题进行了相关调研。

使用LoadRunner录制的脚本如下:通过在网上搜索资源,查询到几种解决方案如下:■ 方法一:通过字符串编码转换的函数修改脚本中的乱码;通过一个字符串编码转换的函数lr_convert_string_encoding在LoadRunner中,为我们提供了一个字符串编码转换的函数lr_convert_string_encoding,它可以把字符编码转换为UTF-8格式。

测试组人员通过对比发现,这个函数是在录制的脚本中出现乱码时使用的,例如:web_custom_request("CALL-H001I","EncType=text/xml; charset=UTF-8","BodyBinary=CALLH001I1040浣忔埧01鏆傛棤鍙风爜1110000001000000.00A110102*********#1闇嶈景榫""""x99""10001鍘﹂棬100但本次遇到的问题是在录制结束后,data.ws文件的中文参数显示为乱码。

问题仍然得不到解决。

■ 方法二:录制选项中的Support charset选中UTF-8再重新录制这种方法是在录制前,将录制选项的Support charset选中UTF-8后进行录制,这种方法主要适用于WEB页面录制时的场景。

用LoadRunner插入MySql数据以及中文乱码问题

用LoadRunner插入MySql数据以及中文乱码问题

用LoadRunner写脚本,直接在往MySql数据库插入数据作者:卡卡卡距离上次使用LoadRunner,已经有将近8年了,用具也从8.0升级到了12.0。

这次的工作主要任务就是,往测试对象的数据库里面,直接插入处方相关的数据,然后测试对象会自动分解处方,开始下面的工作。

一开始,想通过录制MySql的访问工具中的直接输入insert语句,但是录制的时候选用新建一个多协议Multiple的脚本,并选择了ODBC+Windows Sockets.结果发现,什么脚本都没有录制到。

只能自己写C语言,参考了网上各个版本的指导,终于实现了功能,所以为了有类似需求的朋友少走弯路,所以将自己的代码和一些经验分享:第一步:新建一个C Vuser的脚本第二步:导入libmySQL.dll文件。

右击Solution Explorer右击Extra Files,选择Add Files to Script。

浏览到mysql的安装的bin目录下,加载libmysql.dll文件。

此处遇到的第一个问题是,现在使用的电脑,大多已经是64bit的OS了,所以一开始加载的64bit MYSQL安装包里面的dll文件,编译的时候一直报错。

后来想了下,好像LR的安装包好像不分32位还是64位,所以尝试性的加载了一个32位的libmysql,编译就通过了。

第三步:Vuser_init 代码如下:/*#include "mysql.h"#include "mysql_com.h"#include "mysql_time.h"#include "mysql_version.h"#include "typelib.h"#include "my_list.h"#include "my_alloc.h"*/int rc;int db_connection; //数据库连接int query_result; // 查询结果集MYSQL_RESchar *server = "***.***.***.***"; // 数据库服务器IPchar *user = "root";// 数据库服务器用户名char *password = "***";// 数据库服务器密码char *database = "***";// 数据库服务器数据库名int port = 3306; // 数据库服务器端口,默认3306int unix_socket = NULL;int flags = 0;int flagDB = 0;vuser_init(){// 找到libmysql.dll的所在位置.如果安装了mysql,并将dll文件导入了脚本内,可以直接load,不需要路径rc = lr_load_dll("libmysql.dll");if (rc != 0) {lr_error_message("Could not load libmysql.dll");lr_abort();}// 创建MySQL对象db_connection = mysql_init(NULL);if (db_connection == NULL) {lr_error_message("Insufficient memory");lr_abort();}// 连接到MySQL数据库rc = mysql_real_connect(db_connection, server, user, password, database, port, unix_socket, f lags);if (rc == NULL) {lr_error_message("%s", mysql_error(db_connection));mysql_close(db_connection);lr_abort();}return0;}第四步:Action 代码如下:Action(){int i;char *String_int=(char*)calloc(100,sizeof(char));char *paramInsertQuery;char tmp[10000];char str;for (i=1;i<=100;i++){// 设置字符集为GBK,防止中文乱码mysql_query(db_connection,lr_eval_string("SET NAMES gbk"));paramInsertQuery = (char *)calloc(sizeof(char)*10000);// 向数据库插入数据strcat(paramInsertQuery,"INSERT INTO 表名(字段1,字段2.....) VALUES ('");// 向数据库插入数据---第一个字段为自增长的循环序号sprintf(String_int,"%d",i);strcat(paramInsertQuery,lr_eval_string(String_int));strcat(paramInsertQuery,lr_eval_string("',........"));// 输出查看下,insert语句是否正确lr_output_message("--------Current SQL1 is :%s",lr_eval_string(paramInsertQuery));rc = mysql_query(db_connection,paramInsertQuery);free(paramInsertQuery) ;free(tmp) ;}if (rc!= 0){lr_error_message("%s", mysql_error(db_connection));mysql_close(db_connection);flagDB=1;lr_abort();}return0;}在实际操作过程中,遇到中文字符乱码,在插入带中文字的数据前,增加了如下语句:mysql_query(db_connection,lr_eval_string("SET NAMES gbk"));插入的数据,有些实现了参数化,有些是用的循环变量。

LoadRunner出现error问题及解决方法总结

LoadRunner出现error问题及解决方法总结

LoadRunner出现error问题及解决方法总结一、Step download timeout (120 seconds)这是一个经常会遇到的问题,解决得办法走以下步骤:1、修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为600、600、5000。

run time setting设置完了后记住还需要在control组件的option的run 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 timeout(sec),可以稍微设大一些”。

三、问题描述connection refused这个的错误的原因比较复杂,也可能很简单也可能需要查看好几个地方,解决起来不同的操作系统方式也不同。

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

LoadRunner常见问题

LoadRunner常见问题

LoadRunner常见问题1.LoadRunner录制脚本时为什么不弹出IE浏览器? 当⼀台主机上安装多个浏览器时,录制脚本经常遇到不能打开浏览器的情况,可以⽤下⾯的⽅法来解决。

启动浏览器,打开Internet选项对话框,切换到⾼级标签,去掉“启⽤第三⽅浏览器扩展(需要重启动)”的勾选,然后再次运⾏VuGen即可解决问题 提⽰:通常安装Firefox等浏览器后,都会勾选上⾯得选项,导致不能正常录制。

因此建议运⾏LoadRunner得主机上保持⼀个⼲净的环境。

2.录制脚本时,⽣成的脚本中存在乱码该如何解决? 录制脚本前,打开录制选项配置对话框Record-Options,进⼊到Advanced标签,先勾选“Support charset”,然后选择中⽀持UTF-8。

再次录制,就不会出现中⽂乱码问题了。

3.HTML-based script与URL-based script的脚本有什么区别? 使⽤“HTML-based script”的模式录制脚本,VuGen为⽤户的每个HTML操作⽣成单独的步骤,这种脚本看上去⽐较直观;使⽤“URL-based script”模式录制脚本时,VuGen可以捕获所有作为⽤户操作结果⽽发送到服务器的HTTP请求,然后为⽤户的每个请求分别⽣成对应⽅法。

通常,基于浏览器的Web应⽤会使⽤“HTML-based script”模式来录制脚本;⽽没有基于浏览器的Web应⽤、Web应⽤中包含了与服务器进⾏交互的Java Applet、基于浏览器的应⽤中包含了向服务器进⾏通信的JavaScript/VBScript代码、基于浏览器的应⽤中使⽤了HTTPS安全协议,这时使⽤“URL-based script”模式进⾏录制。

4.为什么脚本中添加了检查⽅法Web-find,但是脚本回放时却没有执⾏? 由于检查点功能会耗费⼀定的资源,因此LoadRunner默认关闭了对⽂本及图像的检查。

loadrunner常见错误及解决方法

loadrunner常见错误及解决方法

A、应用服务参数设置太大导致服务器的瓶颈B、页面中图片太多C、在程序处理表的时候检查字段太大或多2、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"选项,再回放是否成功。

3、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秒这个问题,要详细分析了。

LoadRunner错误及解决方法

LoadRunner错误及解决方法

LoadRunner错误及解决方法[转]分类:性能测试一、Step download timeout (120 seconds)这是一个经常会遇到的问题,解决得办法走以下步骤:1、修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为600、600、5000;run time setting设置完了后记住还需要在controler 组件的option的run time setting中设置相应的参数;2、办法一不能解决的情况下,解决办法如下:设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。

切记此法只对windows系统起作用。

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

解决办法:Run-time setting窗口中的‘Internet Protocol’-‘Preferences’设置set advanced options(设置高级选项),重新设置一下“HTTP-request connect timeout(sec),可以稍微设大一些”;三、问题描述connection refused这个的错误的原因比较复杂,也可能很简单也可能需要查看好几个地方,解决起来不同的操作系统方式也不同;1、首先检查是不是连接weblogic服务过大部分被拒绝,需要监控weblogic的连接等待情况,此时需要增加acceptBacklog,每次增加25%来提高看是否解决,同时还需要增加连接池和调整执行线程数,(连接池数*Statement Cache Size)的值应该小于等于oracle数据库连接数最大值;2、如果方法一操作后没有变化,此时需要去查看服务器操作系统中是否对连接数做了限制,AIX下可以直接vi文件limits修改其中的连接限制数,还有tcp连接等待时间间隔大小,wiodows类似,只不过wendows修改注册表,具体修改方法查手册,注册表中有TcpDelayTime项;四、问题描述open many files问题一般都在压力较大的时候出现,由于服务器或者应用中间件本身对于打开的文件数有最大值限制造成,解决办法:1、修改操作系统的文件数限制,aix下面修改limits下的nofiles限制条件,增大或者设置为没有限制,尽量对涉及到的服务器都作修改;2、方法一解决不了情况下再去查看应用服务器weblogic的commonEnv.sh文件,修改其中的nofiles文件max-nofiles数增大,应该就可以通过了,具体就是查找到nofiles方法,修改其中else条件的执行体,把文件打开数调大;修改前记住备份此文件,防止修改出错;五、问题描述has shut down the connection prematurely一般是在访问应用服务器时出现,大用户量和小用户量均会出现;来自网上的解释:1> 应用访问死掉小用户时:程序上的问题。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

相信有不少人在使用LoadRunner的过程中都遇到过这样的问题:在录制下来的脚本的中文信息出现了乱码。

关于乱码问题,可能大家在网上也能搜到不少相关的解决办法,我在这里就不多说了,大家自己去试验一下吧,到底哪个办法有效也就只有谁用谁知道了!我这里只举一个自己遇到的实际例子来说这个问题,也许不是解决这个问题的唯一办法,但至少也是其中的一个吧。

被测系统采用Ajax技术,通过录制下来的脚本看起来像下面的样子(省略函数其它部分,下同):web_custom_request("CALL-H001I","EncType=text/xml; charset=UTF-8","BodyBinary=CALLH001I1040浣忔埧01鏆傛棤鍙风爜<PAPERGR ant organ>1110000001000000.00A110102*********#1闇嶈景榫""""x99" "10001鍘﹂棬100A1442000050031"r"n" "", LAST);从上面脚本的黑体部分可以看出,LoadRunner向服务器提交的请求body部分,输入的中文字段被变成了诸如“浣忔埧”这样的乱码。

遇到这样的情况,相信大多数人和我最开始一样,只能不加理会,直接点击回放,然后我们很高兴地发现,脚本回放成功了!这些乱码是可以被LR识别的,而且到应用系统中查看运行的结果,也没有问题,显示的是正确的中文。

但是且慢!先不要高兴得太早,我们很快就会意识到:如果这个字段我们是需要进行参数化的怎么办?我们应该如何造出这种乱码的字呢?首先,我们直接用正常的字去参数化,这里只举其中的一个例子来说明,比如这个字段,我们用参数值“汽车”直接在脚本中替换“浣忔埧”,脚本回放失败。

然后就想到会不会是所有的中文字段都需要用才行呢?于是把所有的乱码都用简体字替换,脚本回放还是失败。

通过以上的两点试验,说明直接参数化的方法是行不通的,我们必须另找办法。

在LoadRunner中,为我们提供了一个字符串编码转换的函数lr_convert_string_encoding,用法如下: intlr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName); 该函数有4个参数,含义如下: sourceString:被转换的源字符串。

fromEncoding:转换前的字符编码。

toEncoding:要转换成为的字符编码。

paramName:转换后的目标字符串。

在本例中可以看到,我们需要把字符编码转换为UTF-8格式,因此用法如下: lr_convert_string_encoding("汽车",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str"); 这样一来,就成功地完成了字符串的编码转换。

此时我们就可以对"汽车"这个参数进行参数化,参数化的方法很简单,地球人都知道!于是最终的脚本编码看起来像这样: lr_convert_string_encoding("lr_eval_string("{name}"),LR_ENC_SYSTEM_LOCALE,LR_EN C_UTF8,"str");完整的示例代码如下: char string[5000]; chartmp[10]; lr_convert_string_encoding(lr_eval_string("{name}"),LR_ENC_SYSTEM_LOCALE,LR _ENC_UTF8,"str"); strcpy(tmp,lr_eval_string("{str}"));sprintf(string,"BodyBinary=CALLH001I1040%s01鏆傛棤鍙风爜1110000001000000.00A110102*********#1闇嶈景榫""x9910001鍘﹂棬100A1442000050031"r"n",tmp); web_custom_request("CALL-H001I","EncType=text/xml; charset=UTF-8", string, LAST);1 介绍LoadRunner性能测试过程中其中最重要的一个环节是VUG的脚本开发,在脚本开发过程中一项很重的技术就是脚本的参数化,那么什么是参数化如何进行参数化,使我们需要掌握的。

所谓的参数化就是需要将脚本中静态的值通过某种操作转换为动态的值,可以将原来的一个值由一组数据来代替,一次来满足测试脚本访问的多元化,比如我们可以将用户名和密码进行参数化,这样就可以模拟多个注册用户的登陆访问行为;同样的如果我们将其中的某些信息参数化后,可以模拟不同的业务行为等等。

在本个专题中我们来帮助大家解决以下的问题:1)参数化的基本过程及其在过程中需要注意的事项参数化的定义参数的创建通过数据库方式创建参数的过程通过数据文件创建参数的过程2)File类型参数化的选择方式通过这部分我们可以清楚地指导在File参数类型中参数是如何进行选择的,不同的选择方式和不同的更新方式如何配合。

3)File类型中Unique参数选择类型的详解通过这篇文章我们可以清楚地了解在File类型中Unique 参数选择方式是如何分配参数如何对参数进行选择的。

2 参数化的基本过程及其在过程中需要注意的事项以下这篇文章介绍了LR参数化的过程方法,以及在每个步骤中具体的实施步骤,写得很不错:/html/18/n-156918.html3 File类型参数化的选择方式以下这篇文章通过一个实验很好的给大家解释File的参数类型如何选择,以及选择和在不同的迭代过程中如何进行参数的选择:/html/16/n-156916.html4 File类型中Unique参数选择类型的详解以下这篇文章是测试时代14期的一个学生——周春梅写得原创,此篇文章详细的介绍了在File类型参数中Unique中如何进行参数的选择,以及在不同情况下参数的选取情况,详细参见以下文章:/html/17/n-156917.html5 编者语LR脚本中参数化过程是一个很重要的过程,在实际的性能测试过程中应用很多,通过上述的这些文章我们可以对LR中的参数化功能有很好的理解,通过这个专题可以掌握LR的参数化过程和执行参数化的方法。

.错误预防和恢复参数默认是用{}括起来的,但也可以指定用<>NTLM或用户登录验证web_set_user("X\\Y", "Z", ":80");在域与X上的用户名为Y的用户,使用密码Z来登录到:80。

在windows基本验证的时候这个脚本被默认录制下来,但如果web服务器需要更安全的NTLM或更深层次的验证,需要手动的添加这个函数到脚本中。

对于NTML验证,用户名必须在域名之后,并且以\分割。

使用\等符号,需要使用\\,前面的\用来做转义用,否则会出现警告提示。

在论坛中也看到了一些朋友讨论windows弹出登录框的操作LR无法录制到,导致回放出错,一般出错信息多为“Error -26547: Authentication required, please use web_set_user, e.g.web_set_user("domain\\user", "password", "host:port"); [MsgId: MERR-26547]”,其实这种情况错误信息已经很明显的给你提示了,需要往脚本中添加web_set_user函数即可。

2. IP欺骗(略)3.验证检查点通常脚本录制完后需要手动添加些脚本来来确保预期的操作确实进行了正确的响应(如在操作之后后验证显示的一段文本或者图片)。

这些检查可以使用正则表达式。

Web虚拟用户脚本中不会录制到检查点,需要手动添加或者使用VuGen的用户接口来添加函数代码。

最常用的检查点函数是web_reg_find。

这个注册函数会查找脚本中下一个操作如web_url后产生的一段文本。

它是从返回的缓冲区扫描而不是在接收的页面中查找。

这是比web_find更高效的一个函数。

可以使用下面的代码来验证文本出现的次数:web_reg_find("Text=ABC", "SaveCount=abc_count", LAST);web_url("Step", "URL=...", LAST);if (strcmp(lr_eval_string("{abc_count}"), "0") == 0)lr_output_message("not found");elselr_output_message("{abc_count} found");如果想保存并且显示找到的文本,可以使用web_reg_save_param界定左右边界把找到的信息保存到参数中。

如下:char *str1,*str2;str1="desired text";// Register the left and right beacons sought:web_reg_save_param("param","LB/ic=xxx","RB=xxx");// Do the monitored deed:web_url("some url","URL=",LAST);// Compare:51Testing软件测试网*w({:B:~8_str2=lr_eval_string("{param}");if(strcmp(str1,str2)==0) {lr_output_message("param found");}else{lr_output_message("Value found is %s",str2);}1)这里想跟大家说下注册函数,在web/http协议的脚本中,注册函数均以web_reg为前缀,这种注册型的函数都是从缓冲区扫描或者获得数据,因此需要提前声明即需要在能获得该查找信息的函数之前添加这些注册函数。

相关文档
最新文档