QTP9.2和UFT11.5文件比較

在文檔開始,先說明一下爲什麼要寫這篇文檔。
因爲我之前一直使用QTP9.2進行測試,但是需要測試的系統中,有一個是基於IE的程序,而且界面的按鈕都是使用圖片做出來的,因此使用QTP9.2不能識別其窗體對象【當然,可以通過模式識別,描述性編程等技術進行識別】。
然後,發現了UFT11.50這個QTP的更新版本,試用後發現效果不錯,可以測試該程序,但是我之前寫的測試其他程序的腳本在UFT上無法使用,因此我就希望能夠使用什麼辦法把原來的腳本升級到UFT可用的版本。
上網查詢之後,由9.2到11.5是無法直接升級的,只能先升級至10.0然後在升級至11.50,爲了避免麻煩,我就把QTP9.2測試腳本下的(除了Action目錄)*.usr、default.cfg、default.usp、default.xls、lock.lck、test.tsp、Parameters.mtr七個文件使用UFT11.50測試腳本下的同名文件進行替換,然後使用UFT打開該測試腳本,發現能夠正確運行。
由以上測試,我猜想,QTP9.2升級至UFT11.50,雖然版本升級,但是Action目錄下的文件並沒有改變,那麼就可以斷定,升級信息記錄在這七個文件之中。
接下來,就是判斷,到底是哪個文件記錄QTP的升級信息了。因此,我嘗試每次僅替換這七個文件中的某一個,結果發現,僅替換test.tsp之後,即可在UFT11.50上使用QTP9.2下的腳本了。
然後我試着使用寫字板打開這七個文件,發現*.usr、default.cfg、default.usp、default.xls這四個文件可以打開,但是lock.lck、test.tsp、Parameters.mtr這三個文件無法使用寫字板打開,然後我就使用二進制查看器查看並比較這三個文件希望能夠找出一些有用的信息。
一、首先,大局改變,UFT提供解決方案管理功能,可以在一個解決方案內創建或加入多個測試,方便管理。如下圖所示,分別爲QTP9.2測試文件以及UFT11.5的解決方案文件及測試文件目錄展示。
UFT11.5解決方案文件
spacer.gif
UFT11.5腳本文件
spacer.gif
QTP9.2腳本文件
spacer.gif
二、比較UFT11.5的腳本文件,和QTP9.2的腳本文件目錄,可知,二者文件名稱及數量一致。初步猜測,雖然腳本升級,但是測試文件並沒有大的改變。
三、下面我們使用記事本或者寫字板打開各個文件,比較其內部內容。
3.1 在打開測試腳本文件之前,我們先打開UFT11.5的解決方案,查看一下解決方案的內容。
==================================LiboPubmanager.ftsln===================================================
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.1.1.0
Project("") = "AddNormalUser", "AddNormalUser\Test.tsp", "642F75A9-E190-4AB8-9822-20C8EB502FCF"
ProjectSection(ProjectMetadata) = HP.UFT.ProjectSystem.Dynamic.ProjectMetadata
 PathInformation = D:\QTP11.5\ZhongHua\AddNormalUser\Test.tsp
 Keyword = QTP
 OpenAsReadOnly = False
EndProjectSection
EndProject
Project("") = "TestReader", "TestReader\Test.tsp", "0219DD0F-78F6-474D-ADD4-383626065867"
ProjectSection(ProjectMetadata) = HP.UFT.ProjectSystem.Dynamic.ProjectMetadata
 PathInformation = D:\QTP11.5\ZhongHua\TestReader\Test.tsp
 Keyword = QTP
 OpenAsReadOnly = False
