日历

« 2008-10-12  
   1234
567891011
12131415161718
19202122232425
262728293031 

最新来客

统计信息

  • 访问量: 925
  • 日志数: 13
  • 建立时间: 2007-05-07
  • 更新时间: 2007-07-11

RSS订阅

我的最新日志

  • 运用childobjects获取桌面上的顶级对象!实现关闭特定browser的方法.

    2007-7-11

    Desktop对象允许访问桌面上的顶级对象.运用childobjects方法可以返回此对象中的所有对象列表:以下代码实现了,从桌面顶级对象中查找title=Mercury Tours的browser,然后将该browser的图像抓取出来存到特定的文件夹下.

    Set des=Descrīption.Create()
    set dobj=Desktop.ChildObjects(des)
    For i=0 to dobj.count-1
        If dobj(i).getroproperty("title")="Mercury Tours" then
                  dobj(i).captureBitmap "c:\result\"&i&".bmp",true
                   dobj(i).close
       End If
    Next

    '当用captureBitmap时,如果采用决对路径,如上例中,必须确保C盘中存在名为result的文件夹,抓图才能成功,QTP的capturebitmap方法不能实现自动创建文件夹的功能;如果只写出文件名,那么该抓图将显示在QTP运行时的result文件夹中.

  • 如何减少 QuickTest 使用的磁盘空间?

    2007-7-10

  • 如何减少 QuickTest 使用的磁盘空间?

