lr学习

上一篇 / 下一篇  2008-11-06 15:16:54 / 个人分类:loadrunner

  • 使用LoadRunner监控Linux方法(转)http://www.51testing.com/?172470/action_spacelist_type_blog_itemtypeid_7937.html

    2008-11-03 10:39:55

    一、安装

    LoadRunner监控Linux安装成功,所以共享出来,备忘. 需要下载3个包,到网上google一个吧:

    (1)rsh-0.17-14.i386.rpm

    (2)rsh-server-0.17-14.i386.rpm

    (3)rpc.rstatd-4.0.1.tar.gz

    1.安装rsh,和rsh-server两个服务包。

    a. 卸载rsh

    rpm –q rsh----------查看版本号

    rpm -e 版本号---------卸载该版本。

    b.安装

    rpm –ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm

    这两个包在我的目录下有共享。

    2.下载并安装rstatd

    gunzip rpc.rstatd-4.0.1.tar.gz

    Tar –cvf rpc.rstatd-4.0.1.tar.

    ./configure ---配置

    make ---编译

    make install ---安装

    rpc.rstatd ---启动rstatd进程

    3. 打开/etc/xinetd.conf

    里面内容是:

    # Simple configuration file for xinetd

    # Some defaults, and include /etc/xinetd.d/

    defaults

    {

    instances = 60

    log_type = SYSLOG authpriv

    log_on_success = HOST PID

    log_on_failure = HOST

    cps = 25 30

    }

    includedir /etc/xinetd.d

    4.重启xinetd:

    A: service xinetd reload

    B: /sbin/service xinetd rstart

    5.修改/etc/xinetd.d/下的三个conf文件 rlogin ,rsh,rexec 这三个配置文件

    打这三个文件,将里面的disable = yes都改成 disable = no (disabled用在默认的{}中禁止服务)

    或是把# default: off都设置成 on ,并把“#”去掉,这个的意思就是在xinetd启动的时候默认都启动上面的三个服务!

    二、验证PRC安装运行成功

    检查是否启动: rsh server 监听的TCP 是514。
      [root@mg04 root]# netstat -an |grep 514
       tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
       如果能看到514在监听说明rsh服务器已经启动。

    # rpcinfo –p 127.0.0.1若有性能数据返回,具体参见如下步骤

     

    未启动rpc前,通过rpcinfo得到的数据为,一个端口号为111的protmapper的服务

    [root@EMS root]# rpcinfo -p 127.0.0.1

      program vers proto  port

       100000   2  tcp   111 portmapper

       100000   2  udp   111 portmapper

       100024   1  udp 32768 status

    100024   1  tcp 32768 status

     

    以上说明portmapper启动了,但rstatd进程还没起来。

     

    如果portmap未启动,会报如下错误:

    Cannot register service: RPC: Unable to receive; errno = Connection refused

     

    启动portmap:

     

    #/etc/rc.d/init.d/portmap start   //启动portmap

     

    [root@EMS root]# whereis rpc.rstatd

    rpc: /usr/src/patch-o-matic-ng-20040302/rpc /sbin/rpc.lockd /sbin/rpc.statd /usr/sbin/rpc.rquotad /usr/sbin/rpc.yppasswdd /usr/sbin/rpc.mountd /usr/sbin/rpc.nfsd /usr/sbin/rpc.ypxfrd /etc/rpc/usr/local/sbin/rpc.rstatd/usr/include/rpc /usr/share/man/man3/rpc.3.gz /usr/share/man/man5/rpc.5.gz

     

      whereis rpc.rstatd命令是用来找rpc.rstatd这个执行文件的路径。

     

    [root@EMS root]# /usr/sbin/rpc

    rpc.mountd    rpc.nfsd      rpc.rquotad   rpc.yppasswdd rpc.ypxfrd    rpcinfo     

     

    通过/usr/sbin/rpc敲入制表符,则系统会提示其路径下是些什么文件. (作用类似于ls)

     

    [root@EMS root]# /usr/sbin/rpc.rquotad

    [root@EMS root]# /usr/lo        

    local      lost+found 

    [root@EMS root]# /usr/local/sbin/rpc.rstatd

     

    运行rpc.rstatd命令

     

    [root@EMS root]# rpcinfo -p 127.0.0.1

      program vers proto  port

       100000   2  tcp   111 portmapper

       100000   2  udp   111 portmapper

       100024   1  udp 32768 status

       100024   1  tcp 32768 status

       100011   1  udp   688 rquotad

       100011   2  udp   688 rquotad

       100011   1  tcp   691 rquotad

       100011   2  tcp   691 rquotad

       100001   5  udp   699 rstatd

       100001   3  udp   699 rstatd

       100001   2  udp   699 rstatd

    100001   1  udp   699 rstatd

     

     

    此时检查到rstatd已运行。

  • Loadrunner IP欺骗(转)

    2008-10-29 19:10:20

    使用loadrunner进行IP欺骗首先要注意以下两点:

    1、 本地的IP设置不能为“自动获取”,必须指定一个静态IP

    如果本地是动态获取IP,在运行IP Wizard时会弹出提示:

    The IP wizard does not support DHCP-enabled network cards.

    Your cards are either DHCP-enabled or configured with invalid settings.

    Please contact your system administrator.

    此时只需要将IP地址改成静态IP地址就可以了

    2、 所添加的IP只能是局域网内的网段

    只能添加192段,127段,10IP地址

    好下面开始介绍如何使用IP欺骗

    一、添加IP地址

    第一步:

    运行Mercury LoadRunner- Tools-IP Wizard

    弹出的IP设置向导中的各项含义如下:

    1、 create new setting  新建IP列表

    当我们第一次使用IP欺骗或已经释放所添加的IP时,需要选择此项添加新的IP地址

    2、 load previous setting from file  读取IP列表文件

    从以前设置的IP地址列表文件中读取IP地址

    3、 restore original setting  释放已设置的IP

    释放已经添加的IP地址

    说明:loadrunner在做IP欺骗时,真实的虚拟了IP地址,该IP地址均真实存在,可以ping通,可以建立网络链接,在不使用时必须进行释放,否则这些IP地址将一直存在。

     

    第二步:

    选择create new setting,点击“下一步”

    此时出现的页面是让输入服务器的IP地址,loadrunner通过该地址更新路由表。

    客户端计算机上添加新的IP地址后,服务器需要将该地址添加到路由表,以便能够识别返回到客户端的路由。如果服务器和客户端具有相同的子网掩码、IP类和网络,则不需要修改服务器的路由表。

    注意:如果客户端和服务器计算机之间有一个路由器,则服务器需要识别经过该

    路由器的路径。确保将以下路由添加到服务器路由表:从Web服务器到路由器

    的路由,以及从路由器到负载生成器计算机上的所有IP地址的路由。

     

    第三步:

    在输入服务器地址的页面中不输入任何地址,直接点击“下一步”

    进入IP添加页面

    点击“add”进行添加

     

    第四步:

    from ip输入框中输入起始ip,在Number to输入框中输入ip地址的位数

    输入正确的子网掩码

    选中“verify that new ip addresses are not already used

    点击“ok”,此时IP Wizard会自动按照设置生成IP地址,并且将已经占用的IP列出

     

    第五步:

    确认可用IP地址列表内容后,点击“ok

    此时IP Wizard提示需要重新启动计算机,点击“save as”保存IP列表

    点击“ok”,重新启动计算机

     

    第六步:

    计算机重新启动后,在运行行中输入:CMD,在DOS命令窗口中输入:IPCONFIG,此时便可看到虚拟的IP地址均已经被启用

     

    二、在loadrunner中使用虚拟IP

    第一步:

    打开controller,在controller中,选择Scenario-Enable IP Spoofer,此项设置允许使用IP欺骗。

    第二步:

    设计场景:

    有两种方案来设计场景

    1、 本地使用虚拟IP设计场景(不带负载生成器使用localhost进行测试

    在设置该类场景时,在场景中添加一个录制好的脚本,该脚本中添加如下代码便可看到虚拟用户在使用哪个IP地址进行消息发送,该场景是通过线程方式进行性能测试

    char * ip

    ip=lr_get_vuser_ip();

    if (ip)

    {

       lr_vuser_status_message("The ip address is %s",ip);

    }

     else

    lr_vuser_status_message("IP spoofing disabled");

          controller中执行该脚本时,查看虚拟用户运行状态,便可看到当前虚拟用户使用的哪个IP地址发送消息

    2、 负载生成器使用虚拟IP设计场景

    在设置该类场景时,需要添加负载生成器,建立负载生成器时输入创建的虚拟IP,每个负载生成器为一个虚拟用户组,该场景是通过进程方式进行性能测试。

    如何添加负载生成器创建场景在这里就不多描述了。

    但需要注意,选中Tools下的Expert mode,启动专家模式

    再点击Tools下的options

    Genearl选项卡中设置已线程方式或进程方式进行性能测试,这个选项一定要与当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式

     

    三、使用虚拟IP测试完成后

    打开IP Wizard,释放所有虚拟IP

    重新启动计算机

  • Loadrunner学习笔记之ip欺骗(转)

    2008-10-29 19:02:35

    ip欺骗设置:
    1.在总控机上使用loadrunner->tools->ip wizard工具设置虚拟ip,其中server ip指要监控的服务器的ip,添加ip时选择A、B或C类ip,设置开始ip和要添加的虚拟ip的个数,并选中verify the new ip addresses are not already use,已检查添加的ip是否与局域网中的其它ip冲突
    2.重启机器
    3.在controller的scenario中勾选enable ip spoofer,启用虚拟ip
    3.在controller的tools中选中expert mode,在options->general中设置multiple ip address mode与run-time settings中的multithreading设置保持一致
    4.在load generators中选择localhost
    查看脚本执行过程中是否使用了设置的虚拟ip,可以如下设置:
    在脚本中添加代码:
    char *ip = lr_get_vuser_ip();
    if (ip)
    lr_output_message("The IP address is %s", ip);
    else
    lr_output_message("IP spoofing disabled");
    在脚本运行过程中查看controller的output,view->show output,选择all messages,查看输出的ip是否为设置的虚拟ip

  • 造成HTTP-500错误,可能存在的原因之个人实践总结(转)

    2008-10-27 15:12:26

    造成HTTP-500错误,可能存在的原因之个人实践总结

    1、运行的用户数过多,对服务器造成的压力过大,服务器无法响应,则报HTTP500错误。

    减小用户数或者场景持续时间,问题得到解决。

    2、该做关联的地方没有去做关联,则报HTTP500错误。进行手工或者自动关联,问题得到

    解决。

    3、录制时请求的页面、图片等,在回放的时候服务器找不到,则报HTTP500错误,若该页

    面无关紧要,则可以在脚本中注释掉,问题将会得到解决。例如:有验证码的情况下,尽

    管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不存在响应。

    4、参数化时的取值有问题,则报HTTP500错误。可将参数化列表中的数值,拿到实际应用

    系统中进行测试,可排除问题。

    5、更换了应用服务器(中间件的更换,如tomcat、websphere、jboss等),还是利用原

    先录制的脚本去运行,则很可能报HTTP500错误。因为各种应用服务器处理的机制不一样

    ,所录制的脚本也不一样,解决办法只有重新录制脚本。

    6、Windows xp2 与ISS组件不兼容,则有可能导致HTTP500错误。对ISS组件进行调整后问

    题解决。

    7、系统开发程序写的有问题,则报HTTP500错误。例如有些指针问题没有处理好的,有空

    指针情况的存在。修改程序后问题解决。


    8、如果测试中所进行的操作需要向数据库中插入数据,若大数据量的情况下导致数据库中表空间已满,或者缓冲池较小无法满足数据的存取等,都有可能导致HTTP500错误。调整数据库、修改连接池大小,问题解决。

  • lr_save_string 和 sprintf 的使用(转)

    2008-10-27 11:47:39

    一、lr_save_string 使用介绍
    1.该函数主要是将程序中的常量或变量保存为lr中的参数。
         intlr_save_string(const char *param_value, const char *param_name);

         函数目的:param_value值保存到param_name变量中

         参数介绍:param_value:要保存的值

                            param_name变量名称
    char *tmp="hello";
    lr_save_string("777","page");
    lr_output_message(lr_eval_string("{page}"));   

    //将变量保存为参数,tmp为变量
    lr_save_string(tmp,"page");

    lr_output_message(lr_eval_string("{page}"));


    结果:777

        hello
        

    二、sprintf函数

    定义函数
    int sprintf( char *str,const char * format,.........);
    函数说明
    sprintf()会根据参数format字符串来转换并格式化数据,然后将结果复制到参数str所指的字符串数组,直到出现字符串结束(’\0’)为止。关于参数format字符串的格式请参考printf()。
    返回值
    成功则返回参数str字符串长度,失败则返回-1,错误原因存于errno中。
    附加说明
    使用此函数得留意堆栈溢出,或改用snprintf()。
    范例
    #include<stdio.h>
    main()
    {
    cha

    TAG: loadrunner

     

    评分:0

    我来说两句