EndProjectSection
EndProject
//此處省略多個project("")........EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
 Debug|Any CPU = Debug|Any CPU
 Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
 642F75A9-E190-4AB8-9822-20C8EB502FCF.Debug|Any CPU.Build.0 = Debug|Any CPU
 642F75A9-E190-4AB8-9822-20C8EB502FCF.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 642F75A9-E190-4AB8-9822-20C8EB502FCF.Release|Any CPU.Build.0 = Release|Any CPU
 642F75A9-E190-4AB8-9822-20C8EB502FCF.Release|Any CPU.ActiveCfg = Release|Any CPU
 0219DD0F-78F6-474D-ADD4-383626065867.Debug|Any CPU.Build.0 = Debug|Any CPU
 0219DD0F-78F6-474D-ADD4-383626065867.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 0219DD0F-78F6-474D-ADD4-383626065867.Release|Any CPU.Build.0 = Release|Any CPU
 0219DD0F-78F6-474D-ADD4-383626065867.Release|Any CPU.ActiveCfg = Release|Any CPU
 BD984B54-2B8E-4C1C-AF2C-14821E4988B4.Debug|Any CPU.Build.0 = Debug|Any CPU
 BD984B54-2B8E-4C1C-AF2C-14821E4988B4.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 BD984B54-2B8E-4C1C-AF2C-14821E4988B4.Release|Any CPU.Build.0 = Release|Any CPU
 BD984B54-2B8E-4C1C-AF2C-14821E4988B4.Release|Any CPU.ActiveCfg = Release|Any CPU
 1C7143A9-E09F-4A81-967F-AC421B12D101.Debug|Any CPU.Build.0 = Debug|Any CPU
 1C7143A9-E09F-4A81-967F-AC421B12D101.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 1C7143A9-E09F-4A81-967F-AC421B12D101.Release|Any CPU.Build.0 = Release|Any CPU
 1C7143A9-E09F-4A81-967F-AC421B12D101.Release|Any CPU.ActiveCfg = Release|Any CPU
 B6DD4F41-C39F-4077-AB55-0ED549DFFD68.Debug|Any CPU.Build.0 = Debug|Any CPU
 B6DD4F41-C39F-4077-AB55-0ED549DFFD68.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 B6DD4F41-C39F-4077-AB55-0ED549DFFD68.Release|Any CPU.Build.0 = Release|Any CPU
 B6DD4F41-C39F-4077-AB55-0ED549DFFD68.Release|Any CPU.ActiveCfg = Release|Any CPU
 9A9F4D75-5749-4551-B7FE-C82EF0503DE1.Debug|Any CPU.Build.0 = Debug|Any CPU
 9A9F4D75-5749-4551-B7FE-C82EF0503DE1.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 9A9F4D75-5749-4551-B7FE-C82EF0503DE1.Release|Any CPU.Build.0 = Release|Any CPU
 9A9F4D75-5749-4551-B7FE-C82EF0503DE1.Release|Any CPU.ActiveCfg = Release|Any CPU
 FE17AC29-6A91-4861-9256-47AC3A772196.Debug|Any CPU.Build.0 = Debug|Any CPU
 FE17AC29-6A91-4861-9256-47AC3A772196.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 FE17AC29-6A91-4861-9256-47AC3A772196.Release|Any CPU.Build.0 = Release|Any CPU
 FE17AC29-6A91-4861-9256-47AC3A772196.Release|Any CPU.ActiveCfg = Release|Any CPU
 C839B41F-0839-4A1F-98B8-1E2FEC3864ED.Debug|Any CPU.Build.0 = Debug|Any CPU
 C839B41F-0839-4A1F-98B8-1E2FEC3864ED.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 C839B41F-0839-4A1F-98B8-1E2FEC3864ED.Release|Any CPU.Build.0 = Release|Any CPU
 C839B41F-0839-4A1F-98B8-1E2FEC3864ED.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal
