测试仪
对某个要素评估一个或多个测试,并根据测试结果路由该要素。
典型用途
- 对数据进行质量测试
- 基于测试将特征分为两个流
- 基于测试分离特征子集
它是如何工作的?
测试仪接受任何功能。它根据一个或多个用户定义的测试评估每个特性,并通过通过端口,如果它满足定义的条件,或通过失败端口,如果它不符合定义的条件。
测试被构造为一系列测试条款,它根据大量可用的操作员以及测试类型。测试子句与逻辑-组合以及,请或者,和不是,用括号定义计算顺序。
创建测试子句
每个子句都由要测试的值和测试它的方法组成。根据测试的类型,该条款至少包括左值还有一个操作员是的。如果所选运算符需要更多信息(例如,测试大于某个值的属性),则正确的价值提供字段。
测试子句在表中创建,并从上到下编号。
左值 |
操作员 |
正确的价值 |
模式* |
---|---|---|---|
要测试的值或表达式 | 要执行的测试类型 | 如果操作员要求,用于比较的值 | 以特定方式测试值 |
实例 | |||
纬度 | > | 49.000001个 | 自动 |
@区域() | 范围内 | (1100) | 数字 |
蛇形 | 就像 | 烤羊肉串 | 区分大小写 |
交通 | 属性为空 |
|
自动 |
计数 | 类型为 | 整数 | 自动 |
*请注意模式仅在以下情况下可用于单独测试比较模式设置为按测试指定是的。
这些是可用于构造测试子句的运算符。它们可用于测试属性值、构造的表达式、常量和已发布的参数。
操作员 |
描述 |
正确的值配置 |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
= | 等于 | 输入一个值进行比较。 | ||||||||||||||||
! = | 不等于 | 输入一个值进行比较。 | ||||||||||||||||
< | 小于 | 输入一个值进行比较。 | ||||||||||||||||
> | 大于 | 输入一个值进行比较。 | ||||||||||||||||
< = | 小于或等于 | 输入一个值进行比较。 | ||||||||||||||||
> = | 大于或等于 | 输入一个值进行比较。 | ||||||||||||||||
范围内 | 测试该值是否位于设置符号中指定的数值范围内。 开放式的范围可以通过留空下限或上限来定义。 |
范围值由逗号分隔,括号括起。 方括号。[ ]-表示包含的限制(大于或等于,小于或等于)。 圆括弧。()-表示排他限制(大于、小于)。 有效范围的例子: (9)大于1小于9 (1,9)大于等于1小于等于9 (9)大于1小于等于9 (1)大于1 [9]小于等于9 注意:当模式设置为大小写敏感或大小写不敏感时,此操作符不可用,当操作符设置为In Range时,这些模式不可用。 |
||||||||||||||||
在 | 测试是否可以在提供的可能值和范围列表中找到该值。 | 输入逗号分隔的字符串、数值和/或范围(以x-y的形式)的任何组合。 有效配置的例子: 10100 1 - 99 猫 猫,狗,猫和狗 狗,1 - 9,7 注意:字符串范围(例如,模拟)也可以指定。若要测试包含连字符的值,请将值括在引号内:“LL-27”、“ll - 83” |
||||||||||||||||
就像 | 测试该值是否与指定的字符串模式匹配。 | 输入一个字符串模式。通配符使用百分号(%),而不是星号(*). 在自动模式下,此操作符不区分大小写。当模式设置为数值模式时,此操作符不可用。 例子: 如果正确的值是% bc %: abcd:通过 公元前:失败 |
||||||||||||||||
包含 | 测试右值是否出现在左值的某个位置。 | 输入要测试的值。 在自动模式下,此操作符不区分大小写。此操作符在数字模式下不可用。 例子: 如果正确的值是公元前: abcd:通过 abde:失败 |
||||||||||||||||
始于 | 测试左值字符串是否以右值字符串开头。 | 输入要测试的字符串。 在自动模式下,此操作符不区分大小写。此操作符在数字模式下不可用。 例子: 如果正确的值是做: 狗:通过 猫:失败 |
||||||||||||||||
结尾 | 测试左值字符串是否以右值字符串结尾。 | 输入要测试的字符串。 在自动模式下,此操作符不区分大小写。此操作符在数字模式下不可用。 例子: 如果正确的值是gs: 狗:通过 猫:失败 |
||||||||||||||||
包含正则表达式 | 测试该值是否包含与正则表达式描述的模式匹配的字符串。 | 输入一个正则表达式。 这个正则表达式编辑器可通过省略号(…)按钮获得,并可用于构造和测试表达式。 要测试的regex可以表示值中任何位置的字符串,也可以表示整个值(通过创建足够长的regex来表示所需值的范围)。 例子: 如果正则表达式\ d(数字) 猫:失败 9:通过 cats82:通过 |
||||||||||||||||
类型为 | 测试该值是否与所选类型兼容。 您可以通过添加额外的测试子句来测试多个类型。 |
选择要测试的类型。
|
||||||||||||||||
数组, | 测试该值是否可以在指定的编码中编码而不丢失数据。 | 从标准编码列表中选择。 样本编码:
|
||||||||||||||||
属性具有值 | 测试该属性是否有值,且不为空、缺少或为空。 |
|
||||||||||||||||
属性为空 | 测试属性是否具有空值。 |
|
||||||||||||||||
属性为空字符串 | 测试该值是否是空字符串。 |
|
||||||||||||||||
属性是失踪 | 测试特性上是否缺少属性 |
|
连接测试子句:逻辑
多个测试子句与逻辑,使用以及,请或者,和不是除括号外,还指定如何计算测试以确定通过或失败。
通过选择逻辑列测试条款表,或者可以直接使用复合表达式参数的编辑按钮。
在本例中,我们从食品卡车的数据集开始,并希望标识缺少业务名称的任何记录。
这些功能将传送到检测仪中。
在参数对话框中,我们配置一个测试。这个左值设置为企业名称属性,以及操作员设置为属性具有值是的。
因为只有一个测试合格标准(和/或/复合)不相关。
不正确的价值是需要的,因为测试只是寻找任何值的存在。
测试失败的功能通过失败端口,可以发送到其他位置进行进一步处理。
在这个例子中,我们从食品卡车的数据集开始,并且希望测试那些供应墨西哥食品的人。这些功能将传送到检测仪中。
在参数对话框中,我们构造了两个测试,都使用说明属性为左值是的。
第一个测试寻找一个完全匹配的特性说明是墨西哥菜是的。第二个测试不那么严格-它查找以玉米饼是的。
这个逻辑连接器已设置或者-这意味着任何与这些测试匹配的功能都将通过通过港口。
比较模式设置为不区分大小写,这将适用于两个测试条款。
四个功能至少与一个测试匹配。
在本例中,我们从城市公园的数据集开始。我们将对他们进行测试,在两个特定的社区找到一定规模的狗园。这些功能将传送到检测仪中。
在“参数”对话框中,我们添加了四个单独的测试子句:
- 狗公园:是的
- 面积大于四万(平方米,以地为单位-使用@area()函数计算几何图形)
- 邻居的名字是斯特拉什科纳
- 邻居的名字是美景
因为我们有两个邻居的名字,我们用复合表达式为了描述我们想要的测试条件:
- 1和2和(3或4)表示(注意,数字表示测试子句的行号):
- 必须是狗园(第1条),及;
- 面积必须大于40000平方米(规则2);
- 它必须位于Strathcona(规则3)或Fairview(规则4)附近。
逻辑连接器和括号可以在逻辑列,或直接使用编辑按钮。
两个公园符合标准。
使用说明
- 由于批量模式处理时,功能可能显示为以块的形式输出。尽管特征顺序当通过通过和失败端口,在依赖连接的输出端口的功能排序的工作区中可能会出现意外结果。在这些情况下,我们建议您不升级测试仪将其升级到2019.1或更高版本,或者修改您的工作区,使其不依赖于从连接的输出端口进行的功能排序。
- 如果您有几个测试变压器的顺序,考虑使用测试筛选器相反。此转换器允许您为每个结果创建一系列带有命名输出端口的测试。
- 当筛选出特征子集时,请在选择输出端口时考虑测试的逻辑。例如,要从公园列表中删除所有的狗公园,您可以:
- 设置dogparks=y,并连接失败的端口(删除传递的功能),或者
- 设置dogparks=n,并连接传递的端口(删除失败的功能)。
配置
输入端口
要测试的功能。
输出端口
如果功能根据测试配置通过,则通过通过港口。
如果功能根据测试配置失败,则通过失败港口。
参数
见创建测试子句以上是进一步的细节。
逻辑 | 确定如何在复合测试中评估子句。 请注意,使用复合表达式参数的编辑函数将在本专栏中反映应用,包括括号的放置。
|
||||||||||||
左值 | 左值可以是属性、表达式、文字常量、已发布参数或上述组合的计算值的值。 如果它是一个计算过的函数或表达式,它将针对每个特性执行,结果将用于测试。 |
||||||||||||
操作员 | 选择要执行的测试类型。选项包括:
|
||||||||||||
正确的价值 | 输入所选测试所需的比较值或补充配置信息。 根据所选的操作符,可以使用选项的下拉列表或省略号按钮来访问带有正确参数的附加对话框,以帮助输入值。 |
||||||||||||
模式 | 如果需要,指定一个值的计算方法。 此列仅在以下情况下可用比较模式设置为按测试指定是的。 有关可用选项,请参阅下面的比较模式。 |
||||||||||||
比较模式 | 指定值的计算方法。 此选项将应用于所有测试,除非按测试指定被选中,启用模式列测试条款表格
提示:如果您知道您的数据是字符串数据,您应该将模式设置为大小写敏感或大小写不敏感。这样,FME就不需要为每个特性花费时间来确定数据是否可以表示为一个数字,而只需立即执行字符串比较。 |
||||||||||||
复合表达式 | 在创建多个测试子句时启用。 输入或编辑一个测试表达式,该表达式定义了要满足的条件,以便考虑特性通过是的。如果在这里进行编辑,那么一旦Apply按钮用于保存更改,更改将反映在Test子句表的逻辑列中。相反,通过选择逻辑选项所做的更改将反映在这里。 按照测试子句表中列出的顺序,测试子句通过它们的编号来引用。子句可以用AND、OR、NOT和括号连接。 例子: ((1及2)或3) 解释:第1条和第2条必须为真,或第3条必须为真。 请参阅上面的复合示例了解一个用例。 |
进行比较时,null、missing和empty string值的计算结果均为空字符串。因此,在比较运算符的上下文中,它们被认为是相等的。此外,遵循以下比较顺序:
- 空,缺少,空字符串<其他值
在自动模式下,所有运算符都区分大小写,除了like、contains、begins with和ends with。
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来指定变压器参数。一些转换器中还提供了更高级的功能,如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击在适用参数旁边。有关详细信息,请参见变压器参数菜单选项是的。
定义值
有几种方法可以定义要在变压器中使用的值。最简单的方法是简单地输入一个值或字符串,它可以包括各种类型的函数,如属性引用、数学和字符串函数以及工作区参数。有许多工具和快捷方式可以帮助构造值,通常可以从值字段旁边的下拉式上下文菜单中获得。
使用文本编辑器
文本编辑器提供了一种从各种数据源(如属性、参数和常量)构造文本字符串(包括正则表达式)的方便方法,在这些数据源中,结果直接在参数内部使用。
使用算术编辑器
算术编辑器提供了一种从各种数据源(如属性、参数和特征函数)构造数学表达式的方便方法,在这些数据源中,结果直接在参数内部使用。
条件值
根据通过或失败的一个或多个测试条件设置值。
内容
表达式和字符串可以包含许多函数、字符、参数等,无论是直接在参数中输入还是使用其中一个编辑器构造。
参考
加工行为 |
|
特征保持 |
不 |
依赖关系 | 无 |
FME许可级别 | FME基础版及以上 |
别名 | |
历史 | 这个变压器取代了attributester和generictester变压器。 |
类别 |
FME社亚搏国际在线官网区
fme社区是演示亚搏国际在线官网、操作指南、文章、常见问题解答等的场所。获取问题的答案,向其他用户学习,并对新功能进行建议、投票和评论。
搜索关于测试仪的所有结果在FME社区。亚搏国际在线官网
示例可能包含根据开放式政府许可证获得许可的信息-温哥华