发布新日志

  • 对Loadrunner脚本的建议(转)

    2008-10-31 15:53:04

     沉浮于LR很多天了,以前一直在WR分论坛漂。看到大家提出很多问题,不过发现大家的脚本大都已录制为主,而且经常有提出录制的脚本回放有问题,其实很多问题很好解决,LR提供了很多手段调试和优化我们的脚本。

      1.设置断点

      相信大家都不陌生,LR也是可以设置断点的,在需要设置断点的语句前按F9快捷键,断点就设置好了,程序运行到断点语句后会暂停,这时我们可以用F10单步调试程序.

      2.打开EXtended Log

      只是设置断点是不够的,我们还得知道具体发生了什么事情,Log告诉了我们一切,默认的Log是standard Log,这时远远不够的.我们要extended log,打开路径为runtime settings-->log-->extended log.把parameter substitution和data returned by server和advanced trace大家根据需要勾选吧.

      3.注释掉多余的语句

      很多回放时出错的脚本都是因为多余的语句.因为LR在录制的时候,LR生成的语句很多不是我们想要的,这里结合几个网友的问题说说,曾有网友问:回放脚本的时
    候 socket出错,提示: Error : socket0 - Address already in use. Error code: 10048.而且非常坚持说脚本不会有问题,因为脚本直接录制后回放,什么都没改,是不会出错的.拿到脚本一看,有一条语句 lrs_create_socket,建立了socket0,但是之后没有任何socket0的语句,可以判断出该语句是无效的,注释掉,问题解决。所以大家不要过分相信LR了,它生成的语句也是有很多BUG的。

      经常有朋友们问到,log文件在哪看,特别是controll执行后,怎么看log。这里一一说明一下:

      (1)在vgen中,我们必须写输出函数输出信息,将我们所想要了解的信息用函数输出,主要有这么几个函数输出信息:lr_output_message,lr_error_message,lr_log_message。这些函数请参阅 help-->function reference.

      其次,我们要在runtime settings中设置,勾选always send messages,具体的做法是:runtime settings--->log-->always send messages,这样我们才能写出Log,在我们的脚本所在的文件夹中,有两个文件很重要,mdrv.log.txt和output.txt文件,lr_log_message只会把信息输到mdrv.log文件中,而lr_output_message则会写进以上两个文件。

      (2)在controller中,很多朋友都会想知道多次迭代,参数是否正确的导入了呢,我们依旧查看log,我们在执行结束后,查看结果目录的Log文件夹,如果是负载生成器运行的话,则在tmp目录。不过,还想提醒朋友们,在controller我们也要设置runtime settings才行,而且每个用户组的runtime settings,设置的方法是:在controller的design标签页中,右下角的部分有runtime settings按钮,我们点击它,设置的方法与在vgen中一样的。

  • 脚本-内部参数、外部参数

    2008-10-31 15:48:19

    刚开始学Loadrunnder,并且C语言已经忘记的差不错了。

    整理了一下内外参数在函数中下用法,什么时候加{},何时加"",也不知道是否正确,欢迎各位指教。

     i = atoi(lr_eval_string("{flight_name_count}"));
     lr_output_message("%d",i);
        k=rand()%i+1;
     lr_output_message("%d",k);
        sprintf(tmp,"{flight_name_%i}",k);/**内部字符串变量,所以要加引号和大括号**/
     lr_output_message("%s",tmp);/**外部变量,直接写变量即可**/
        lr_save_string(lr_eval_string(tmp),"values");/*转化为外部就不用加双引号,内部就要加双引号*/
        lr_output_message("flight_name=%s",lr_eval_string("{values}"));/**内部字符串变量,所以要加引号和大括号**/

     /**提示一行语句少分号";",可能是上一行少;***/
     return 0;

  • 性能测试三种类型

    2008-10-30 12:37:27

    (一)          性能测试

    ―――模拟真实环境,检查各项输出数据能否满足预计的结果。

    ******

    1、  安全、稳定、可扩展都是以牺牲性能为代价的。如果有这些方面,就要考虑他们对性能的影响。

    2、  如安全性,一个机器down了,就要考虑如何移至另外一台机器。性能就要受影响。采用哪种技术?测试人员能要善于挖掘问题。

     

    (二)          负载测试(持久性或耐久性测试)

    -――模拟真实环境,长时间运行(如35天),以发现系统潜在问题。

    *******

    分析可能的常见问题1)服务器缓存问题(2)压力机能力(3)测试机资源问题(4)网络问题

    1、  问题:刚开始运行场景时,响应时间有波动且较大,到一定执行时间后,相应时间区域稳定。  原因:服务器缓存。 解决办法:创建更多的模拟数据,避免同样的数据由于服务器缓存而变短。

    2、  A为测试机(controller);BC为压力机;D为应用服务器;E为网络服务器

    A调度压力机BC,使得其模拟客户端操作向服务器D发送请求,采集响应时间信息返回到压力机BCBC再返回响应时间信息到A  服务器资源信息则直接由A通过windows自带的资源管理工具直接采集。  

      压力机调度程序请求是占用资源的,因此可能会压力过大无法调度程序。

    3、  测试机要采集资源指标,资源指标过多会占用测试机的资源。解决办法(1)可以设置每隔几分钟监控一次(tools>option )。  2)精选指标;(3)把采集的数据放到网络硬盘(tools>option

    4、  网络问题。时间长可能会产生网络的阻塞,找网管测试网络。

    (三)          压力测试

    ――通过确定一个系统的瓶颈或者不可接受性能点,来获得系统能力提供的最大服务级别的测试。

    Ø         问题:新来一台数据库服务器,DBA让你进行测试,问什么情况下数据库不可接受。

    解决办法:1、模拟公司实际使用;2、问对方,什么状态不可接受,不可接受的点是什么。

     

         ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

    国外性能测试组织TPC,原来有C模型,现在逐渐被M模型取代。

    ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

  • 重新开张

    2008-10-30 09:33:04

    不知道为什么原来的用户名密码老是说我错误。

    只能重新开张了。也好,重新开始!以后多多写1

    希望这个不会再进不去。

我的存档

数据统计

  • 访问量: 2178
  • 日志数: 4
  • 建立时间: 2008-10-30
  • 更新时间: 2008-10-31

RSS订阅

Open Toolbar