===================================================================================================
通過分析UFT11.5使用的解決方案,我們發現,其實UFT11.5解決方案是基於Microsoft Visual Studio 11.00版本生成的。如果你會使用vs開發程序,那麼這就好理解了。此處不多做解釋。
接下來,我們看一下Global裏的內容。我們發現,此處是對解決方案(SolutionConfigurationPlatforms )和(ProjectConfigurationPlatforms)的debug及release版的CPU進行設定。
不同的是,多projec的CPU設定是每四個一組,分別針對Debug的Build和ActiveCfg以及Release的Build和ActiveCfg進行設定。
此處僅做了解,不需要弄清楚每一項是什麼意思。
3.2下面我們來比較一下腳本文件目錄下各個文件的內容。
此處僅列出存在差異的地方:
=========================使用寫字板打開**.usr文件=====================================
-------------------------------------------------UFT11.5---------------------------------------------
[TulipInfo]
ProductName=HP Unified Functional Testing
Version=11.50
[TulipAddins]
ActiveX=
Database=
File Content=
Insight=
Windows Applications=
TEA=
Web=
XML=
-------------------------------------------------QTP9.2---------------------------------------------
[TulipInfo]
ProductName=QuickTest Professional
Version=9.2
[TulipAddins]
ActiveX=
Database=
Windows Applications=
TEA=
XML=
==========================================================================
=========================使用寫字板打開default.cfg文件=====================================
-------------------------------------------------UFT11.5---------------------------------------------
[RtsUserInfo]
UserName=
Password=52b40ed8e
-------------------------------------------------QTP9.2---------------------------------------------
[RtsUserInfo]
UserName=
Password=516f9103e
==========================================================================
=========================使用寫字板打開default.usp文件=====================================
無差異。
-------------------------------------------------UFT11.5---------------------------------------------
-------------------------------------------------QTP9.2---------------------------------------------
==========================================================================
=========================使用寫字板打開default.xls文件=====================================
只有在允許測試時纔有數據,否則爲一個空Excel表格。記錄程序運行時的DataTable獲取的數據。
即QTP的GlobalTable。
-------------------------------------------------UFT11.5---------------------------------------------
-------------------------------------------------QTP9.2---------------------------------------------
==========================================================================
=========================使用寫字板打開lock.lck文件=====================================
-------------------------------------------------UFT11.5---------------------------------------------
-------------------------------------------------QTP9.2---------------------------------------------
==========================================================================
=========================使用寫字板打開parameters.mtr文件=====================================
-------------------------------------------------UFT11.5---------------------------------------------
-------------------------------------------------QTP9.2---------------------------------------------
==========================================================================
=========================使用寫字板打開test.tsp文件=====================================
-------------------------------------------------UFT11.5---------------------------------------------
-------------------------------------------------QTP9.2---------------------------------------------
==========================================================================
因爲 lock.lck、parameters.mtr、test.tsp 無法使用記事本打開,所以無法查看異同,那麼怎樣測試到底是哪個文件限制了版本呢?
我試着使用UFT11.5生產的測試腳本中的test.tsp文件替換掉了QTP9.2生產的測試腳本中的test.tsp文件,然後發現,竟然能夠正確的把QTP9.2的腳本文件加入到UFT11.2的解決方案中了。
接下來,我們所需要確認的就是,該文件能否被正常使用。
四、介紹各個文件的作用
*.usr刪除之後,並不影響腳本使用,不知道該文件適合用途。
default.xls刪除之後,並不影響腳本使用。可能是如果腳本中用到了DataTable,該文件纔會有作用的吧。
lock.lck文件如果缺失,則在啓動UFT時,會自動在生產一個lock.lck文件。
parameters.mtr文件如果缺失,則不會影響測試的正常允許,但是還不清楚該文件具體做什麼用。
一句話,除了test.tsp之外的六個文件,全部刪除或者部分刪除之後,都不影響測試腳本的使用。
test.tsp文件,類似於測試文件的引導文件,通過該文件把測試腳本的各個文件組織起來。使用二進制文件查看器,把兩個版本的文件進行比較,能夠發現裏面記錄了以下不同內容。
但不確定其他內容是否也有區別,因爲在二進制查看器(Binary Viewer或者UltraEdit)裏僅顯示出了這些信息。
=========================使用二進制查看器打開test.tsp文件=====================================
-------------------------------------------------UFT11.5---------------------------------------------
<IsReusable><![CDATA[0]]></IsReusable>
<Iteratable><![CDATA[0]]></Iteratable>
<ToolName><![CDATA[Unified Functional Testing]]></ToolName>
<ToolVersion><![CDATA[11.50]]></ToolVersion>
<CreatedByToolName><![CDATA[Unified Functional Testing]]></CreatedByToolName>
<CreatedByToolVersion><![CDATA[11.50]]></CreatedByToolVersion>
<SyncPoints></SyncPoints>
<FuncLibs></FuncLibs>
<RecoveryScenarios></RecoveryScenarios>
<DataTable ORDER_ID="0"><![CDATA[]]></DataTable>
<SubComponents>
<Component>Action0</Component>
<Component>Action1</Component
><Component>Action2</Component>
<Component>default.cfg</Component>
<Component>ZHReader1.usr</Component>
<Dependency Scope="0" Type="1" Kind="16" Logical="Action0" ORDER_ID="0">Action0\Resource.mtr</Dependency>
<Dependency Scope="0" Type="1" Kind="16" Logical="StartServer" ORDER_ID="0">Action1\Resource.mtr</Dependency>
<Dependency Scope="0" Type="1" Kind="16" Logical="Search" ORDER_ID="0">Action2\Resource.mtr</Dependency>
<Dependency Scope="0" Type="2" Kind="32" Logical="" ORDER_ID="0">default.cfg</Dependency>
<Dependency Scope="0" Type="2" Kind="32" Logical="" ORDER_ID="0">ZHReader1.usr</Dependency>
<Dependency Scope="0" Type="2" Kind="32" Logical="" ORDER_ID="0">default.cfg</Dependency>
<Dependency Scope="0" Type="2" Kind="32" Logical="" ORDER_ID="0">ZHReader1.usr</Dependency>
<Dependency Scope="0" Type="2" Kind="32" Logical="" ORDER_ID="0">default.cfg</Dependency>
<Dependency Scope="0" Type="2" Kind="32" Logical="" ORDER_ID="0">ZHReader1.usr</Dependency>
<Dependency Scope="0" Type="2" Kind="4" Logical="" ORDER_ID="0">Default.xls</Dependency>
<Dependency Scope="0" Type="2" Kind="16" Logical="" ORDER_ID="0">Test.tsp</Dependency>
<Dependency Scope="0" Type="2" Kind="4" Logical="" ORDER_ID="0">Parameters.mtr</Dependency>
<Dependency Scope="0" Type="2" Kind="32" Logical="" ORDER_ID="0">default.cfg</Dependency>
<Dependency Scope="0" Type="2" Kind="32" Logical="" ORDER_ID="0">Test1.usr</Dependency>
</SubComponents>
<Component_Gen_Prop></Component_Gen_Prop>
</Component_Root>
-------------------------------------------------QTP9.2---------------------------------------------
==========================================================================


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章