发布新日志

  • QTP中对识别为WebElement的对象进行输入操作的一种解决办法

    2009-09-25 17:06:24

    在QTP录制公告栏的时候,公告栏的“内容”无法被录制,“内容”被识别为webelement,在论坛上找到有战友对其描述为:

    webelement,winobject,swfobject....这些都可以简单理解成底层元素与对象。
    webelement它可以包括webedit,weblist,webbutton等等对象。简单的一个描述例子就是
    1,.webelement("html tag:=Input","index:=0")  可以看出,它可以代替webedit的。
    2,或者QTP某些没办法直接添加,或者SPY不出来的元素(web),例如一些特殊的节点,标签之类的,我们也可以使用webelement对它做操作,webelement("html tag:=div"),等等。

    现在我要对“内容”进行输入操作,而WebElement只有click方法,是没有输入的方法的。

    以下摘自某论坛文章:
        考虑了实际中确实需要具有这种输入的支持(比如利用js生成的输入框,比较常见的是HTML编辑器输入框),就着手去解决。找到了一种解决办法:利用WshShell对象的SendKey方法来实现。在网上找了个html代码编辑器的实例,实现具体代码如下:

    Option Explicit

    Dim oWin32

    Set oWin32 = CreateObject("wscrīpt.shell")

    oWin32.Run("http://www.ewebeditor.net/demo/")

    '由于html编辑器输入框没有找到稳定的属性用于识别,QTP录制时也没有录下对其操作,所以采用先将焦点移到其上一个对象,再按tab移动焦点到html编辑器上
    Browser("title:=.*eWebEditor").page("title:=.*eWebEditor").WebList("name:=select","index:=0").FireEvent "onfocus"
    '对IE窗口模拟键盘输入操作
     With oWin32
      .sendkeys "{TAB}"
      wait 2
      .sendkeys "abcefg"
     End With

        以上是我想到的一种实现方式,也是目前正在使用的方式。但只是一个不得已的解决方法——因为这种方式是很脆弱的,焦点变动,甚至一个Windows消息提示都可能使脚本失败。

    这个解决方法就是找到页面的一个对象,焦点定位到该对象上,然后模拟键盘输入"abcefg". 发现此方法焦点很容易变动。模仿以上程序的脚本如下,发现问题是sendkeys的内容老窜到newtitle中.


    Dim oWin32
    Set oWin32 = CreateObject("wscript.shell")
    oWin32.Run("http://daisy/common/siteAdmin/index.php?url=addNews")

    Browser("管理界面").Page("管理界面").WebEdit("newsTitle").FireEvent "onfocus"

     With oWin32
      .sendkeys "{TAB}"
      wait 2
      .sendkeys "sometimes making the notice in Scrabble isnt as importment as what you leave on rack"
     End With

    Browser("管理界面").Page("管理界面").WebEdit("newsTitle").Set DataTable("newsTitle", dtGlobalSheet)
    Browser("登录").Page("管理界面").WebButton("确定").Click

  • winrunner 检查点图片存放

    2007-10-30 10:45:33

    由于不知道obj_check_bitmap("dest ip_1", "Img2", 1)的图片保存路径,对于img的维护有困难。
    后来在51testing的讨论中,才知道保存在脚本的exp文件夹下。

    以下摘自51testing:
    如果一个脚本main调用脚本flight,同时要运行flight下的obj_check_bitmap。如果直接运行会有img找不到的情况,此类问题有三种解决方法:

    1.把flight下的img复制到main下
    2.在子脚本中插入验证点后,在主脚本用updata模式回放一遍,这时子脚本exp下的图片就自动复制到主脚本的exp下了
    3.在settings->general options->run下把“run in batch mode”勾选上,运行就可以通过。这样如果在主脚本中所调用的脚本有检查点等,都不会在当前主脚本下找,而去被调用的脚本中找。

  • ip欺骗

    2007-10-24 15:15:41

    摘自###人空间
    Loadrunner学习笔记之ip欺骗
    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

    我想进行ip欺骗,模拟多个客户端连接发送数据包到服务器,可是打开ip wizard发现错误提示:"the ip wizard does not support dhcp-enabled network cards.your network card is either dhcp-enabled or configured with invalid settings"

    原来公司用的是动态ip,ip wizard不能识别动态网段。


  • Winrunner破解

    2007-10-09 17:02:17

    安装winrunner7.6步骤:
    1.卸载旧版本的程序!
    2.运行Setup目录中的文件进行安装!
    Name:www.ttdown.com
    Company:www.ttdown.com
    Maintenance Number:0123-4567890124
    3.重新启动电脑!
    4.运行安装目录下WinRunner/arch/子目录下面的inst_key.exe程序!
    5.点击Next,然后输入下面的信息:
    First Name:www.ttdown.com
    Last Name:www.ttdown.com
    Company :www.ttdown.com
    Maintenance Number:FF2VLB3CX43FE7GRYIB3W96MVFUFK7UX5IM6DTS2WL4YR8JS4N27M6DWEM9
    6.再次点击Next,输入下面的license Code:
    license Code:SYFVDM44F9WA76YE4N67L4MHSBUIEAR6IYUZNGA9O6I736DBJPIZCVOCPOUIPACDY22
    7.恭喜你,你成功了!^_^
    不要忘了把自己机器的时间调到2005

    winrunner8.0的版本到第3步时,使用一个破解程序,就可以永久使用拉.51论坛上有:http://bbs.51testing.com/viewthread.php?tid=44313&extra=&page=1

    在论坛上看到有人写着:

    总是提示14天有效。后来发现在C:\Program Files\Common Files\Mercury Interactive有一个License Manager目录,里面有一个lservrc文件。这个文件就是MI工具的注册管理器,把里面的内容替换成下面的内容,就大功告成了:
    5SFDHYECAW7F8V8ULAEHCVYQSIRG93D29XAQ8KKM4FC#
    # Dynamically installed.
    FF2VLB3CX43FE7GRYIB3W96MVFUFK7UX5IM6DTS2WL4YR8JS4N27M6DWEM9
    # Dynamically installed.
    G8A9EF79GM5Z7C2V6IKBQZ64773ZBDCLMWETBCRHBG57634GFVY9K#
    # Dynamically installed.
    NRDDL7SPI9LDT5PUG8E4MHVA2933VROPSPBIEZ95JLHMH48OC7P8UEFJXNLRGG8W274AHT
    # Dynamically installed.

  • TestDirector移植

    2007-10-09 14:46:16

     

    Acess数据库的TD移植:

    1.在B机子上安装TD

    2.在B机子上把TD的项目名称改成和A一致

    3.把A上的数据库拷到B相应的目录下

    4.重新建立用户

     

    TD安装注意:

    licence: B343P-44B44-43444-6444S  (无任何限制)

    安装说明:

    操作平台可以为xp,win2003,win2000,得安装相应的sp2;进入安装的需为computer的管理员账号。

    在安装TD前,先安装IIS,和Acess/sql/orcal/...数据库(安装过程中会有选择)

    安装前把防火墙和杀毒软件禁掉,有些软件也可能导致安装冲突,所以最好先安装TD.

    安装过程中是都为默认选项。

    TD安装完后打sp2补丁后才能使用。

Open Toolbar