发布新日志

  • loadrunner无法加载临时操作文件

    2015-05-07 09:47:38

    最近几天一直在使用一个脚本跑压力,结果今天打开脚本的时候,提示无法加载临时文件了。。。。网上搜索了一下,总结如下

    1、LR占用空间的情况就是那两种。第一,你LR是不是装到C盘了导致磁盘空间满的;第二,LR的缓存文件如果按照你说的tmp就几百M的话,那你磁盘空间不足就不一定是LR导致的了。

    2、删除临时文件位置:
    C:\用户\用户名\AppData\Local\Temp\res     一般是这样的命名:vuac_usr6

    我删除了貌似么有什么用,那个出错的脚本还是运行不起来


    3、修改临时环境变量,图一是tmp、temp两个环境变量修改的值,仅修改这个是不行的,还需要执行图二的脚本:
    wmic ENVIRONMENT where "name='temp' and username like '%SYSTEM'" set VariableValue='%temp%'
      wmic ENVIRONMENT where "name='tmp' and username like '%SYSTEM'" set VariableValue='%temp%'
      wmic ENVIRONMENT where "name='temp' and username like '%SYSTEM'" set VariableValue='%temp%'
      wmic ENVIRONMENT where "name='tmp' and username like '%SYSTEM'" set VariableValue='%temp%'

    修改好了。。但是我的脚本还是运行不了。。。先把这些方法记录下来,备用吧。。
  • loadrunner missing newline 错误

    2015-05-05 11:27:02

    错误: missing newline in E:\LR\script\新增用户1\NewParam.dat

    脚本用户名参数化,使用的是table类型,但是使用的txt编辑,编辑完用户后,末位有一行空行,手贱,删除了。结果每次运行脚本都会报个missing newline错误

    上网一查,原来就是那个空行的问题,在文本末位加上一行空行就不报错了。。。O(∩_∩)O
  • Lloadrunner事务停止

    2015-05-05 09:00:23

    事务顺序登录-新增记录-上传附件-退出登录;
    设置10个用户并发,每过15秒2个用户开始运行;持续运行2分钟,30秒后5个用户逐级停止;
    以上场景设置后,发现有一半的新增记录被停止,也没有报错!想了下,是不是退出太快,事务没有执行完就被强制停止了。
    设置10个用户并发,每过15秒2个用户开始运行;持续运行2分钟,30秒后5个用户逐级停止;修改了下:
    设置10个用户并发,每过15秒2个用户开始运行;持续运行2分钟,30秒后1个用户1个用户的逐级停止;

    果然没有停止的事务了,正常!我们在设置场景的时候,对事务本身的处理时间也要考虑,否则很多事务都没有运行,并发效果也就荡然无存了!

  • loadrunner_LR中错误代号为27796的一个解决方法(转载)

    2015-04-29 14:41:17

    原文见:http://blog.csdn.net/zeeslo

    问题:

    曾经遇到过一个问题,在一次性能测试过程中,使用http协议的多用户服务器发送请求。设置了持续时间,出现错误为:27796, Failed to connect to server 'hostname';port_ld': 'reason'.10048.(凭记忆写的,不知道写错了没有)

    分析:

    因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。

    官方的troubleshooting:
    查看工具的troubleshooting,如下:
    1. Message Code 27796
    2. Failed to connect to server 'hostname';port_ld': 'reason'.
    3. Unable to connect to the specified server and port.
    4. Troubleshooting
    5. o      Try to address the reason provided for the connection failure.
    6. o      Try to access the application with a browser from the injector machine and from another machine (such as the recording machine).
    7. o      Check that you accurately specified the correct host name and port.
    8. o      Ping the host/port.
    9. o      Check if the server application you are trying to access is running.
    10. o      If you used a hostname, check if it was resolved to the correct address.
    11. o      Check if the server application is listening to the right port.
    复制代码

    均不是解决之道。

    成功的解决方法:

    在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下两个键值:
    TcpTimedWaitDelay
    MaxUserPort
    1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
    2,也可以把MaxUserPort调大 --> 65534 (如果这个值不是最大值的话)。

    反复验证,问题解决。

     

    看图片:

     

  • LR运行时不期望看到action_transaction

    2015-04-29 11:33:29

    如果你在运行负载的时候,只希望看到自己设置的事务,则需要再运行设置中进行设置,步骤如下:
    1.点击菜单栏中的Vuser

    2.点击运行时设置,并选择"常规"中的"其他选项"

    3.此时可以将"将每个Action定义为一个事务"选项前的 勾 去掉,即可.

    这样在结果分析时,便不会显示Action相应的事务数据了.
  • LR controller中错误日志出不来

    2015-04-29 11:30:16

    LR脚本并发运行时,点击错误后,始终看不到日志对话框;
    结果就在界面的空白处,随便点击,发现在界面底部出现一点点对话框的影子,使用鼠标将该对话框拖拽出来,双击之后显示在界面最底部,以后每次点击错误,就会加载最新的错误日志。
  • LR关联相关问题

    2015-04-29 11:12:05

    1、LR并发400用户,报错较多,查看错误日志,报错信息-35061 Login.c(450): 错误 -35061: 找不到请求的参数“DAID”的匹配项。检查请求的边界是否存在于响应数据中。
     删掉web_reg_save_param_ex函数下面的 "RequestUrl=***"
    2、web_reg_save_param_ex(
                    "ParamName=CorrelationParameter_2",
                    "LB=",
                    "RB=",
                    SEARCH_FILTERS,
                    "Scope=Body",
                    "RequestUrl=*/test.123456.com/*",
                    LAST);
    ===================
    有很多网站在获取session或是token的时候都会直接将值输出在页面中,左右没有边界可以让你获取。在LR当中获取服务器的动态数据又需要靠左右边界来截取。上面这段脚本可以解决。
  • LR事务个数计算

    2015-04-16 09:48:40

    transaction个数=设置user个数*(action_init+action_end+(action中的事务数*迭代次数))
  • LR访问https解决办法

    2015-04-14 13:41:22

    LoadRunner Vugen Cannot record secure web sites (https:// www…)

    At a CMD prompt type 
     
     certutil -setreg chain\minRSAPubKeyBitLength 512
    //允许的最小 RSA 密钥长度为 512
  • LoadRunner中web_custom_request 和 web_submit_data的区别

    2015-02-12 13:40:27

        web_custom_request方法可以发送POST和GET类型的请求

        web_submit_data只能发送POST类型的请求

        所有web_submit_data方法发送的请求都可以使用web_custom_request来实现,但是web_custom_request可以实现web_submit_data无法实现的请求。

        比如“查询所有邮件并删除”这个案例中,查询时我们使用关联把所有邮件对应的标识抓取成一个数组,如果使用web_submit_data来完成这个删除的请求,需要很多个web_submit_data请求才能完成,但使用web_custom_request就可以通过一个请求完成,方法是自己写代码拼一个web_custom_request 方法POST请求的Body值。

       web_submit_data请求中提交的数据是以这样的方式存在的

      “Name=属性名称,,Value=属性值” 

         如:
         “Name=locale”, “Value=L2″, ENDITEM, 
         “Name=dataCenter”, “Value=yh”, ENDITEM, 
         “Name=username”, “Value=12044″, ENDITEM,

        如果我们想提交的某个属性包含包含多个值(上文的例子中就是这样的情况),它就无法处理了,只能通过多个web_submit_data来处理。


        下面是一个典型的web_submit_data和web_custom_request请求,可以看到web_custom_request中提交的数据(body)是以这样的方式存在的

       “Body=属性名称=属性值&属性名称=属性值&……

         web_submit_data(“login”, 
            “Action=http://192.168.14.21:78……ndex_sso.jsp”, 
            “Method=POST”, 
            “RecContentType=text/html”, 
            “Referer=http://192.168.14.21:7888…=/index_sso.jsp”, 
            “Mode=HTML”, 
            ITEMDATA, 
            “Name=locale”, “Value=L2″, ENDITEM, 
            “Name=dataCenter”, “Value=yh”, ENDITEM, 
            “Name=username”, “Value=12044″, ENDITEM, 
            “Name=password”, “Value=”, ENDITEM, 
            “Name=_eventId”, “Value=submit”, ENDITEM, 
            “Name=isPureWeb”, “Value=true”, ENDITEM, 
            “Name=solutionName”, “Value=eas”, ENDITEM, 
            “Name=dbType”, “Value=1″, ENDITEM, 
            “Name=easSessionId”, “Value=eas;yh;L2;12044;BaseDB”, ENDITEM,        
            “Name=userAuthPattern”, “Value=BaseDB”, ENDITEM, 
            “Name=loginFlow”, “Value=true”, ENDITEM, 
            LAST);

        web_custom_request(“CommonQueryDialog.jsf_3″,
            “URL=http://192.168.14.21:7888/ea…ueryDialog.jsf”,
            “Method=POST”,
            “Resource=0″,
            “RecContentType=text/javascript”,
            “Referer=http://192.168.14.21:7888/…DailyLoanUERc+ihtml”,
            “Mode=HTML”,
            “EncType=application/x-www-form-urlencoded;charset=UTF-8″,
            “Body=queryDialog:selectSolutionList=查询&queryDialog:j_iduserFilterPanel_3_value=Kd5QoAEPEADgAAf8wKgEDMznrtQ=&=湖南亚华乳业有限公司&queryDialog:j_iduserFilterPanel_6=&queryDialog:j_iduserFilterPanel_9_value=3&=大于等于&queryDialog:j_iduserFilterPanel_11=0&queryDialog:j_iduserFilterPanel_14_value=&=&queryDialog:j_iduserFilterPanel_17_value=&=&queryDialog:j_iduserFilterPanel_20_value=&=&queryDialog:j_iduserFilterPanel_23_value=&=&queryDialog:j_iduserFilterPanel_26_value=&=&queryDialog:j_iduserFilterPanel_29_value=&=&queryDialog:j_iduserFilterPanel_32=&queryDialog:j_iduserFilterPanel_35_value=&=&queryDialog:j_iduserFilterPanel_38=2008-08-01&queryDialog:j_iduserFilterPanel_41=2008-08-28&queryDialog:filterGrid_modifiedData=[]&queryDialog:filterGrid_removedData=[]&queryDialog:_postback=&queryDialog:userFilterPanel=/cp/bc/dailyLoanBillCommQuery.xhtml&javax.faces.ViewState={vs2}”,
            LAST);

    通过观察,发现有两种情况下的POST请求会被LoadRunner录制为web_custom_request,

    1.   上文提到的批量提交多条同属性名称的数据的请求
    2.   header属性x-requested-by值为XMLHttpRequest的POST请求

    ****这两种实现请求的方法还有一个需要注意的地方就是web_custom_request中body中的属性值如果包含一些特殊字符,必须通过URL编码,否则Web服务器会返回500错误,一个典型的例子是如果Body中包含ViewState,ViewState中常常有“=”之类的特殊字符,此时必须通过URL编码,LoadRuner中提供了一个这样的编码转换函数

           web_convert_param(“vs1″, “SourceEncoding=HTML”,  “TargetEncoding=URL”, LAST);

  • Loadrunner web录制脚本基础参数

    2015-02-12 13:18:15

    web_url("login!toBackdoorLogon.action", 

    "URL=http://ip:端口号/vams/login!toBackdoorLogon.action", 

    "TargetFrame=", //目标窗口_BLANK:打开一个新窗口

                                              _PARENT:取代最后一个窗口的父窗口
                                              _SELF:
    取代最后一个窗口

                                             _TOP:
    取代整个页面

    "Resource=0", //URL是否为一个资源  0:不是   1:

    "RecContentType=text/html", //录制过程中,响应报头内容格式

    "Referer=",  //提交网页的URL

    "Snapshot=t2.inf",   //快照文件名

    "Mode=HTML",  //录制水平: HTML or HTTP.

    //HTML level:指导VuGen录制直观的HTML动作,录制web_url,web_link,web_image。返回的是HTML页面,而不是脚本和程序。

    //HTTP level:指导VuGen录制全部的服务器响应。不产生web_link,web_image,web_submit_form。比HTML高级,但当读脚本时不是很直观。

    EXTRARES,  //参数表划分标志(下个标志是一个资源特征表)

    "Url=js/dateTime/skin/WdatePicker.css", ENDITEM, //资源结束志   

    "Url=images/systemSkin/1_01.png", ENDITEM, 

    "Url=images/systemSkin/3_01.png", ENDITEM, 

    "Url=images/systemSkin/1_02.png", ENDITEM, 

    "Url=images/systemSkin/ss.png", ENDITEM, 

    "Url=images/systemSkin/1_03.png", ENDITEM, 

    "Url=images/systemSkin/2_03.png", ENDITEM, 

    "Url=images/systemSkin/1_04.png", ENDITEM, 

    "Url=images/systemSkin/2_01.png", ENDITEM, 

    "Url=images/systemSkin/2_02.png", ENDITEM, 

    "Url=images/systemSkin/2_04.png", ENDITEM, 

    "Url=images/systemSkin/3_02.png", ENDITEM, 

    "Url=images/systemSkin/3_03.png", ENDITEM, 

    "Url=images/systemSkin/3_04.png", ENDITEM, 

    LAST); //特征表结束标志

  • LR11导入license失败

    2015-02-03 09:31:03

    进入安装了LR11,按照网上的方法导入了两个dll文件,发现导入license失败,提示失效,然后去找lr的注册表信息
    终于在与9.x版本不同的位置找到了,删除以下两个注册表信息,终于可以导入license成功
    {HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MercuryInteractive\LoadRunner\License2}
    {HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\Interface\{87B3ADD4-21EB-11d5-93EF-00105AA0FD2D}

    遇到同样问题的GGDDJJMM们做个参考吧。。。
  • 双击运行jar文件没有反应

    2012-12-18 14:34:42

    最近同事给了一个签名的jar包,别人的机器安装了java开发环境,都可以正常运行,我的机器上双击之后,死活没有反应;真是伤心要命;

    咱就只能老老实实在cmd下面运行了;

    首先进入cmd命令行,切换到jar文件的目录下;我是直接放在d盘下的

    切好后,输入 java -jar 文件名.jar

    才能把我的应用程序打开,网上说法很多,但是在我机器上用了无果,伤心
  • Apache ant 1.8.4正确安装

    2012-12-17 09:48:11

    Apache ant 1.8.4

    下载http://ant.apache.org/bindownload.cgi 

    安装  
    1。解压ant安装包到本地目录如:D盘

    2. 环境变量配置(操作如下:我的电脑--》属性--》高级配置--》环境变量)
       ANT_HOME   D:\apache-ant-1.8.4;
       CLASSPATH  .;%ANT_HOME%\lib;
       PATH       ;%ANT_HOME%\bin;

    3.测试是否安装成功
      在cmd命令方式下输入:ant -version

        C:\Documents and Settings\Administrator>ant -version
        Apache Ant(TM) version 1.8.4 compiled on May 22 2012

        C:\Documents and Settings\Administrator>
      说明配置成功。  
  • NSTALL_FAILED_INSUFFICIENT_STORAGE调试错误的解决

    2012-10-31 14:58:13

    哎,调试程序,忽然提示如题错误;上网一查,原来是手机内存不足了。。。

    网友是这么说滴:“

    2.2之前的所有模拟器都会遇到的问题,机器内存的瓶颈,当apk大于我们的机器内存时,模拟器无情的抛出

    Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
    Please check logcat output for more details.
    Launch canceled!



    好吧,原来俺滴需要调试的手机浏览器安装到手机内存上去了,所以接下来不停操作手机内存,估计此时遇到问题了;好吧,咱把手机内存上安装滴东西给转移到SDK;在运行下程序;欧拉!吼吼!

  • ADB server didn’t ACK问题的解决

    2012-10-31 13:59:25

    安装了android开发环境,老是出现 ADB server didn’t ACK,让人头疼;
    上网查了之后才知道,是由于豌豆荚或者其他进程占用的adb服务,所以adb启不起来;
    哎,删进程吧“wandoujia——helper.exe”;
    删除之后,在cmd中启动ADB start-server;好了,正常了;eclipse里面也OK了。。

  • LoadRunner录制event=0

    2011-06-10 15:21:47

       前天安装好了LoadRunner11,并且破解成功,很是开心。今天闲来无事,打开工具准备温习温习已经丢掉的知识。杯具发生了。。录制过程中没有产生任何event。。。于是百度了一下。。解决。。happy!我的安装环境WINXP+IE8+LR11.

       1、网上说要把INTERNET高级设置中的“启用第三方浏览器扩展*”前面的钩钩去掉,于是我按照这个做了。录制过程仍然没有event。

       2、有查到说在电脑属性-高级-性能-数据执行保护中添加LR安装目录下的vugen.exe,咱也照做。重新录制,居然正常了。。

       这时我就在想是上面的两个操作同时起作用还是第二步操作起作用呢,这个简单,咱再把“启用第三方浏览器扩展*”勾上,开始录制。录制过程中看到产生了event,点击结束录制按钮,居然没有任何脚本。可见刚才虽然产生了event但是最后却没有实际生成脚本。

       看来1、2中描述的两个操作还都是有作用的,咱还是老老实实按照网上说滴来搞吧。。

       不过大家各自安装环境不同,同一个现象,原因可能还会有很多种。。大家一起慢慢摸索吧。。此处将大家智慧集合,仅供同样问题的难友做个参考。。O(∩_∩)O

     

  • Window下Android开发环境的搭建

    2011-06-03 10:03:40

    近一年一直在搞手机软件测试,而且近几年Android平台发展的很好,很多人也都在研究这个平台,所以我也来凑凑热闹,搞搞这个系统,学习下。。毕竟公司以后的产品都是在这个平台上滴。。根据网络上很多大侠的帖子,终于搭建好了。。过程也有些曲折,不过看到HelloWorld运行成功,心里还是很Happy滴!android平台网上介绍的太多了。我也不是专家,不在这卖弄了。哈哈。。。。

    1、准备工作:

    1)   JDK,我使用的是1.6版本滴,全名“jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008”,现在的命名和几年前不一样了,一开始我还以为我下错了呢。。

    2)   Eclipse:我下载版本应该还算比较新吧,直接从官网上就可以下到了,全名“eclipse-SDK-3.6.2-win32

    3)   ADK:文件全名“ADT-0.9.9”,这个是俺使用的版本

    4)   SDK,网上说这步最复杂,不过也没有这么恐怖了,哈哈。。我下载版本的全名“android-sdk_r07-windows

    2、 搭建步骤:好了,文件都准备好了,咱就开始吧。。

    1)         JDK安装:最好选择全应为路径进行安装,我的安装目录是“D:\Java\jdk1.6.0_10”;安装成功后,熟悉java的朋友们对设置环境变量一定很熟悉了吧。。这里同样也要设置下哦。。右键我的电脑,打开属性>高级>环境变量。编辑path变量,加入jdkbin路径,比如在我的配置路径为D:\Java\jdk1.6.0_10\bin;若系统中有classpath变量则编辑该变量,加入jdklib路径,我的路径就为D:\Java\jdk1.6.0_10\lib,如果没有classpath变量,就新建一个,然后如上操作。装完运行cmd测试是否安装成功。注意哦,如果你以前安装过oracle等可能修改你的环境变量的软件时,一定要记得把那些值给删除。。不然你看到的version不会是你最新安装版本的哦。。如果看到现实的版本号与你安装的版本号一致的话,说明jdk安装成功了。

     

    2)   安装Eclipse,这个最简单,eclipse不需要安装,直接解压就ok。我的目录是“D:\Eclipse”,呵呵,记起来方便。不过第一次启动的时候,需要设置一下你的工作区目录,这里我使用的目录是“D:\alina”。

    3)   安装ADT:启动eclipse,打开Help->Install New software,在出现的窗口中点击Add按钮,出现如下对话框

    我是在线安装滴,https://dl-ssl.google.com/android/eclipse/name自己想一个好记就行。如果你使用本地安装的话location载入本地存在ADT安装包的地址就可以,可以含中文哦。。。地址录入好,确认返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMSAndroid Development Tool,勾选他们。 如下图所示:

    选择安装Android DDMSAndroid Dalvik Debug Moniter Server)和Android Development ToolsADT),剩下的基本就是一路next了。这儿有个加快安装速度的小技巧,把图中Show only latest versions of available softwareContact all update sites during install to find required software前面的勾去掉。这个ADT的安装也就搞定了。

    4)        SDK安装:这就是网上说滴最难安装的一步。咱们来装装看吧。。根据网上大侠的指点,要把SDK包解压到英文目录下,我的路径比较简单“D:\android-sdk-windows”。解压后,启动文件夹下的SDK Manager,他会自动从网上下载SDKGoogle API,我都一股脑的装上了。这个由于是在线下载安装所以过程比较慢,需要点耐心慢慢装吧。安装完后,你会看到很多包如下图:

    然后我们还要设置下,在eclipse中打开window->preference

    SDK Location中录入将Android SDK的安装目录填上就行了。有些网友还说在系统变量path中要添加“D:\android-sdk-windows\tools”,不管有啥用,咱先加上,好了,整个开发平台的安装就完成了。下面我们来试下helloworld程序。。嘿嘿。。。

    4.Android平台测试

    1)   配置AVD:在Eclipse中点击,打开Android SDK and AVD Manger

    此图是我已经建好了的,首次进入是,virtual devices是空滴,点击“New”,进入

    当然Name也是根据你的需要起了,根据你选择的Target不同,下面的个属性值也可能不同,这个也是各取所需了。设置好后,点击“Create AVD”,AVD创建完成。

    2)   Hello World

    首先新建一个Android工程

    build Target选择的和AVD建立的那个版本是一致滴哦。project名,Properties下的都根据自己的需要进行填写。填写好之后,点击”Finish”,完成工程建立。

    展开工程:

    打开hello.java文件开始编辑,输入下面这段程序

    没有错误点击运行,启动模拟器的过程比较慢的,因为还要启动AndroidEmulator

    这个就是最后的显示结果喽!

    参考文献:

    http://chendongqi2007.blog.163.com/blog/static/1750242962010102024516599/

    http://www.cnblogs.com/skynet/archive/2010/04/12/1709892.html

     

  • Ruby+watir 安装过程

    2010-09-15 08:58:53

    公司使用的自动化测试框架是watir+ruby,因此根据网上大人的帖子安装成功,真是非常感谢!以下为我的安装步骤:

    1.安装Ruby,http://rubyforge.org/frs/?group_id=167,官网推荐安装1.8.6版本,下载ruby186-26.exe,安装,安装选项全部默认。

    2.更新Rubygem,网速好的情况下可用命令:gem update --system。否则,采用本地安装,打开http://rubyforge.org/frs/?group_id=126,下载rubygems-1.3.4.zip,双击setup.rb安装。(我显示使用命令进行更新,但是失败。然后根据网上达人的提示下载了安装包,setup之后,我又在cmd下执行了更新命令,更新成功)

    3.安装IE Watir,网速好的情况下可用命令:gem install watir。否则,打开http://rubyforge.org/frs/?group_id=104,下载watir-1.6.2.gem,命令行进入下载文件所在目录,运行gem install watir-1.6.2.gem。我在安装的时候遇到了个奇怪的问题,提示缺少commonwatir,于是在网上下载了commonwatir- 1.6.2.gem,进行安装。之后我又执行了一次gem install watir,才算是安装好了。有个疑问,不知道commonwatir的版本和watir有什么区别?而且网上的版本太多,看着比较混乱。

    4.检测:打开SciTE,输入

    require 'rubygems'

    require 'watir'

    ie = Watir::IE.new ie.goto(http://www.baidu.cn)

    保存为a.rd文件,F5执行,

    输出 >ruby a.rb

    >Exit code: 0

    到此安装成功。

    注意:以上所有软件的版本可以根据你自己的需要进行选择。

Open Toolbar