我的QQ:18324258 朋友们,如果需要交流,请直接联系我的QQ,并说明相互学习,不要留给我QQ号,我不会动不动就上来看的。希望多交流,谢谢!

发布新日志

  • WINSOCKET脚本:10054 connection reset by peer

    2007-05-15 15:20:14

    现象:1、在单脚本执行10次迭代没有问题。2、在Controller中并发执行出现此错误。3、错误总定位在程序是某一行。4、失败的用户的迭代次数都相同。

    方法:1、排除了程序问题
        
          2、排除了服务器防火墙、弑毒软件问题

          3、使用IP 欺骗无效。

    原因:是参数问题。

          1)、参数是使用EXCEL表,用 micro query生成的。结果小数点后的0被处理成了空值。
         
          2)、而空值在BUFFER里传送给服务器后,服务器程序不识别,连接被强制关闭。

    教训啊!无论多少个参数,一定要确认参数无错误。

  • 使用WDiff比较脚本,以识别需要关联或参数化的部分

    2007-05-15 15:09:08

    1、识别关联,客户端使用相同的输入相同的值,生成两个脚本。
    2、使用WDiff工具进行比较,WDiff工具功能比较强大,当然也可以使用UtraEdit。
    3、根据比较结果识别哪些需要进行关联。

    4、如果关联的地方与输入的参数有关,选择不同的输入,但尽量选择结果集相近的,由于不同的参数返回的结果集不同,太多的差异会增加识别需要关联的值的难度。
    5、也可以用此方法来识别哪些是需要参数化的值。如在WINSOCKET脚本中,通过比较DATA.WS来判断参数,比打开一个一个BUFFER查看容易的多。

  • LR8.0监控指标我感觉有错的地方

    2007-04-23 10:58:17

    呵呵,可能是我的方法、步骤不对,暂时未能解决吧。

    1、监控指标。有很多指标的最大值(%)超过100%,可能是瞬间值真的会超过,但我多次观察,更多的可能是由于换算时主要考虑平均值,所以导致最大值换算后不正确。

    2、可用内存:avaliable memory(M),其它的没有看。  测试过程在,我登录服务器实测使用了2。6G,还有5。4G吧,但监控所得只有64M,并且最大,最小,平均都是64M多,不合理。

    呵呵,没有大的影响,不过下次时要注意。

  • 问题十二、Bookmasks的作用

    2007-04-19 16:00:16

    在WINSOCKET协议中感觉非常有用,尤其是脚本参数化的时候。因为BUFFER中要参数化的内容比较复杂,难以查找,所以最好能以BOOKMASKS做标记。以防止参数化时遗漏。不过BUFFER只支持树形视图,参数化只在脚本视图时进行,切换来切换去,真是很麻烦

    还有一点,最好在每个BUFFER前加上注释,知道本次SEND BUFFER到底做了什么事,如果出了问题调试起来也容易的多。

    至于BUFFER里N多的X00,可以用UTRLEDIT处理一下,就比较容易看清楚BUFFER里的内容了

  • 问题十一:自动运行测试场景

    2007-04-19 15:49:46

    由于有多个测试场景,并且希望在夜里运行,所以制定了一个自动运行脚本,使用WINDOWS任务计划来自动执行。

    cd C:\Program Files\Mercury Interactive\Mercury LoadRunner\bin\
    wlrun.exe -TestPath C:\0418\scenario\关键词查询.lrs -ResultName C:\0418\result\关键词查询 -Run

    设置自动计划时有个小插曲,原来在设置运行用户时,自动弹出  机器名\administrator,我没有修改,发现计划启动不了,检查删除administrator前的机器名,才成功了。

    不过不太稳定,试过一晚上制定了三个计划,但第二天来时,发现任务管理器中有三个WLRUN进程,但却没有结果生成,不知道什么原因。

     LR也自带了场景执行计划,有三种方式:立即执行,延迟一定时间,在指定的时间开始,但有局限性。

    1、必须打开该场景时,计划才能生效

    2、不能执行多个场景,因为一次只能打开一个场景。执行完了就停止了,要想执行下一个,必须人工干预。

    3、试了几次“指定的时间开始”执行场景,但都不成功,我开始以为是扫描计划有一定的时间间隔,后来发现不是这样的,计划开始时间过了一个小时,还不执行,就再也没有用它了。

    07-07-20补充: 可以在启动场景前,使用TASK KILL命令关闭wlrun进程,然后再执行,但TASK KILL不能在WINDOWS 2k下运行.

  • 问题十:使用LR监控WINDOWS资源

    2007-04-19 15:33:23

    1、选择被监控的服务器,操作系统应该没有太大关系,如果监控不到,调整一下吧。

    2、监控机和被监控机的登录用户相同,并且有管理员权限。

    3、登录密码要一致,否则不会报错,但监控不到数据。

    4、如果还是没有,在被监控端打开perfmon程序。有时没有打开能监控到,有时只是监控不到内存数据,有时全部都没有。

    如果还没有,那就不知道了。

     

  • 使用winsocket+oracle(2-tier)测试遇到的一些问题(三)--BUFFER的MISMATCH问题

    2007-04-19 10:50:24

    问题九:BUFFER的MISMATCH问题。

         接收BUFFER时,报MISMATCH。有几种情况:

     1、协议错误。我开始全部使用WINSOCKET协议录制,回放时,在查询ORACLE时全部报MISMATCH,并且在实际接收的BUFFER中出现ORACE错误---未找到数据。经查证,是由于客户端直接与数据库服务器通讯,而不是通过应用服务器来通讯,而录制脚本时只是监控客户端与应用服务器间的通讯,所以报错。 

       此时的MISMATCH在连续很多个接收的BUFFER中都报出。并且实际接收到的BUFFER字节为0。

    2、传输时丢失(可能)。在测试时,遇到广播消息时,每次都报MISMATCH,期望字节为26,实际收到24,但每次都一样,可能是传输时丢失,也可能是实际收到的广播信息和录制时不同,这个不太清楚,不过不用理它就行了。

       也可以指定接收字节的长度来解决,由于最后我删除了与广播相关的脚本,所以这些MISTATCH也就没有处理了。

    3、实际的情况的确不符合。由于在发送的脚本中使用了参数,不同参数返回的内容是不同的,所以录制的接收和实际的接收不一致,这是正确的。

       在代码开始时增加了函数:lrs_set_timeout(1,0);lrs_set_timeout2(1,0);将MISMATCH的超时从10秒改为1秒,就OK了。

  • 使用winsocket+oracle(2-tier)测试遇到的一些问题(二)

    2007-04-11 16:27:31

    问题六:

       在CONTROLLER中运行脚本时,有一台AGENG总是报错,错误是脚本中ORALEXEC时的错误(具体不记得了)。由于脚本都一样,所以考虑是网络原因。 但三台AGENG中,有两台是同一网段。并且使用TRACERT进行跟踪,不同网段的施压机都是接在同一个交换机上的。

       最后将AGENG机子上的HOST中都添加了数据库服务器,搞定。  不过有点奇怪的是:IP在前,主机名在前,居然不识别。

    问题七 :用QALOAD测试,整个ACTION是交易响应时间非常长,但包含的子交易(检查点的方式设置)的响应时间都很短。子项目的响应时间和与整个ACTION的响应时间不相等的。后来设置时间戳,把整个ACTION中的事务记录下来,发现还是不相等。  最后,才发现原来是施压机和受测程序在不同的网段,并通过多个路由器,导致网络连接时间过长,不过QALOAD中没有看到细分图, 比较难分析。

    问题八 :由于网络的原因,疲劳测试运行24时都不在现场,等90个小时后去查看,发现有一个GRADUAL EXITING 的用户始终没有退出,不管是不是受测程序的问题,但总觉得要是选择STOP IMMEDIATLY会不会好些。

     

     

  • 使用winsocket+oracle(2-tier)测试遇到的一些问题

    2007-04-06 11:22:39

    问题一

       WINSOCKET协议录制脚本时,应用服务器动态端口问题。

     

    现象:发现在访问应用服务器的公共端口后,服务器返回了一个动态端口,导致脚本再次运行时出现错误。

     

    解决:关联。1、使用函数lrs_save_searched_string。将访问公用端口后应用服务器返回的动态端口进行关联。然后再下次连接时,将脚本中录制的固定的端口改为新建的参数即可。

     

               2、可以在树形脚本中,找到要关联的端口,点击右键,选择“create Parameter,指定参数名,使用参数的 socket、要参数化的Buffer、左右边界即可。系统生成的函数为:lrs_save_searched_string( "socket0", LRS_LAST_RECEIVED, "Parameter1", "LB/BIN=PORT=", "RB/BIN=))", 1, 0, -1 );

     

        如果不指定左右边界,就会生成lrs_save_param函数

              

     3lrs_save_param也可以,不过端口必须指定长度,对于返回的端口长度确定的可以使用。

    如:lrs_save_param("socket0", LRS_LAST_RECEIVED, "oracleport", 57, 4);     

     

    问题二:使用lrs_save_param时,如何计算偏移量。

     

    解决:1、在data.ws中,选择要计算偏移量的BUFFER,F7,会出现EBCDIC Translation表,每行第一个字符的偏移量是本行最前面显示的数字,后面的依次累加就可以得到。

     

          2、在树形脚本中,找到要计算偏移量的端口,右键,点击“go to offset”。

     

    问题三:端口参数化后打印出来,不是对应的端口,而是作为字符打印出来了。

     

    解决:使用lr_message_output函数,当时尝试了N次,都不成功,将参数打印出来,发现捕捉的不是端口号,最后才发现原来是参数的表示写错了。

     

    查看:tools->general options->parameterization 里使用的是<  >,而我脚本中使用的是{ }。所以我打出来的是“{parameter},而不是我想要的“1878

     

    问题四:协议选择问题

     

    现象:开始初步确定系统是三层结构,使用WINSOCKET协议录制脚本。发现在访问数据库的1251端口后,服务器返回了一个动态端口,导致脚本再次运行时出现错误。

     

    分析:其实这里面有个错误,如果是标准的三层结构,录制的脚本是不会直接访问1251端口的,所以客户端应该有直接访问数据库的部分,此时不应该采取单个WINSOCKET协议,但由于没有经验,所以就努力地解决动态端口的问题。

     

    后来解决了动态端口问题后,重新回放脚本,发现一些BUFFER发送了几百字节,但接收回来的为0,并且是很多连续的Mismatch,发送的和接收的相关很大。

     

    如:vuser_init.c(84): lrs_receive(socket1, buf31)

    vuser_init.c(84): Mismatch (expected 290 bytes, 0 bytes actually received)

     

    查找附近的脚本,发现接收的buffer中很多都会出现:“ORA-01403: 未找到数据”的错误。

     

    最后结论:可以协议选择不正确。后面采取了winsocket+oracle(2-tier)协议解决。并且也没有了返回动态端口的问题。

     

    问题五SOCKET关闭问题

     

    现象:在录制并回放脚本时并没有错误,但在controller迭代多次回放时出现,报错:找不到socket.

     

    分析:在脚本中create socket0是写在INIT脚本中,而close socket0是写在ACTION脚本中,而INIT脚本只执行一次,在第一次运行时ACTION中已经关闭了此socket,再次迭代时,就会报错了。

     

    解决:将close socket0放在END脚本中,在整个迭代过程中此  socket一起保持,不关闭

  • 分类的软件测量指标示例--快速测试

    2007-01-30 15:34:12

    快速测试读书笔记(一)
    分类的软件测量指标示例

    分类            软件测试指标

    规模             编写的总代码行数
                       注释行数
                       变量声明总数
                       总空行数
                       功能点数
                       对象数

    生产效率           花在项目上的工作小时数
                       花在每个对象上的工作小时数
                       每个对象变更的次数 

    可维护性           传递给每个对象的参数个数
                       每个对象的方法数
                       使用某个方法的对象个数
                       每个对象中判断点的个数
                       每个对象的控制流复杂度
                       每个对象的代码行数
                       每个对象的注释行数
                       每个对象的数据声明数
                       每个对象中的直接分支数
                       每个对象的输入输出数

        缺陷追踪           每个缺陷的严重性
                           每个缺陷的位置
                           每个缺陷的修正方式
                           每个缺陷的负责人
                           缺陷影响到的代码行数
                           发现一个缺陷所需的时间
                           修正一个缺陷所需的时间
                           修正每个缺陷进行尝试的次数
                           每个缺陷修正导致的新缺陷数
     

        质量               缺陷的总数
                           每个对象中的缺陷数
                           每千行代码中的平均缺陷数
                           平均无故障运行时间
                           编译器发现的缺陷的个数   

  • 质量管理学习(二)

    2007-01-29 18:01:13

    1、提高质量会增加成本吗?

       1)长期观点
         A)减少浪费
         B)避免重复劳动
         C)避免不能增值的行为
       2)短期观点
         成本:A)咨询费
              B)培训资料,研讨班成本
              C)系统改进,BS5750成本
              D)联络,业务简报成本
       3)中期观点
         改善--合理精简--成本--收回

  • 质量管理学习(一)

    2007-01-29 17:45:24

    什么是质量?

    一、质量不是奢华,而是:

     1、产品能满足我们的要求吗?
     2、产品是否适用,或者说是符合我们的需要?
     3、服务会令我们满意吗?
     4、服务或产品有价值吗?


    what is quality?

    quality is not luxury,bug mean as:

    1、does the product meet my requirements?
    2、is it suitable,or fit for my purpose?
    3、will the service delight me?
    4、is the service ,or product,of value (a function of both quality and price)


        二、质量的意义变了吗?

          1、质量控制
             
            1)把重点放在检验和检查上
            2)将废品挑出
            3)检查员的作用是查看他人的工作

          重点:工作的量

         1、Quality Control
           
           1)Places the emphasis on the inspection and checking.
            2) Take out the scrap.
           3) The rose of the inspector is to check the work of others      
     
        Focus:the amount of work

              2、质量保证
             
            1)致力于系统及过程
            2)在可能的地方进行质量管理并使用某个特定的方法
            3)这有助于始终一贯性及一致性

          重点:工作的方式

         2、Quality Assurance
           
           1)Work to systems and procedures.
            2) Design quality in where possible and follow a particular method.
           3) This helps consistency and conformance
     
        Focus:the way work is done

          3、质量管理
             
            1)每个人对自己的工作质量负责,即:在把工作交给下一阶段前进行自我检查。
            2)这意味着做正确的事,并且 一次就做好。
            3)(另,由客户设定标准)

          重点:所做事情的结果

         3、Quality Management
           
           1)Everyone is reponsible for the quality of their own work.ie:check own work before passing the work on.
            2) This implies doing the right thing.and dong it right first time.
           3) (PS The customer sets the standard.)      
     
        Focus:the results of what is done.

     

       4、全面质量管理

          1)客户制定标准
          2)减少总体成本
          3)持续不断的提高
          4)在整个组织内部进行管理领导战略的变革,质量管理是其中的一部分
          5)减少错误以避免浪费
          6)做正确的事以增值
          7)让每个人发挥作用

       4、TQM IS

          1)Customers set standards
          2)Reduction of total costs
          3)Continuous improvement
          4)Management leading strategic change of which quality is a part.thoughout the organisation
          5)Avoiding waste by eliminating errors
          6)Doing the right things to add value
          7)Using everyone

     

  • 原来的BLOG地址,个人版权所有啊!

    2007-01-29 11:04:30

  • 在WIN2003 SERVER X64下使用LR8.0

    2007-01-29 11:00:00

    1、直到LR8.1都不支持WIN2003 SERVER X64。

    2、如果在WINDOW2003 SERVER下使用LR,最好能使用LR8.1+SP4

    3、测试ORACLE 10G,必须使用LR8.1+SP4

    4、如果在WONDOWS下监控不到性能参数,可以在测试服务器上打开Perfmon.msc,这样LR就可以监控到了。

     

     

    但一直无法添加对ORACLE的监控,并且在参数化时有问题

744/4<1234
Open Toolbar