在blog about QTP上,声明如下:
“所有软件应用程序和网站都是使用许多不同的组件或小单元(例如vb中的文本框控件,HTML中的输入标签,.net中的webbrowser contorl)开发的,可以称为对象。
某些属性可以在运行时更改。这些称为RO(运行时对象)属性。其中一些不能改变。它们被称为TO(测试对象)属性。“
这个解释是否正确?
答案 0 :(得分:2)
要了解测试对象和运行时对象之间的区别,它有助于在计算机外思考片刻。
想象一下,如果你愿意的话,你坐在你的办公桌前,你就会口渴。但你不能自己去休息室喝苏打水机。所以,相反,你抓住一个实习生,给他一些硬币,然后把他送到休息室给你喝一杯。
这个特殊的实习生是非常新的,所以你必须向实习生解释你希望他们一步一步做什么。
您的脚本非常简单:
1) go to "the break room".
2) go to "the machine"
2) insert coins into "the coin slot"
3) press "the Coke button".
4) bring the can back to you.
因此,在您的脚本中,您已经描述了一些内容。
"the break room" is the name of the room that contains the machine.
"the machine" is the name of the machine in the break room.
"the coin slot" is the name of a hole in the front of the machine.
"the Coke button" is the name of a button on the fronf of the machine.
现在,由于这个实习生很新,他问你“当我看到他们时,我怎么知道这些事情?”
所以,你必须将“休息室”描述为“这是走廊上最后一个带绿色门的房间。” 你还必须将“机器”描述为“它是红色的机器,右侧有很多按钮” 你还描述了“硬币槽”=“它是所有按钮上方的长矩形槽” 最后,你描述了“可乐按钮”=“这是一个带有可乐标志的大白按钮”。
实习生将所有这些描述记录在一张纸上。实习生现在有一张纸,上面写着你希望他到休息室时看到的东西的名字和描述。
所以,接下来实习生实际上走到休息室......
他找到了机器...... 他找到了硬币插槽并放入了硬币......他在控件中搜索带有可乐徽标的大白按钮,但他找不到一个。所以,他回到你身边。
“我无法找到”可乐按钮“,正如你所描述的那样,”他说。事实证明,最近更改了按钮,现在所有按钮都有黑色背景。你向实习生解释这一点,他改变了他的纸上的描述。你把他送回去再试一次。
所以,实习生走回休息室......
他找到了机器...... 他找到了硬币插槽并放入了硬币......(机器先前自动将它们吐出来,然后将它们取回)他在控件中搜索“带有可乐标志的大黑色按钮”,然后他找到并按下它。
机器分配焦炭。
所以,他回来把你的饮料送给你。
现在,使用上面的故事,可以更容易地解释测试对象和运行时对象之间的区别。
实习生是您的测试工具 - QTP。
测试对象只是测试工具应该查找的真实对象的描述,就像实习生必须在机器上搜索真实对象(或“东西”)一样。
您的实习生写下的纸上的事情列表就像一个对象存储库。每个描述都有名称和描述。该脚本具有名称,QTP查找这些名称并从OR获取描述。例如,您对实习生的指示可能如下所示:
Room("the break room").machine("the machine").slot("the coin slot").insert-coins-into
Room("the break room").machine("the machine").button("the Coke button").press
运行时对象是AUT中的实际对象,就像有一个真实的物理机器,一个真正的物理投币槽和一个真正的物理按钮来按下来获得一个可乐。在软件测试中,这些对象不是物理的,但它们是真实的。
您可以使用GetTOProperty以编程方式读取对象的描述。此外,您可以通过编辑对象存储库来更改对象的描述,也可以使用代码中的.SetTOProperty()以编程方式动态更改对象。它的作用是更改您要查找的对象的描述 - 例如,如果您将描述从Coke徽标更改为Sprite徽标,那么您的实习生将成功识别Sprite的按钮,并且您的脚本可以与其他任何内容一起使用改变,除了你最终你的实习生带给你一个雪碧而不是可乐。
虽然您可以更改说明,但您无法更改实际的实际对象,而实习生可以将可乐按钮从黑色更改为白色。然而 - 一旦你的实习生查找按钮 - 他可以通过按下按钮,查看按钮,摇晃它或闻它来与按钮进行交互。他只是无法将其改为别的东西。对象没有SetROproperty方法,但是你可以使用GetROProperty,这意味着一旦按钮的大小,颜色和标识被识别出来,你也可以让你的实习生告诉你它有多宽,或者是否有“股票“指示你可以要求实习生告诉你该灯是否亮起。
希望这完全回答了关于QTP中测试对象和实时对象之间差异的问题。
答案 1 :(得分:0)
某些属性可以在运行时更改
以上陈述不正确。
测试对象是录制期间存储的对象。
运行时对象是回放脚本时在AUT中显示的对象。