在测试中寻找乐趣,在乐趣中寻求进步

发布新日志

  • LR随机删除预定机票

    2014-07-28 23:54:04

  • LR删除预定机票

    2014-07-28 23:51:45

  • 一步步教你:QTP连接oracle数据库

    2010-03-17 16:18:43

     

     

    1. 安装oracle

    2. 创建odbc数据源。细节参考其他的总结文章

    3. 以文本编辑器打开.udl文件,里面有一串连接数据库的字符串,拿这个字符串,并且在这个字符串里增加Password以分号隔开。比如:udl文件里的字符串为:

    Provider=MSDASQL.1;Persist Security Info=False;User ID=emall;Data Source=sfodbc

    此时增加密码后为:

    Provider=MSDASQL.1;Persist Security Info=False;User ID=emall;Password=emall;Data Source=sfodbc

    4. 此时打开qtp,直接复制以下代码运行:

     

    -----------------------------------

        Dim StrCon

           Dim Res,Cmd

         Set Res = CreateObject("ADODB.Recordset") 

         Set Cmd = CreateObject("ADODB.Command")

         '以下为建立连接

         StrCon ="Provider=MSDASQL.1;Persist Security Info=False;User ID=emall;Password=emall;Data Source=sfodbc;"

         Cmd.activeconnection=StrCon

         Cmd.CommandType =1

         '以下为执行sql

            Cmd.CommandText="select count(*) from ep_account "

         Set Res = Cmd.Execute()

     

     Do while not Res.eof

     

         Msgbox(Res(0))

     

         Res.MoveNext

     

     Loop

     

       '以下为关闭数据库连接

           Set Res=nothing

        Set Cmd.activeconnection=nothing

        Set Cmd=nothing

  • 用LoadRunner监控AIX(UNIX)

    2009-06-04 09:42:22

    首先,telnet以root用户的身份登录入系统,在命令行提示符下输入:

    rup localhost

     


    如果系统的输出类似

    # rup localhost

    localhost    up 10 days, 22:03,    load average: 0.00, 0.00, 0.02

    则可以直接监控;

    如果系统的输出类似

    [oracle@was2 oracle]$ rup localhost

    rup: RPC: Program not registered

    则需要手工启动服务。

     


    vi /etc/inetd.conf

    进入编辑文件页面后,输入:

    /rstatd

    (命令解释:在打开的文档中查找“rstatd”)接下来继续输入:

    x

    (命令解释:删除当前字符,在这里为删除rstatd命令前的“#”)继续输入:

    :wq

    (命令解释:保存并退出,注意前面有个冒号)

     


    接着在命令提示符下输入:

    refresh –s inetd

    (命令解释:重新启动服务)

    这样使用loadrunner就可以监视AIX系统的性能情况了。


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rital/archive/2008/10/08/3033089.aspx

  • aix性能监控

    2009-06-04 09:38:33

    aix的常用监视工具
    常用命令 软件包
    vmstat,iostat,sar bos.acct
    topas,svmon,filemon,fileplace bos.perf.tools
    vmtune,schedtune bos.adt.samples
    netstat bos.net.tcp.client

    vmstat报告CPU与内存信息
    如下例所示:
    kthr memory page faults cpu 
    ----- -------------- ------------------------- ------------ ----------- 
    r b avm fre re pi po fr sr cy in sy cs us sy id wa 
    2 11 1116402 0 0 19 24 583 1328 0 1514 10956 6379 17 4 45 34 
    0 35 1117232 0 0 15 75 1908 4207 0 2675 9350 18901 10 8 0 82 
    1 45 1118296 0 0 51 108 1873 3580 0 2298 8699 15324 9 8 0 83 
    0 22 1116890 0 0 78 19 830 1577 0 1836 8530 3891 7 6 0 87 
    13 29 1117030 0 0 5 26 1304 2737 0 1924 7619 9908 7 7 0 86 
    内核线程
    r表示内核中运行的线程数,如果其数超过系统的CPU个数,则说明等待进程越多
    b表示内核中等待的线程数,由于挂起或IO等待

    内存列
    pi列表示每秒钟从Paging Space置换到内存的页数。 
    po列表示每秒钟从内存置换到Paging Space的页数。 
    如果这两列持续大于5,则系统的性能瓶颈很可能是内存不足,而导致交换频繁。
    fr列表示每秒钟页面置换算法释放的页数。 
    sr列表示每秒钟页面置换算法检查的页数。 

    故障列
    in 设备中断次数
    sy 系统调用次数
    cs 内核线程上下文交换,即时间片用完后,再轮到时的上下文计算,如果太高,则要仔细观察

    内存信息
    avm与free两项分别表示了物理内存的活动页数与可用页数(每页4096bytes),其大小可用其值/256获得MB数。
    其中free数如果持续为0或很低则预示内存不足,此时可能会导致大量的页面交换,而在CPU中显示为wa很高,此值的多少也与vmtune中的-f -p设置有关

    CPU信息
    在以上信息中,关于CPU是的后四列:
    id高表示系统空闲,us、sy分别表示用户和系统进程CPU占用,wa表示IO等待时间
    如果us与sy之和持续超过90%时,CPU出现了瓶颈。
    如果wa长期很高>50,则表示IO太忙,具体看是应用IO多,还是交换分页多,如果是后者,则显示内存不足,
    如果是前者,则应关注应用的IO性能状况,优化应用与磁盘设备




    sar命令优势
    sar可以针对SMP系统来分别查看CPU使用情况
    sar -P ALL 3 2
    AIX testhost 1 5 0050C33A4C00 06/28/05

    17:30:02 cpu %usr %sys %wio %idle
    17:30:05 0 38 4 43 15
    1 32 3 49 16
    2 51 3 44 2
    3 53 3 42 2
    - 44 3 44 9
    17:30:08 0 35 1 46 18
    1 18 3 70 9
    2 24 2 60 14
    3 16 1 81 3
    - 23 2 64 11

    Average 0 36 2 45 16
    1 25 3 59 13
    2 38 3 52 8
    3 34 2 62 2
    - 33 3 54 10
    以上显示了一个单CPU系统的显示,

    sar也可以查看系统调用情况
    sar -c 3 2 
    AIX test 1 5 0050C33A4C00 06/28/05

    17:31:00 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s
    17:31:03 5738 484 439 0.00 0.00 952729 1073997
    17:31:06 3365 149 266 0.00 0.00 11620 930150

    Average 4553 317 352 0.00 0.00 482957 1002193

    svmon使用
    svmon可以查看内存的详细使用情况,含分页
    svmon -G  -i 5 2
                   size      inuse       free        pin    virtual
    memory      2097136    2096903        233     107570    1622941
    pg space    1507328    1400132

                   work       pers       clnt      lpage
    pin          107324        246          0          0
    in use      1236897     860006          0          0
                   size      inuse       free        pin    virtual
    memory      2097136    2096212        924     107570    1623787
    pg space    1507328    1400135

                   work       pers       clnt      lpage
    pin          107324        246          0          0
    in use      1237139     859073          0          0
    其中memory行显示了内存总量,使用量,钉入量和虚拟总量
    pg space行显示了分面空间的使用量
    pin行显示了正在用的钉入量,永久钉入量和客户量
    in use显示了总内存的工作页面量,永久页面量,客户端页面量
    如想将oracle进行lock_sga设置,可以查看PIN值来确认是否生效
    要使pin生效必需vmtune -S 1

    svmon -U oracle可以查看oracle用户的用量
    svmon -U oracle
    ===============================================================================
    User                                 Inuse      Pin     Pgsp  Virtual  LPageCap
    oracle                             1897660     3007  1210399  1459736         N
    计算出其大小为         7412M 11M 4728M  5702M
    ...............................................................................
    SYSTEM segments                      Inuse      Pin     Pgsp  Virtual
                                          3236     2089     1935     4889
                                          13M      8M        8M     
    ...............................................................................
    EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                       1893883      918  1208317  1453304
                                          7398      4M
    SHARED segments                      Inuse      Pin     Pgsp  Virtual
                                           541        0      147     1543
                                           2M
    在以上表中SYSTEM是所有系统共用段,EXCLUSIVE是此用户专用段,SHARED段是共享段

    svmon -C oracletest
    可以统计oracletest命令的所有内存使用情况
    在其中也分为SYSTEM,EXCLUSIVE,SHARED三段,在其中将会发现SHARED段很大,那是因为其与其它oracle进程共用的结果
    在整个输出中,其类型分为
    work 表示进程和内存共享段的区域
    perm 表示文件,目录,日志,大文件等使用段,其代表了文件操作所用内存的值
    clie 表示NFS,CDROM等文件系统使用段

    svmon -P
    可以查看所有进程的内存使用情况,加上PID可以查看单个进程的内存使用情况
    能过此种方式,可以标识所用命令
    通过上述命令获得的命令名,再通过svmon -C来查看其专用内存段,进行对比,可以区分出不同命令所用内存多少,对oracle不同进程之间的分析有用

    磁盘IO
    iostat 可以查看时间段内的CPU状况和磁盘状况
    tty:      tin         tout   avg-cpu:  % user    % sys     % idle    % iowait
              0.0         55.3              11.6      2.0       20.4      66.0     

    Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
    hdisk0          24.9     153.0      38.3       1236       296
    hdisk1          31.3     193.8      48.7       1656       284
    dac0             0.0     2969.1     179.1      11564     18164
    hdisk2         100.0     2969.1     179.1      11564     18164
    cd0              0.0       0.0       0.0          0         0
    其中% tm_act是指活动时间,kbps是在统计时间内所有Kb_read与Kb_wrtn之和除以时间的值,即每秒传输的字节数
    如果% tm_act常过70%却只有很低的Kbps,系统可能是有比较多的LV碎片或文件碎片,当都高时则系统正常。
    tps表示每秒的IO数,不同的磁盘系统其可承受的IO数不同。

    sar -d 10 2也可以查看IO情况
    12:11:16     device    %busy    avque    r+w/s   blks/s   avwait   avserv

    12:11:26     hdisk0     34      1.0       50      201      0.0      0.0
                 hdisk1     41      0.0       64      259      0.0      0.0
                   dac0      0      0.0      331     4197      0.0      0.0
                 hdisk2     99      5.0      331     4197      0.0      0.0
                    cd0      0      0.0        0        0      0.0      0.0
    其中的%busy对应的% tm_act
    avque表示等待IO对列数,其值很高则预示着磁盘有较大瓶颈
    r+w/s对应tps,blks/s是按0.5Kbytes/s计算的传输速度
    sar -d 最大好处是可以对较长时间的值会有一个总体平均值


    vmtune使用
    /usr/samples/kernel/vmtune 会得出当前设置数据
    vmtune:  current values:
      -p       -P        -r          -R         -f       -F       -N        -W
    minperm  maxperm  minpgahead maxpgahead  minfree  maxfree  pd_npages maxrandwrt
     400921  1603684       2          8        120      128      65536        0

      -M      -w      -k      -c        -b         -B           -u        -l    -d
    maxpin npswarn npskill numclust numfsbufs hd_pbuf_cnt lvm_bufcnt lrubucket defps
    1677709   47104   11776       1     186        224          9      131072     1

            -s              -n         -S         -L          -g           -h
    sync_release_ilock  nokilluid  v_pinshm  lgpg_regions  lgpg_size  strict_maxperm
            0               0           0           0            0        0

        -t           -j              -J               -z
    maxclient  j2_nPagesPer j2_maxRandomWrite  j2_nRandomCluster
    1603684           32            0                  0

        -Z                  -q                    -Q                -y
    j2_nBufferPer  j2_minPageReadAhead  j2_maxPageReadAhead   memory_affinity
          512              2                    8                 0

        -V                  -i
    num_spec_dataseg  spec_dataseg_int
          0                512

    PTA balance threshold percentage = 50.0%

    number of valid memory pages = 2097136  maxperm=80.0% of real memory
    maximum pinable=80.0% of real memory    minperm=20.0% of real memory
    number of file memory pages = 847042    numperm=42.2% of real memory
    number of compressed memory pages = 0   compressed=0.0% of real memory
    number of client memory pages = 0       numclient=0.0% of real memory
    # of remote pgs sched-pageout = 0       maxclient=80.0% of real memory

    其中的minfree限制了当系统的分页数少于此值时就要交换出此页数,并在达到maxfree时停止
    其中maxfree必须>minfree+maxpgahead
    ./vmtune -F maxfree_pages -f minfree_pages 用于进行以上设置

    minperm,maxperm对文件分页的控制
    MINPERM与MAXPERM的意义
    当内存中的文件缓存页在MINPERM以下时,内存页交换算法同时交换文件缓存页和程序页(computational pages) 
    当内存中的文件缓存页在MAXPERM以上时,内存页交换算法只交换文件缓存页。 
    当内存中的文件缓存页在MINPERM和MAXPERM之间时,内存页交换算法通常只交换文件缓存页,但如果文件缓存页的交换率大于程序页时,程序页也同样被交换。 
    MINPERM和MAXPERM参数的缺省值为20%与80%
    即vmtune -p 20 -P 80
    可以用以下命令将MINPERM设为5%的内存页,而MAXPERM设为20%的内存页。
    # vmtune -p 5 -P 20
    在vmtune的输出中,有一个numperm的值,其对我们调整很有参考意义

    在Oracle数据库应用的环境下,可以将MINPERM和MAXPERM分别设为5%和20%甚至更小,从而使内存更多地被用于Oracle的SGA而不是系统的文件缓存。
    但此时也要考虑系统的dbrw量的多少,用lock_sga方法可以更好的控制sga的是否交换(在lock_sga前,应该先vmtune -S 1 启用pinshm以支持应用的内存pin)
  • QTP测试脚本的对象仓库

    2008-08-05 15:33:07

    使用QTP录制一些脚本再回放,这不难,难的是一个测试团队共同开发脚本,并能不断的完善脚本,创建一个结构化的自动测试脚本体系。这篇文章重点讨论的是,如何管理QTP的对象仓库,以便能让对象仓库易于维护、管理。
     
    如果只是简单的录制、回放脚本,可能感觉不到对象仓库的存在。但是要做到QTP脚本的结构化管理,就必须对QTP的对象仓库进行严格的管理。
     
    在实际工作中我们发现,QTP脚本做好后绝不是一成不变的,而是随着需求和页面的变化,需要不断修改的。如果每次修改脚本的时候,都重新录制脚本,成本极高,所以最有效的方法是,先修改对象仓库,然后修改脚本,以适应新的系统。
     
    如果对象仓库里的管理比较混乱的话,修改脚本时就会遭受地狱般的痛苦,比如n多对象全堆在一起根本理不出头绪,对象的命名不知所云,找不到自己需要的对象等等。下面我们讲一下如何管理对象仓库,避免这些问题。
     
    先介绍一下对象仓库中的对象层次,主要分为3个层次
    1、Browser浏览器
    2、Page页面
    3、页面中的各种对象,比如Link、Button
     
    Browser对应的是已经打开的IE窗口对象,Page对应的是不同的网页,比如登录首页是一个Page,登录成功后跳转到我的淘宝页面,这就是另一个Page。而页面中的各种对象就比较好理解了,图片、按钮、链接都是对象。
     
    了解了对象层次,我们再讲一下命名。如果QTP在录制过程中自动记录对象,命名是非常乱的,缺乏逻辑性,经常看到一个Browser下面有n多“淘宝网_1”、“淘宝网_2”这样的Page,这对我们以后的管理非常不利。与其修改这些命名,我们不如用一种思路更清晰的方式,手动添加对象。
     
    QTP中有一个工具实现了对象仓库的管理,Object Repository Manager,我们用它来添加对象。操作很简单,直接点击toolbar中的Add Object按钮,然后在web上点击你需要添加的对象即可,添加过后再修改名称。更新对象也比较简单,先选中需要更新的对象,然后点击Update from Application即可。
     
     
    这项工作其实可以在系统页面出来以后就开始做,我们一边进行手工测试,一边把对象添加起来,为后面的脚本开发做准备。这时暂时不制作脚本。
     
    总结一下,对象仓库的管理要满足以下几个原则:
    1、每个Browser下的Page不要太多,最好不要超过5个,即使我们的系统都在同一个IE窗口下(没有弹出新IE),我们也可以分几个Browser管理,把业务上关联较强的几个Page放在一个Browser下;
    2、每个对象都按照所代表的业务属性命名,最好用中文,不要出现一些难理解的字符,比如abc这样的。
    3、尽量避免在一个tsr文件中堆放过多的对象,最好根据业务,把对象分为几个tsr文件保存。这里没有统一标准,以每个tsr文件结构清晰为宜。
     
    现在我们完成了对象仓库的整理,好,可以开始制作脚本了。可是问题来了,录制脚本的时候,QTP能不能自动和这些对象对应上呢?QTP会不会又自动添加一堆对象进来呢?别担心,不会出现这个问题,因为我们将进行一场脚本编写的革命:放弃“录制脚本”这种传统的脚本编写方法,完全手工编写脚本。
    以上内容源于网络
  • LoadRunner测试Oracle10g常见问题(5)

    2007-12-03 12:15:43

    11月29日(星期四)

    性能监视相关。

    问题9:压力机资源监视
    Monitor name :Windows Resources. Cannot connect to machine lr071129.Reason: 找不到网络路径。


    解决:
    在弹出的Add Machine窗口,name项输入IP地址,正确选择Platform。

    问题10:UNIX资源监视问题
    Monitor name :UNIX Resources. Cannot initialize the monitoring on 10.152.**.**. Error while creating the RPC client. Ensure that the machine can be connected and that it runs the rstat daemon (use rpcinfo utility for this verification). Detailed error: RPC: Failed to create RPC client.
    RPC-TCP: Failed to establish RPC server address.
    RPC-TCP: RPC Server <100001, 3, 17> is not registered on host '10.152.11.26'. (entry point: CFactory::Initialize). [MsgId: MMSG-47190]


    解决:
    [root@oratest ~]# cd /etc/rc.d/init.d
    [root@oratest init.d]# ll | grep rstatd*
    -rwxr-xr-x 1 root root 1009 May 4 2005 rstatd
    [root@oratest init.d]# ./rstatd start
    Starting rstat services: [ OK ]
    [root@oratest init.d]#

Open Toolbar