在本章节中:
修改数据结构
不同的测试场景可能要求以不同的方式构造数据。数据模型特征允许修改可在所有测试场景中使用的数据结构。
复制录制类型
可以使用复制功能来复制简单或层级的数据集录制类型。也可以复制成员/键及其属性(约束、屏蔽和生成设置)。
- 从录制类型省略菜单中选择 Duplicate Record Type 。
- 在提示时指定名称,并单击 Save。
删除录制类型
从录制类型省略菜单中选择 Delete Record Type 删除它。
添加和删除成员
可以使用简单和层级的数据集将成员添加到录制类型。
- 选择录制类型并单击 Add Member 按钮(+)。
- 为新成员指定名称,然后从下拉菜单中选择类型。可以将原始、原始列表或录制类型作为所选定录制类型添加(关于成员类型的更多信息,请查阅 Data Modeling )。
- 为新成员选择数据生成模式有关更多详情,请查阅 Mask and Generation Settings 。
- 配置模型设置,然后单击 Create。
若要从模型中删除成员,请从成员省略号菜单中选择 Delete Member 。
设置属性
属性定义了可以使用数据模型中组件执行相互作用的类型。以下组件拥有属性:
- members
- keys
- parameters (SQL)
- columns (SQL)
- result sets (SQL)
生成、屏蔽设置和数据约束是在 表明约束 或 生成数据时添加到属性的类型。
- 单击组件,然后从省略菜单选择 Add New Property 。
- 在打开的字段中定义属性。
- 点击离开时,变更将会自动保存。
若要删除属性:
- 打开 Remove Property 菜单。
- 单击垃圾桶图标。
添加删除 SQL 模板
SQL 模板是一个或多个语句,表示所录制的 SQL 查询。
- 单击模型中的数据集模式,然后单击 Add Template 按钮(+)。
- 输入 SQL 模板,然后单击 Save。
新模板将出现在模型中。它将以 SQL# 格式分配一个显示名称,并包含空结果集。
若要更改模板显示名称:
- 单击省略菜单图标,然后选择 Edit Display Name。
- 在提示时指定新名称,并单击 Save。更改只影响其如何在模型中表现(而不影响根本数据)的显示名称。
若要删除模板,请单击省略菜单图标并选择 Delete SQL Template。
添加和删除 SQL 模板
SQL 参数是 To add 一个参数:
- 选择模板,单击 Add Parameters 按钮(+),以使用侧栏中的模板参数。
- 在提示时为参数指定名称,并单击 Create。
若要删除参数:
- 单击省略菜单,然后从下拉菜单中选择 Delete Parameter 。
- 提示时确定是否要删除参数。参数及其所有关联数据都将从资源库中删除。
添加和删除列
SQL 数据集中的列持有数据。
- 单击数据集以查看其列。
- 单击 olumns 区域的 Add Column 按钮(+),并在提示时输入名称。
- 单击 Create。
若要删除列:
- 单击列的省略菜单并选择 Delete Column。
- 提示时确定是否要删除列。
生成数据
可以为 SQL、层级和简单的数据集生成数据。根据为参数、列、数据集、成员或持有数据的键成员配置的“屏蔽和生成设置”生成数据。
- 单击录制类型或 SQL 模板,并从组件省略菜单中选择 Mask and Generate Settings 。
结果集的“屏蔽和生成设置”受到出现数的限制。 - 从下拉菜单中选择一个模式。模式决定了数据如何生成。每个模式都具有不同的选项。有关更多详情,请查阅 Mask and Generation Settings 。
- 为所选定类型配置“屏蔽和生成设置”,然后单击 Save。
- 单击工具栏中的 Generate Data 。
- 为所生成的资源库指定名称,选择要生成多少录制数量,以及选择包含哪些原始数据集。
对于 SQL 模板,你可以对它进行扩展。
- 单击 Generate 向队列中添加数据生成任务。
将根据屏蔽和生成设置创建并填充新的资源库。
屏蔽数据
可以生成数据集的屏蔽副本,以隐藏存储在服务器的敏感信息。屏蔽的数据集包含同源一样的条目数,但是使用“屏蔽和生成设置”配置的任何数据集组件都将根据设置随机化。可以屏蔽以下组件类型的数据。
- members
- keys
- parameters (SQL)
- result sets (SQL)
- columns (SQL)
也可以配置数据约束设置,确保为测试场景正确地生成了所屏蔽数据。
- 单击组件,从 member 和 key 省略菜单中选择 Infer Constraints (同时请查阅 Inferring Data Constraints)。可以手动设置约束,但在现有数据上使用内置函数使步骤变得更容易。
- 对要进行调整的任何组件单击约束。
- 从组件省略菜单中选择 Mask and Generate Settings 。
- 从下拉菜单中选择一个模式。模式决定了数据如何生成。每个模式都具有不同的选项。有关更多详情,请查阅 Mask and Generation Settings 。
- 为所选定类型配置设置,然后单击 Save。
单击工具栏中的 Mask Data 。
所有使用屏蔽和生成设置的数据成员都将在新的屏蔽资源库中被代替。
子集数据设定
可以将资源库的子集数据复制到新的资源库中。
- 打开要生成子集的资源库。
- 设置子集的数据约束(请查阅 Inferring Data Constraints)。将所指定约束内的数据复制到新的子集资源库中。
- (可选项)单击工具栏中的 Integrity Test 以验证约束是否有效(请查阅 Testing Data Integrity)。只有传递给完整性测试的数据才可以复制到新的子集资源库中。
- 单击工具栏中的 Subset Data 。
- 在提示时为子集资源库指定名称,并单击 Subset。
生成的资源库副本值包含约束内的数据。
子集 SQL 数据集
以下行为应用于子集 SQL 数据集:
- 如果结果集行中的任何列数值违反了数据约束,则整行都将不会被复制。
- 如果为结果集配置了最大出现约束,则该结果集的行将在达到峰值值停止复制。
- 如果任何参数值违反数据约束, SQL 参数行及其相关数据集都将不会被复制。
- 如果为数据集配置了最小出现约束,并且如果数据集没有足够的行来满足最小约束,则数据集的 SQL 参数行将不会被复制。
推断数据约束
数据建模功能会基于资源库中的数据自动为新数据生成约束。通过选择侧栏中的资源库并单击 Infer Constraints 按钮,推断所选定资源库的约束。
也可以通过从 key/member 省略菜单中选择 Infer Constraints 推断单个成员和键的约束。
CTP 将推断数据是一个 Boolean、date、number 或是 string。
编辑数据约束
如果希望编辑约束,则单击约束属性并在数据约束设置编辑器中进行更改。
可以配置以下设置:
类型
如果应该将 key/member 约束为 true 或 false,请选择 Boolean 类型。
如果应该将 key/member 约束为 date,请选择 Date 类型。可以配置以下设置:
Start | 指定开始和/或时间。 |
---|---|
End | 指定结束和/或时间。 |
Format | 指定开始和结束日期应该遵循的模式。 |
如果应该将 key/member 约束为 number,请选择 Number 类型。可以配置以下设置:
Minimum | 输入可以生成的最小数。 |
---|---|
Maximum | 输入可以生成的最大数。 |
Decimals | 输入允许的小数位数。 |
如果应该将 key/member 约束为 string,请选择 String 类型。可以配置以下设置:
Pattern | 为将 例如,可以使用以下模式随机生成社会保险号。
|
---|---|
Character map | 指定模式中可使用的字符范围。当设置为 fixed 时,默认值为所有可打印的 ASCII 字符 0x20 (space) 到 0x7e (~)。 如果模式不包含任何 & 的记号字符,则将忽略字符表。 |
引用
可以配置组件以应用另一个组件中的数据。这确保了模型中的键、成员、列、结果集和其他数据持有对象保持一致。单击引用字段,将出现数据集中对象的层次视图。
测试数据完整性
数据约束可以通过 setting properties,使用 Infer Constraints 功能或在 Virtualize 中通过流量创建虚拟资产时通过定义文件进行手动配置。完整性测试功能允许验证对存储在资源库中数据的约束是否有效。
可以通过从省略菜单中选择 Integrity Test 测试模型中各个对象的完整性(比如,成员、列)或数据集中的所有对象。
可以通过单击工具栏中的完整性测试(Integrity Test)按钮,测试资源库的数据完整性。
如果没有设置约束,则将出现警告。如果数据与约束不匹配,则将出现错误并标记成员。
可以单击错误消息以查看覆盖中的详细信息。
可以在测试数据助手 Tasks 选项卡中查看完整性测试的其他信息。
屏蔽和生成设置
屏蔽和生成设置允许控制不同场景的测试数据。屏蔽和生成设置将应用于以下类型的数据集组件:
- 原始成员
- 原始成员列表
- SQL 参数
- SQL 列
模式不会应用于 SQL 结果集。SQL 结果集的屏蔽和生成设置允许配置结果集中出现 SQL 列的最大次数和最小次数。
可用的特定设置取决于模式。可以在添加成员或更改现有成员时指定屏蔽和生成模式。可使用以下模式。
Formula
选择此模式以编程方式设置约束。支持使用 JavaScript 语法的简单数学、字符串和日期操作。也可以在公式(例如 SUM、COUNT 等)中使用现成的聚合函数。
请查阅 在工具中使用数据 以获得引用其他录制类型成员的语法的信息。
关于公式变量
- 以 "
${
" (美元符和左大括号)字符开始并以 "}
" (又大括号)结尾的变量。 - 可以使用
${member}
语法指向同一录制类型内的成员。 - 如果变量引用应用屏蔽/生成设置的相同成员,则将在公式中使用原始值。
- 在简单的和层级的数据集中,可以使用
${recordType.member}
语法指向指定录制类型内的成员。 - 可以使用
${dataSet:ds.key}
语法指向指定数据源内的键。
示例
下面的公式计算一个部分和价。
SUM(${cart_item.price})*${sales_tax.rate})
下面的公式生成一个邮箱地址:
CONCAT(${FIRSTNAME},"_",${LASTNAME},"@parabank.com")
From Seed
选择此模式,使用现有资源库中的值生成数据。该模式要求配置额外的设置。
Type | 指定应该如何将种子数据复制到所生成的资源库中。 Random:将值随机复制到所生成资源库中。 Round Robin: 循环遍历种子数据,根据需要生成设置添加记录。例如,如果将生成录制的数量设置为 100,而种子数据中有 80 个记录,则间隙将由开始前 20 记录的复制数据填充。 Unique: 每个录制只可被复制一次。要求的录制数量必须小于或等于数据生成期间种子数据中的录制数。如果要求的录制数量多于种子数据中的录制数量,则将收到一条错误消息。 |
---|---|
Repository | 选择种子资源库。 |
Data set | 选择资源库中的种子数据集。 |
Column | 选择数据集中的键(key)列。 |
Independent | 启用此选项,独立于可能配置的其他成员数据生成成员数据。 生成数据后,根据配置成员的类型复制现有资源库和所选定数据集。独立生成成员数据可以减少潜在的冲突。 |
Random
选择此模式生成随机的 Booleans、dates、numbers 或 strings。Dates、numbers 和 strings 要求额外的配置。
Dates
可以配置以下设置,以生成和屏蔽随机的日期:
Start | 指定开始和/或时间。 |
---|---|
End | 指定结束和/或时间。 |
Format | 指定开始和结束日期应该遵循的模式。 |
Numbers
可以配置以下设置,以生成和屏蔽随机的数字:
Minimum | 输入可以生成的最小数。 |
---|---|
Maximum | 输入可以生成的最大数。 |
Decimals | 输入允许的小数位数。 |
Strings
可以配置以下设置,以生成和屏蔽随机的字符串:
Pattern | 为将 例如,可以使用以下模式随机生成社会保险号。
|
---|---|
Character map | 指定模式中可使用的字符范围。当设置为 fixed 时,默认值为所有可打印的 ASCII 字符 0x20 (space) 到 0x7e (~)。 |
Ranged
选择此模式,生成以特定值开始并自增长到指定结束值的序列号和日期。范畴数据的配置与随机数据相同,但范畴数据还具有指定数据应该如何自增长的自增长字段。