资源库数据(如 Excel、CSV 和其他数据源中的数据)由 Parasoft 消息传送工具通过数据源使用。您将定义一个数据源,该数据源指定在何处访问适当的数据,以及(可选地)希望使用哪些可用数据子集。然后,通过对这个数据源参数化值来填充工具。

在 SOAtest 中,资源库数据可以在消息传送客户端工具中使用,比如 SOAP 客户端、REST 客户端、消息传送客户端和其他面向客户端的工具。

在 Virtualize 中,资源库数据可以在消息响应器、SQL 响应器和面向客户端的验证工具中使用。有关如何在 SQL 响应器中使用资源库数据的详细信息,请参阅 SQL 响应器。下面讨论所有其他情况。

带有表单视图的分层参数化

若要通过表单视图(例如,表单输入或表单 JSON)使用资源库中的数据参数化工具值:

  1. 确保您有一个连接到所需资源库的数据源,并且该数据源对套件(包括要参数化的工具)是可用的。
  2. 在要参数化的工具中,执行以下操作:
    1. 确保在数据源区域(编辑器的右上角)中选择了资源库数据源。
    2. 打开所需的表单视图。
    3. 若要用匹配的数据资源库列填充所有项,右键点击树并选择填充。通过属性排除选项,可以控制在填充过程中自动添加的可选属性。或者,对于每个要填充资源库值的项,请选择参数化,然后选择包含要使用的值的列的名称。


注意:

提示:从自定义工具访问数据值

当使用自定义工具(例如,通过扩展框架添加的工具)时,您可以通过在适用的工具文本字段中手动输入列名来访问数据资源库列中的值。例如,如果希望访问数据资源库中名为“loanAmount”的键列中的值,则需要在合适的工具字段中输入 ${loanAmount (key)}

  • 复杂元素应该用记录列表列参数化
  • 简单的元素应该用一个基元或基元列表列参数化

带字面量视图的分层参数化

若要使用字面量视图参数化工具值来自一个资源库的数据:

  1. 确保您有一个连接到所需资源库的数据源,并且该数据源对套件(包括要参数化的工具)是可用的。
  2. 在要参数化的工具中,执行以下操作:
    1. 确保在数据源区域(编辑器的右上角)中选择了资源库数据源。
    2. 打开字面量视图。
    3. 编辑消息,使用“ParasoftColumn”指定应该使用哪个数据资源库列,以在消息层次结构中参数化该级别。详情请参阅以下 JSON 指南XML 指南中的说明。

注意,“ParasoftColumn”仅适用于复杂元素;通过使用 {$} 语法访问数据源值,可以参数化简单元素。

例如,假设您有以下数据资源库数据:

body:
	info: "some info about stuff"     
	excludedSimple: "[parasoft_exclude]"     
	optionalSimple: "[parasoft_null]"     
	excluded: []
   	optional: null
    	items: [
		{
			item: [
				{ name: "bill", last: "mclaren", id: "12345"}
				{ name: "steve", last: "smith", id: "45678" }
			]
		}
	]
	codes: [
		{
			code: [ "abc", "efg", "hij" ]
		}
	]

这是一个参数化后使用该数据的 JSON 消息:

{
	"body" : {
		"ParasoftColumn" : "body",
		"info" : "${info}",
		"excludedSimple" : "${excludedSimple}",      
		"optionalSimple" : "${optionalSimple}",      
		"excluded" : {
			"ParasoftColumn" : "excluded",
			"excludedChild" : "${excludedChild}"
		},
		"optional" : {
			"ParasoftColumn" : "optional",
			"optionalChild" : "${optionalChild}"
		},
		"items" : [
			"ParasoftColumn: items",
			{
				"ParasoftColumn" : "item",
				"name" : "${name}",
				"last" : "${last}",
				"id" : ${number:id}
			}
		],
		"codes" : [
			"ParasoftColumn: codes",
			"${code}"
		]
	}
}

一旦参数化完成,预期的 JSON 消息将如下所示:

{
	"body" : {
		"info" : "some info about stuff",
		"optionalSimple" : null,
		"optional" : null,
		"items" : [
			{
				"name" : "bill",
				"last" : "mclaren",
				"id" : 12345
			},
			{
				"name" : "steve",
				"last" : "smith",
				"id" : 45678
			}
		],
		"codes" : [
			"abc",
			"efg",
			"hij"
		]
	}
}

这是一个参数化来使用该数据的 XML 消息:

<root>
	<body ParasoftColumn="body">
		<info>${info}</info>
		<excludedSimple>${excludedSimple}</excludedSimple>
		<optionalSimple>${optionalSimple}</optionalSimple>
		<excluded ParasoftColumn="excluded">
			<excludedChild>${excludedChild}</excludedChild>
		</excluded>
		<optional ParasoftColumn="optional">
			<optionalChild>${optionalChild}</optionalChild>
		</optional>
		<optional>${optional}</optional>
		<items customerAttr="val" ParasoftColumn="items">
			<item ParasoftColumn="item">
				<name>${name}</name>
				<last>${last}</last>
				<id>${id}</id>
			</item>
		</items>
		<codes ParasoftColumn="codes">
			<code>${code}</code>
		</codes>
	</body>
</root>

一旦参数化完成,预期的 XML 消息将如下所示:

<root>
	<body>
		<info>some info about stuff</info>
		<optionalSimple xsi:nil="true"/>
		<optional xsi:nil="true"/>
		<items customerAttr="val">
			<item>
				<name>bill</name>
				<last>mclaren</last>
				<id>12345</id>
			</item>
			<item>
				<name>steve</name>
				<last>smith</last>
				<id>45678</id>
			</item>
		</items>
		<codes>
			<code>abc</code>
			<code>efg</code>
			<code>hij</code>
		</codes>
	</body>
</root>

JSON 指南

  • 对象或数组应该使用记录列表列参数化。
  • 简单对象字段的内容值应该使用基本列参数化。对于 number 或 boolean 值,内容值应该是 ${number:<value>} 或 ${boolean:<value>}。
  • 简单数组项的内容值应该用基本列表列参数化。对于 number 或 boolean 值,内容值应该是 ${number:<value>} 或 ${boolean:<value>}。
  • 您可以使用变量以及来自资源库数据源的原语或原语列表列进行参数化。
  • 如果使用数据资源库列对对象或数组进行参数化,则不应在同一级别上使用相同名称的任何其他元素。
  • 根对象或数组没有参数化。

XML 指南

  • 复杂元素应该用记录列表列参数化。
  • 简单元素的内容值应该用基本列或基本列表列参数化。
  • 您可以使用变量以及来自资源库数据源的原语或原语列表列进行参数化。
  • 如果使用数据资源库列对元素进行参数化,则不应在同一级别上使用相同名称的任何其他元素。
  • 根元素没有参数化。
  • No labels