生成数据以驱动您的测试

相关项: GUI 测试和业务流程测试

测试数据组合生成器通过使用测试中的参数及其可能的值创建多个数据组合,帮助您准备测试配置数据。

默认情况下,必须自行提供此数据。根据您拥有的参数数量,此任务量可能成倍增长。使用测试数据组合生成器可为您完成该工作。

返回页首

开始使用测试数据组合生成器

根据使用的测试类型,执行以下操作之一:

默认情况下,如果您在添加参数时未保存测试,UFT One 会提示您保存测试。

在此消息提示中,选择“始终按选定方式执行操作”,使 UFT One 默认情况下始终保存您的测试。如果您选择此选项,UFT One 不会再显示此消息。

要根据需要更改此默认值并再次查看此提示,请单击 UFT One“选项”中的“恢复出厂默认设置”。有关更多详细信息,请参阅全局选项

返回页首

定义参数值

在测试数据组合生成器中,使用以下方法输入参数的可能值。然后,继续查看数据生成测试配置

如果您对以下任何操作改变了想法,请使用“撤消” /“恢复”: 编辑、删除值、粘贴、生成数据、添加成功路径、添加错误路径、重置成功路径、重置错误路径。

手动输入值

在“测试数据组合生成器”表中,单击单元格以根据需要输入参数值。

生成参数值

让测试数据组合生成器生成参数值。

  1. 在“测试数据组合生成器”向导的左侧,根据要输入的值的类型,选择参数名称和生成类型。

    • 某些类型的值将要求您选择其他选项。

      例如,对于“名字”或“全名”值类型,选择“英语”或“非英语”。

    • 要基于列表对象中的数据生成值,请选择“从 UI 中捕获”

      有关更多详细信息,请参阅从您的 UI 捕获列表值

  2. 拖动“数量”滑块以定义要生成的值的数量。

    测试数据组合生成器仅生成唯一项,不生成重复值。

    例如,如果您指示 UFT One 生成 20 个条目,但将可用值限制在 95 到 100 之间,则仅生成 6 个条目。

  3. 在左窗格底部,单击“生成”以使用生成的值填充表。

从您的 UI 捕获列表值

直接从应用程序中的列表对象捕获值。

以下技术中的列表对象支持“从 UI 中捕获”: Delphi、Java、Mobile、.NET、SAP、标准 Windows、Web 和 Windows Presentation Foundation。

执行以下操作:

  1. 在左侧,选择参数名称,然后选择“从 UI 中捕获”生成类型。

  2. 在“对象名”字段中,单击 以在应用程序中选择对象。在应用程序中选择包含要捕获的值的列表。

  3. 然后,在“对象名”字段下,选择以下选项之一:

    从捕获值的列表中选择

    从下面的“捕获的值列表”中选择要包含的特定值。
    从捕获的值中随机生成

    允许 UFT One 选择要包含在您的数据中的值。

  4. 定义要输入的条目数,然后单击“生成”以填充表中的值。

    注释: 将从您的值中裁剪掉前导和尾随空格。例如," London " 会被捕获为 "London"

观看演示:

导入值

从本地保存的 Excel 文件中或 ALM 中导入参数值。在测试数据组合生成器的右上方,单击“导入”

如果您在打开测试数据组合生成器后已向测试添加了参数和值,则仅针对 BPT 测试导入默认值。

在 GUI 测试中,Excel 文件中的参数名称必须与测试中的参数名称匹配。如果参数名称不完全匹配,则导入参数名称,但不导入值。在这种情况下,请手动添加参数值。

提示: 或者,如果您正在进行 GUI 测试,则选择一个数据表,如下所示:

  1. 选择“文件”>“设置”>“资源”,然后选择“其他位置”选项。
  2. 浏览到数据表以拉取参数值。

定义成功路径和错误路径值

填充参数值后,通过将每个值设置为成功路径或错误路径值来进一步定义数据。

不应在测试中导致错误或异常的值。

这些值以绿色突出显示。

应导致预期的错误或异常的值。

这些值以红色突出显示。

合并参数值