可以通过执行下列任一操作减少 QuickTest 使用的磁盘空间:

    • 确定希望何时为测试结果捕获并保存应用程序图像。在“选项”对话框中的“运行”选项卡上,从“将步骤屏幕捕获内容保存到结果中”框中选择一个选项。可以通过保存屏幕捕获内容(仅在某些情况下),或根本不保存图像来减少磁盘空间和缩短测试运行时间。有关“选项”对话框中的“Active Screen”选项卡的详细信息,请参阅设置 Active Screen 选项
    • 确定是否需要在 Active Screen 中捕获和保存信息,以及捕获和保存多少信息。捕获的信息越多,越容易使用多种 Active Screen 选项向测试中添加步骤,但是更多的捕获信息还会导致录制速度变慢、编辑时间变长。可以从下列 Active Screen 选项中选择以提高性能:
      • 如果正在测试 Windows Applications,可以选择在每一步保存所有的 Active Screen 信息、只在某些步骤保存信息或完全禁用 Active Screen 捕获。可以在“选项”对话框中的“Active Screen”选项卡上设置该首选项。有关详细信息,请参阅设置 Active Screen 选项
      • 如果正在测试 Web 应用程序,则可以禁用 Active Screen 中所有步骤的屏幕捕获。在“Active Screen”选项卡上,单击“自定义级别”打开“自定义 Active Screen 捕获设置”对话框。选择“禁止 Active Screen 捕获”选项。这将缩短录制时间。有关“选项”对话框中的“Active Screen”选项卡的详细信息,请参阅设置 Active Screen 选项
      • 当保存一个新测试,或使用“另存为”用新名保存测试时,可以通过清除“保存”或“另存为”对话框中的“保存 Active Screen 文件”选项,选择不在测试中保存捕获的 Active Screen 文件。如果已经完成了测试设计并且计划将测试只用于测试运行时,该操作尤其有用。没有 Active Screen 文件的测试使用的磁盘空间明显更少。
      • 提示:保存无 Active Screen 文件的测试后,如果需要恢复 Active Screen 文件,请重新录制必要的步骤或使用“更新运行”选项为测试中的所有步骤重新捕获屏幕。有关详细信息,请参阅更新测试或组件

  • 在用VBScript编程时,何是使用括号?

    2007-7-10

    初学QTP的时候一直有一个疑惑不知道什么时候该加括号.什么时候不该加,今天看到这方面的东西,帖出来和大家分享!

    使用 VBscrīpt 编程时,遵循是否应在语句中使用括号 () 的规则是非常重要的。

    如果正在调用返回值的方法并且使用该返回值,则必须在方法参数两旁使用括号。例如,如果正在将值返回给变量、在 If 语句中使用方法或者使用 Call 关键字调用操作时,则应在方法参数两旁使用括号。如果要检索返回值,则还需要在检查点名称两旁添加括号。

    提示: 如果在测试中运行步骤时收到“语句应该结束”错误消息,则表示可能需要在步骤方法的参数两旁加上括号。

    以下几个示例显示何时使用或不使用括号。

    以下示例要求在方法参数两旁加上括号,因为该方法向变量返回值。

    Set WebEditObj = Browser("Mercury Tours").Page("Method of Payment").WebTable("FirstName").ChildItem (8, 2, "WebEdit", 0)

    WebEditObj.Set "Example"

    以下示例要求在方法参数两旁加上括号,因为正在使用 Call

    Call RunAction("BookFlight", oneIteration)

    以下示例要求在方法参数两旁加上括号,因为该方法用于 If 语句中。

    If Browser("index").Page("index").Link("All kind of").WaitProperty("attribute/readyState", "complete", 4) Then Browser("index").Page("index").Link("All kind of").Click

    以下示例要求在方法参数两旁加上括号,因为该方法返回检查点的值。

    a = Browser("MyBrowser").Page("MyPage").Check (checkPoint("MyProperty"))

    以下示例不要求在 Click 方法参数两旁加上括号,因为该方法不返回值。

    Browser("Mercury Tours").Page("Method of Payment").WebTable("FirstName").Click 3,4

  • 关于同步点waitproperty!

    2007-7-06

    在用QTP的过程中,常常因为某个控件刷新时间过长,我们会人为的加上wait()方法.该方法虽然可以起到我们想要的作用(让QTP)等待我们所需要的控件出现再往下继续执行,但缺点是.时间比较困定.往往wait里的时间参数,是我们根据经验估计出来的,即使该控件在我规定的时间内已经程现出来,QTP还是会等到wait中的时间到达后,才往下继续执行,浪费了很多时间.这个时候就会想到用waitproperty 方法.waitproperty的语法格式如下:

    Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").WebElement("Flight Confirmation #").WaitProperty "visible", true, 10000

    在规定的时间段(10秒)内,QTP会不停的检测WebElement的visible属性是否为true.如果在10秒内QTP检测到visible==true那么,将立即往下执行,在这种情况下就比我们用wait指定一个固定的时间段效率要高的多.需要注意的是:如果在规定的时间(10秒)内未能检测到所需结果,该语句将返回一个false,但并不影响程序继续执行.

  • 测试服务器IP地址变更!

    2007-7-06

    由于各种原因,项目中经常出现测试服务器IP地址变更的情况,导致以前的检查点均无法通过.解决方法如下:

    首先在Test-->Record and Run Settings...-->在Address里输入新的URL,然后在Test-->Update Run...-->Update Options-->勾选Update test object descrīptions.

  • 内存不能读写问题的解决方案

    2007-7-06

    转载:

    问题

        运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。

      “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。

      “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。

      一般出现这个现象有两方面的原因,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。

      故障分析

      硬件方面:

      一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。

      假如是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,就要检查是不是内存出问题了或者和其它硬件不兼容。

      软件方面:

      先简单说说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在其一位置时,因为没有足够空间,就会发生溢出现象。举个例子:一个桶子只能装一斤的水,当放入两斤的水进入时,就会溢出来。而系统则是在屏幕上表现出来。这个问题,经常出现在windows2000和XP系统上,Windows 2000/XP对硬件的要求是很苛刻的,一旦遇到资源死锁、溢出或者类似Windows 98里的非法操作,系统为保持稳定,就会出现上述情况。另外也可能是硬件设备之间的兼容性不好造成的。

      几个典型故障例子及解决办法

      例一:打开IE浏览器或者没过几分钟就会出现"0x70dcf39f"指令引用的"0x00000000"内存。该内存不能为“read”。要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。

      解决方法:修复或升级IE浏览器,同时打上补丁。看过其中一个修复方法是,Win2000自升级,也就是Win2000升级到Win2000,其实这种方法也就是把系统还原到系统初始的状态下。比如你的IE升级到了6.0,自升级后,会被IE5.0代替。

      例二:在windows xp下双击光盘里面的“AutoRun.exe”文件,显示“0x77f745cc”指令引用的“0x00000078”内存。该内存不能为“written”,要终止程序,请单击“确定”,而在Windows 98里运行却正常。

      解决方法:这可能是系统的兼容性问题,WinXP的系统,右键“AutoRun.exe”文件,属性,兼容性,把“用兼容模式运行这个程序”项选择上,并选择“Windows 98/Me”。win2000如果打了SP的补丁后,只要开始,运行,输入:regsvr32 c:\winnt\apppatch\slayerui.dll。右键,属性,也会出现兼容性的选项

       例三:RealOne Gold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现“0xffffffff”指令引用的“0xffffffff”内存。该内存不能为“read” 的提示。

      解决方法:当使用的输入法为微软拼音输入法2003,并且隐藏语言栏时(不隐藏时没问题)关闭RealOne就会出现这个问题,因此在关闭RealOne之前可以显示语言栏或者将任意其他输入法作为当前输入法来解决这个问题。

      例四:我的豪杰超级解霸自从上网后就不能播放了,每次都提示“Ox060692f6”(每次变化)指令引用的“Oxff000011”内存不能为“read”,终止程序请按确定。

      解决方法:试试重装豪杰超级解霸,如果重装后还会,到官方网站下载相应版本的补丁试试。还不行,只好换就用别的播放器试试了。

      例五:双击一个游戏的快捷方式,“Ox77f5cdO”指令引用“Oxffffffff”内存,该内存不能为“read” ,并且提示Client.dat程序错误。

      解决方法:重装显卡的最新驱动程序,然后下载并且安装DirectX9.0。

      例六:一个朋友发信息过来,我的电脑便出现了错误信息:“0*772b548f”指令引用的“0*00303033”内存,该内存不能为“written”,然后QQ自动下线,而再打开QQ,发现了他发过来的十几条的信息。

      解决方法:这是对方利用QQ的BUG,发送特殊的代码,做QQ出错,只要打上补丁或升级到最新版本,就没事了。

      例七:我的笔记本电脑用的XP系统,有时关闭网页时会弹出tbrowser.exe遇到问题需要关闭,然后有弹出0x03e7c738指令引用的0x03e7c738内存,该内存不能为read,请问是怎么回事?

      解决方法:先查杀一下病毒,另外如果你安装了浏览增强之类的软件,请卸掉。

       例八:从桌面或开始菜单中打开任何一个程序, 出现错误提示:"0x........"指令引用的"0x00000000"内存,该内存不能为"read"。省略号代表可变值。而从运行中打开程序没问题。

      解决方法:运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,应该只有一个正常的键值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除(默认键值当然不要删除)。这一条很常见。

      例九:我三个月前配了台机子。系统比较不稳定,三个月内已经重装过多次系统,四五天前刚装过系统,可是经常随机地出现Explorer-应用程序错误,“0x4a01259d“指令引用的“0x00000000"内存。该内存不能为“read"。要终止程序,请单击“确定“。要调试程序,请单击“取消”。如果点确定,windows桌面就不见了。这种问题在之前的系统也出现过,不知道是不是硬件的问题?

      解决方法:内存的兼容性问题!遇到这类问题,用户可以自行打开机器把内存的位置调动一下,看问题是否可以解决,如果问题依旧,可与你的朋友调换内存使用。

      通过上面的几个例子,可以看到,出现故障的原因有好多种,下面列出已经提到和有可能发生的原因,方便查阅。

    问题产生原因

    解决方法

    内存条坏了

    更换内存条

    双内存不兼容

    使用同品牌的内存或只用一条内存

    内存质量问题

    更换内存条

    散热问题

    加强机箱内部的散热

    内存和主板没插好或和其它硬件不兼容等

    重插内存或换个插糟

    硬盘有问题

    更换硬盘

    驱动问题

    重装驱动。如果是新系统,要先安装主板驱动

    软件损坏

    重装软件

    软件有BUG

    打补丁或用最新的版本

    软件和系统不兼容

    给软件打上补丁或者试试系统的兼容模式

    软件和软件之间有冲突

    如果最近安装了什么新软件,卸载了试试

    软件要使用到其它相关的软件有问题

    重装相关软件。比如播放某一格式的文件时出错,可能是这个文件的解码器有问题

    病毒问题

    杀毒

    杀毒软件与系统或软件冲突

    由于杀毒软件是进入底层监控系统的,可能与一些软件冲突,卸载了试试

    系统本身有问题

    有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序,像SP的补丁,最好要打上。如果还不行重装系统或更换其它版本的系统了

     

  • 内存问题!

    2007-7-06

    转贴:内存问题主要有三种类型:内存泄露、内存碎片和内存崩溃。 1) 内存泄漏主要由于不断分配的内存无法及时被释放,久而久之,系统的内存耗尽。内存泄露问题一般隐藏很深,很难通过代码阅读来发现。有些内存泄露甚至可能出现在库中,可能是库中的bug,也可能是程序员对接口说明文档的错误理解。 2) 内存碎片比内存泄露隐藏还要深。随着内存的不断分配并释放,大块内存不断分解为小块内存,从而形成碎片,久而久之,当需要申请大块内存时,有可能就会失败。如果系统内存够大,那么坚持的时间会长一些,但最终还是逃不出分配失败的厄运。在使用动态分配的系统中,内存碎片经常发生。目前,解决这个问题最效的方法就是使用工具通过显示系统中内存的使用情况来发现谁是导致内存碎片的罪魁祸首,然后改进相应的部分。 3) 内存崩溃是内存使用最严重的结果,主要原因有数组访问越界、写已经释放的内存、指针计算错误、访问堆栈地址越界等等。这种内存崩溃造成系统故障是随机的,而且很难查找,目前提供用于排查的工具也很少。常见的内存不能读写等问题有软件故障,也有可能是硬件故障。
  • 直接从excel中读取数据.

    2007-7-05

    Set xlApp= CreateObject("Excel.Application")
    Set wkBook= xlApp.Workbooks.Open("C:\test.xls")
    Set wkSheet= wkBook.Worksheets("Sheet1")
    Parameter1=CStr(wkSheet.Cells(1, 1))
    Parameter2= CStr(wkSheet.Cells(1, 2))
    msgbox Parameter1
    msgbox  Parameter2
    msgbox CStr(wkSheet.Cells(2, 1))
    msgbox  CStr(wkSheet.Cells(2, 2))
  • 验证码.

    2007-7-05

    录制邮箱的注册流程时,需读出随机的附加码。自动化测试过程中遇到这个问题,应该和开发人员交流,了解随机的附加码的产生原理后在自动化脚本中可以随机控制。

    猜测:
    随机附加码功能为每次当用户注册的时候,程序中产生一个随机值,调用存储在服务器上的图片(附加码的图片),在前台显示出来。

    根据和开发人员了解到的:
    知道原理后,测试人员和开发人员交流有哪些图片在服务器上,只要知道图片都有哪些,就可以做到如下工作
    这里是某个网站的登陆需要添加附加码的网页源文件

    验证码:<!--验证码表单-->
    <input type="text" name="codestr" maxlength="4" size="4"> <img src="xxx.xxx">
    看到上边<img src=“调用的图片”>,你只要每次读取这个img src的值就可以,你可以根据和开发人员了解的图片顺序,写个函数--图片索引函数,通过读取的值你就知道那个图片对应的那个附加码

    然后直接处理就可以了,各个程序有自己的实现算法,需要你自己去寻找答案!

  • 通过日期控件录入日期的问题

    2007-7-05

    转载:通过日期控件选择日期,很多情况无法录入所选择的日期,导致回放失败,可以用下面的方法处理

    先把显示日期的文本框添加到对象库,假设是WebEdit类型的文本框sdate,对象整体路径:browser().page()...WebEdit("sdate")可做如下操作
    sd = browser().page()...WebEdit("sdate").object
    sd.value = "2007-01-03" 
    也可直接赋值 browser().page()...WebEdit("sdate").object.value = "2007-01-03",输入正确日期格式的日期,再回放时就能正确显示所设置的日期了

  • 我的主题

    Open Toolbar