2012-07-16 13 views
1

在一個blog about QTP,以下陳述:QTP中的測試對象和運行時對象有什麼區別?給出的解釋是否正確?

「所有的軟件應用程序和網站越來越使用許多不同的組件或小單位(例如,在VB文本框控件,在HTML input標籤,網頁瀏覽器contorl在.NET開發)可以稱爲對象

某些屬性可以在運行時更改,這些屬性稱爲RO(運行時對象)屬性,其中一些屬性不能更改,它們被稱爲TO(測試對象)屬性「。

這個解釋是否正確?

+2

此解釋不正確。 請參閱我的回答[我自己的問題在這裏](http://stackoverflow.com/questions/8699160/what-is-the-difference-between-ro-properties-and-to-properties-in- qtp) – Motti 2012-07-17 08:36:55

+0

非常感謝Motti的澄清。 :) – NidhiPrasad 2012-07-18 14:00:15

回答

0

一些屬性可以在運行時

上面的說法是不正確的改變。

測試對象是在錄製過程中存儲的對象。

運行時對象是播放腳本時顯示在AUT中的對象。

+0

實際上,上面的語句是正確的 - 可以在運行時更改屬性。 ROproperties,但是,不能。 – 2016-06-06 13:37:08

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以編程方式讀取對象的描述。另外,您可以通過編輯Object Repository來更改對象的描述,也可以使用代碼中的.SetTOProperty()以編程方式更改動態。這樣做會改變你尋找的對象的描述 - 例如,如果你將描述從一個可口標誌改變爲一個Sprite標誌,那麼你的實習生將成功識別出Sprite的按鈕,並且你的腳本可以與其他任何人一起工作變化,除非你最終會讓你的實習生爲你帶來一個雪碧,而不是可樂。

雖然您可以更改說明,但不能更改實際的實物,而不是實習生可以將可樂按鈕從黑色更改爲白色。然而 - 一旦你的實習生找到按鈕 - 他可以通過按下按鈕,看着它,搖動它或聞它,與按鈕交互。他不能將它改變成別的東西。對象沒有SetROproperty方法,但是你可以使用GetROProperty,這意味着一旦按鈕被它的大小,顏色和標識所識別,你也可以讓你的實習生告訴你它有多寬,或者它有一個「out of股票「指標,您可以要求實習生告訴您指示燈是否亮起。

希望這可以完全回答您關於QTP中測試對象和實時對象之間差異的問題。

相關問題