合并参数值以在生成数据时将它们组合起来。例如,您可能希望合并“名字”和“姓氏”值合并以创建一组名称排列。

在“参数值”选项卡的表中,使用 Ctrl 键选择要合并的列。然后,右键单击选定的列标题,并选择“合并”

这些列呈现为灰色并锁定在一起。

排除列

要从生成的配置中排除一整列数据,请在参数值表中将其排除。

右键单击要排除的列的标题,然后选择“排除”

如果排除列,则在生成配置时使用默认参数值。

有关更多详细信息,请参阅生成测试配置

返回页首

查看数据

在使用所有可能的值填充“测试数据组合生成器”表后,单击右下角的“查看组合”以显示所有可能的组合。

UFT One 显示参数值的所有可能组合,如下所示:

排列选项卡

列出所有可能的值组合。

从右上方的“算法”下拉列表中,选择以下选项之一以相应地更新值:

  • 线性。包括参数和值的所有可能组合。选择此算法可能会产生大量数据。

  • 配对组合。包括输入参数对的有效值的所有组合。

  • 三元组合。包括三元输入参数的有效值的所有组合。

配对组合和三元组合算法假定应用程序中的许多错误不是由单个参数引起的,而是由参数对或三元参数之间的交互引起的。

错误路径选项卡 列出使用错误路径值的所有可能的组合。

有关更多详细信息,请参阅定义成功路径和错误路径值

要生成配置文件,请继续生成测试配置

返回页首

生成测试配置

在测试数据组合生成器的“组合”窗格中,执行以下操作:

  1. 在“配置名称”字段中,为您的配置输入唯一的名称。

  2. 如果已将值定义为成功路径或错误路径值,并且想要从配置中排除这些数据类型中的一种或多种,请执行以下操作:

    1. 单击右上方的“筛选”

    2. 选择要创建的数据类型:

      成功路径

      选择此选项可创建包含所有成功路径值组合的配置文件。

      错误路径

      选择此选项可创建包含所有错误路径值组合的配置文件。

      常规路径

      选择此选项可使用除错误路径值之外的所有值组合来创建配置文件。

    注释: 默认情况下,不应用任何筛选。如果您已经定义成功路径和错误路径值并且未应用筛选,则将创建三个文件,每种数据类型创建一个。

  3. 单击右下方的“创建配置”

默认情况下,配置随测试一起保存在测试文件夹中。这样可以确保它可用于测试。

返回页首

将测试数据添加到 ALM 测试

如果您正在进行保存在 ALM 中的 GUI 测试,则测试配置不会自动保存在 ALM 中。

而是将您的配置手动上传到 ALM 测试资源模块,如下所示:

  1. 在 ALM 的“测试”模块中,选择“测试计划”

  2. 浏览并打开测试,或创建新的测试配置。单击“ID”链接以打开“测试配置详细信息”对话框。

  3. 在“测试配置详细信息”对话框中,选择左侧的“数据”,然后选择“覆盖测试数据资源”

  4. 从“数据资源”下拉列表中,选择您先前上传的数据表资源。

  5. UFT One 中,重新打开测试,然后将数据表设置为现在保存在 ALM 中的数据表资源。

    1. 打开“测试设置资源”窗格 (“文件”>“设置”>“资源”)。

    2. 在“数据表”区域中,选择“其他位置”,然后浏览并选择您的数据表。

数据源将添加到“资源”窗格的“数据表”区域。

有关更多详细信息,请参阅创建数据资源文件

返回页首

添加自定义数据生成器

