发布新日志

  • 关于QTP的标准检查点和active screen

    2008-09-01 17:23:27

    我们都知道,QTP是将它的对象存储到对象仓库(Object Repository)中的,一个被操作到的对象和它的父对象,一定能够在对象仓库中找到它,否则脚本将不能运行,如下图是QTP9.2种的对象仓库的对话框,我们就以winedit对象Agent Name为例来说明本文要阐述的知识点:

    不会上图,算了,不用图说话了。

    对象是放在对象仓库中的,而且对象仓库中保存了对象一部分属性的值,就是那些用于查找对象的描述属性的值是保存到对象仓库里的,但是对象仓库中并不保存所有属性的值,所以在我们添加对象仓库中对象的描述属性时,会看到新添加的属性是没有值的,需要我们自己指定.

    我们不能通过界面的方式一下子察看到测试中所有的检查点,只能在脚本的关键字视图中看一下,而在测试目录下,也找不到检查点信息对应的存放文件,那么,检查点信息放在哪里呢?我们知道,一个对象可以设多个标准检查点,比如OK按钮,可以在一个测试中针对它设定多个检查点,比如设定第一个检查点的enabled属性的预期结果值为true,第二个检查点的enabled属性的预期结果值为false.但是在对象仓库中,对象的属性值只有一个,所以检查点的预期值跟对象仓库的属性值肯定不是同一个。

    但是,检查点的信息的确是和对象仓库中的信息存放在一个文件里面的,这点你试验一下,修改检查点的信息前,将数据仓库文件拷贝到其他目录,然后修改检查点以后再将这个文件拷回来,你会发现检查点信息还是原来的。

    对象仓库中并不保存所有属性的值,这个我们在对象仓库对话框中就可以看得出来,但是每次我们在右下角的active screen中添加某个对象的检查点时,我们可以看到系统能够自动获取默认的属性值,那么这个值又是从哪里来的呢?这个我们要从qtp的标准检查点原理说起:

    qtp的标准检查点是和active screen息息相关的,如果要添加一个对象的检查点,这个对象必须是在active screen中的,也就是在测试目录下的snapshops的中的,仔细看一下这个目录下的html文件,你会恍然大悟,原来这里面保存了每个对象的属性信息和属性值(当然是捕捉时的值),这下你就明白为什么在对象仓库中看不到属性值,而添加检查点时系统能够自动获取属性值了吧!

     

     

  • 关于点到点和端到端

    2008-08-29 09:31:42

    端到端(end-to-end)和点到点(point-to-point)是描述网络传输中对等实体之间关系的两个概念。

    端到端系统:

    初始信源机上的某实体与最终信宿机的对等实体直接通信,彼此之间就像拥有一条直接线路,而不管传输要经过多少IMP。如基于TCP/IP的SMTP协议。

    点到点系统:

    对等实体之间的通信由一段一段的直接相连的机器间的通信组成,机器间的连接叫点到点连接。如基于OSI的MHS。

    端到端的优点:

    1、源端和宿端建立连接之后,一但数据从源端出发,一定能到达宿端。

    2、不需要中间的存储转发,效率高,延迟少

    3、端到端的高层软件不需要存储转发功能,设计和实现相对简单。

    端到端的缺点:

    1、源机要参与整个传输过程,直到最后连接拆除,浪费时间。而点到点则不同,源机只要把数据发出去就不用管了。

    2、如果宿机没有开机或暂时故障,则端到端的传输就不可能进行。而点到点的传输却可以利用中间环节的存储转发进行缓冲。

    需要指出的是,上面的讨论是基于同样背景(比如同样是应用层程序)进行的。在不同背景下,端到端和点到点不是相互对立的,一般来说,上层的端到端是依靠下层的点到点来实现的,比如TCP/IP,IP及以下各层都是点到点的,而IP以上各层都是端到端的。

     

  • 网络服务的六种类型

    2008-08-28 17:03:15

    在理解六种服务类型之前,首先理解一些基本概念:

    计算机网络协议层次结构中,层和层之间是完全单向依赖的,下层是服务提供者,上层是服务调用者。下层向上层的服务分为:面向连接的服务和无连接的服务。

    面向连接的服务:

    每一次完整的数据传输都必须经过建立连接、使用连接、终止连接三个过程。数据传输时,各数据分组不携带信宿地址,而使用连接号。本质上相当于一个管道,发送者从一端放入数据,接受者在另一端接受输入,数据不但顺序一致而且内容相同。

    无连接服务:

    每个分组携带完整的信宿地址,各分组在系统中独立传送。不能保证分组的先后顺序,也不保证分组一定被传到或者被正确收到,即不保证传输的可靠性。

    在计算机网络中,可靠性一般通过确认和重传(acknowledge and retransmission)机制实现。多数面向连接的服务都支持确认和重传,但确认和重传会导致额外的延迟。大多数无连接服务不支持确认重传,但有些可靠性要求高的系统支持确认和重传机制,如电子邮件中的挂号信等。

    报文流(message stream):要保持报文边界,发方发出了多少报文,收方收到多少相同的报文。

    字节流(tyte stream):不保持报文边界,发方发出多少报文,收方不知道也不关心,收方收到的是一个字节序列。

    无连接服务通常称为数据报服务,有时仅把不可靠(即无确认)的无连接服务称为数据报。

    六种服务类型:

    1、可靠的报文流:面向连接的,如文件传输

    2、不可靠的字节流:面向连接的,如远程登录

    3、不可靠连接:面向连接的,如数字话音

    4、不可靠的数据报:无连接的,如电子邮件

    5、有确认的数据报:无连接的,如挂号信

    6、请求-应答:五连接的,如网络数据库查询

     

     

  • 在qtp中引用外部dll的方法

    2008-08-28 13:12:01

    Extern Object 用于调用外部DLL中的过程,与之相关的方法是Declare Method,这个方法的作用是声明外部DLL中的过程(或方法),以便让qtp脚本中使用。语法如下:

    Extern.Declare(RetType, MethodName, LibName, Alias [, ArgType(s)])

    如下的例子使用 Extern.Declare Extern.<declared method> 方法改变“记事本”窗口的标题

    声明FindWindow方法

    Extern.Declare micHwnd, "FindWindow", "user32.dll", "FindWindowA", micString, micString

    声明SetWindowText方法

    Extern.Declare micLong, "SetWindowText", "user32.dll", "SetWindowTextA", micHwnd, micString

    获得记事本窗口的句柄

    hwnd = Extern.FindWindow("Notepad", "未定标题 - 记事本")

    if hwnd = 0 then

    MsgBox "Notepad window not found"

    else

    MsgBox hwnd

    end if

    改变记事本窗口的标题为“kuku”

    res = Extern.SetWindowText(hwnd, "kuku")

    注意:这个实验很多人不成功是由于记事本窗口没有打开,或者脚本中记事本窗口的标题写的不对(看着像可不行)。

  • QTP关于text值变化导致无法识别Link对象的解决办法

    2008-08-28 10:52:26

    QTP录制时自动将Link对象的描述属性设为:text和html tag,而在实际应用中,链接的text属性值是经常变化的,这样脚本回放的时候就会经常发生找不到对象的错误.针对这个问题,有几个解决方案:

    1.修改对象仓库中对性的描述属性:

    去掉text,添加url,这样既能够保证能按照链接找到页面,而且text属性的变化也不影响对象的识别.

    2.采用描述性编程

  • 外部工具如何调用QTP完成测试

    2008-08-27 11:43:09

    Dim qtApp
    Dim qtTest
    Dim qtResultsOpt

    Set qtApp = CreateObject("QuickTest.Application")
    qtApp.Launch
    qtApp.Visible = True
    qtApp.Open "D:\Test2", True

    Set qtTest = qtApp.Test
    qtTest.Settings.Run.OnError = "NextStep"
    Set qtResultsOpt = CreateObject("QuickTest.RunResultsOptions")
    qtResultsOpt.ResultsLocation = "D:\Test2\"
    qtTest.Run
    qtApp.quit
     
    Set qtResultsOpt = Nothing
    Set qtTest = Nothing
    Set qtApp = Nothing

  • 数据交换方式

    2008-08-26 16:50:07

    数据交换方式分为线路交换和存储转发,线路交换和存储转发的关键区别在于:前者静态分配线路,后者动态分配线路。存储转发又分为报文交换和分组交换,分组交换又分为虚电路和数据报两种方式。接下来就分别介绍上述概念:

    线路交换:

    交换(switch)的概念最早来源于电话系统。当用户发出电话呼叫时,电话系统中的交换机在呼叫者和接收者之间寻找并建立一条客观存在的物理通路。一旦通路被建立起来,便能够建立通话,线路是由发送和接收端专享的,直到通话的结束。这种数据交换的方式称为线路交换(circuit switching)。

    优点:

    • 传输延迟小,唯一的延迟是电磁信号的传播时间;
    • 一旦线路接通,便不会发生冲突

    缺点:

    • 建立线路所需时间长
    • 线路独享造成信道浪费

    报文交换:

    不事先建立线路,当发送方有数据块要发时,把数据块作为一个整体(也叫报文,message)交给交换设备(IMP),交换设备选择一条合适的空闲输出线,将数据块通过该输出线发送出去。这个过程中,交换设备的输入和输出线之间不建立物理连接,在每个交换设备处,报文首先被保存起来,在适当的时候被转发出去。

    缺点:对传输数据块大小不限制,报文较大时,IMP需要用硬盘进行缓存。单个大报文占用线路时间过长。

    分组交换:

    分组交换技术严格限制数据块大小的上限,使分组可以在IMP的内存中存放,保证任何用户都不能独占线路超过几十毫秒,适合交互式通信。

    优点:吞吐率高,在具有多个分组的报文中,第二个分组尚未接到之前,第一个分组就可以继续往前传送,减少了延迟,提高了吞吐率。

    缺点:存在拥塞,报文分片与重组,分组损失和失序等。

    分组交换是绝大多数计算机采用的技术,也有极少数计算机采用报文交换,但绝不采用线路交换。

    根据内部机制的不同,分组交换子网分为两类,一类采用面向连接(connected oriented),一类采用无连接(connectless),在有连接子网中,连接成为虚电路(virtual circuit),类似电话系统中的物理线路;无连接子网中的独立分组称为数据报(datagram),类似邮政系统中的电报。

     

     

     

  • 2008年8月26日,注册了帐号,开通了空间,纪念

    2008-08-26 14:57:23

    欢迎大家来到我的空间,交流软件测试的经验和问题!

我的栏目

数据统计

  • 访问量: 5826
  • 日志数: 8
  • 建立时间: 2008-08-26
  • 更新时间: 2008-09-02

RSS订阅

Open Toolbar