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---------------------------------------------
==========================================================================


你可能感兴趣的:(图片,程序,qtp,模式识别,版本升级,UFT11.5)