如果 UFT One 默认生成的字典不符合您的需求,请为测试中的参数类型创建自定义数据生成器:

  1. 为数据生成器创建 .xml 文件。
  2. 在 XML 文件中,添加以下 XML:

    <Generators>
     <DataGenerator name="[CustomGeneratorName]" type="[GeneratorType]" title="[GeneratorTitle]" returnType="[GeneratorResultType]">
     ...
     </DataGenerator>
    </Generators>
    name 生成器类型的唯一名称。
    type

    生成器类型。可能值:

    • HP.UFT.TCG.DataGeneration.Generators.RegExpGenerator: 使用正则表达式指定值格式

    • HP.UFT.TCG.DataGeneration.Generators.BaseRepositoryGenerator: 使用标准字符串、数字等指定值。

    title 测试配置生成器中显示的生成类型的标题。
    returnType

    要返回的值的格式。支持的类型包括:

    • 字符串

    • 密码

    • 数字

    • 日期

    注释: 可以在此 XML 文件中添加多种生成器类型。

  3. 在“数据生成器”属性中,使用 Parameter 元素指定参数详细信息:

    <Generators>
     <DataGenerator name="[CustomGeneratorName]" type="[GeneratorType]" title="[GeneratorTitle]" returnType="[GeneratorResultType]">
    	<Parameters>
    		<Parameter ..../>
    	</Parameters>
     </DataGenerator>
    </Generators>

    如果您使用的是正则表达式类型 (HP.UFT.TCG.DataGeneration.Generators.RegExpGenerator) 或常规样式 (HP.UFT.TCG.DataGeneration.Generators.BaseRepositoryGenerator),则 Parameter 元素的属性值会有所不同:

    正则表达式
    • name: 必须为字符串模式

    • defaultValue: 默认正则表达式模式

    • type: 必须为字符串 System.String

    非正则表达式
    • name: 参数的唯一名称

    • defaultValue: 默认参数值

    • name: 必须为字符串 System.Boolean

    • title: 参数标题

  4. 对于基于非正则表达式的参数类型,添加 Repositories 元素:

    <Generators>
     <DataGenerator name="[CustomGeneratorName]" type="[GeneratorType]" title="[GeneratorTitle]" returnType="[GeneratorResultType]">
    	<Parameters>
    		<Parameter ..../>
    		</Parameter>
    	</Parameters>
    	<Repositories>
    		<Repository..../>
    		</Repository>
    	</Repositories>
     </DataGenerator>
    </Generators>

    Repository 元素必须包含以下属性:

    name 存储库的唯一名称。
    path 包含可能值的 Excel 文件的路径。
    useWhenCheck

    在 Parameter 元素中输入的参数名称。这会指示 UFT One 在选中参数值之一的复选框时使用存储库。

    rule 生成的数据的格式。
  5. 将 XML 文件添加到“<UFT One 安装文件夹>/dat/DataGenerators”文件夹。

数据生成器 XML 文件示例:

<?xml version="1.0" encoding="utf-8"?>
<Generators>
<DataGenerator name ="FullNameGenerator" type ="HP.UFT.TCG.DataGeneration.Generators.BaseRepositoryGenerator"  title="Full Name" >
<Parameters>
<Parameter name ="english" defaultValue ="true" type ="System.Boolean" title = "English"/>
<Parameter name ="non-english" defaultValue ="false" type ="System.Boolean" title = "Non-English"/>
</Parameters>
<Repositories>
<Repository name ="fr_full_names" path ="FrenchFirstLastNames.xlsx" useWhenCheck ="non-english">
<Rule>[MaleName] [Surname]</Rule>
<Rule>[FemaleName] [Surname]</Rule>
</Repository>
<Repository name ="en_full_names" path ="EnglishFirstLastNames.xlsx" useWhenCheck ="english">
<Rule>[MaleName] [Surname]</Rule>
<Rule>[FemaleName] [Surname]</Rule>
</Repository>
<Repository name ="jp_full_names" path ="JapaneseFirstLastNames.xlsx" useWhenCheck ="non-english">
<Rule>[MaleName][Surname]</Rule>
<Rule>[FemaleMaleName][Surname]</Rule>
<Rule>[FemaleName][Surname]</Rule>
</Repository>
<Repository name ="ru_full_names" path ="RussianFirstLastNames.xlsx" useWhenCheck ="non-english">
<Rule>[MaleName] [MaleSurname]</Rule>
<Rule>[MaleName] [FemaleMaleSurname]</Rule>
<Rule>[FemaleName] [FemaleSurname]</Rule>
<Rule>[FemaleName] [FemaleMaleSurname]</Rule>
</Repository>
</Repositories>

</DataGenerator>

</Generators>

返回页首

另请参见: