【发布时间】:2012-11-28 19:27:45
【问题描述】:
我想使用随机 xml 生成器工具通过从 xsd 生成随机 xml 文件来执行随机测试。 (我正在使用氧气工具)
随机生成器不会对生成的值应用语义限制。例如,我有一个元素“parameters”,它具有多个元素“parameter”,例如 p1 和 p2,另一方面,我有另一个元素“constraint”,它将使用“parameter”。我的意思是如果我有 P1, P2 ,它应该使用 p1 和 p2 的子集。我想强制随机生成器工具使用它们(p1 和 p2),而不是再次为约束随机生成一些其他参数。我使用了“key”、“keyref”和.. 但它仍然不起作用。 它只是在没有任何限制的情况下在任何地方生成随机字符串,我不得不提到我选择了选项“元素和属性的值:随机(应用限制)”所以它应该在生成随机值时考虑限制,但它没有!请帮忙..
有效 XML 的样本:
<system>
<parameters>
<parameter id="1" name="p1" >
<value id="1" name="value1"/>
<value id="2" name="value2"/>
</parameter>
<parameter id="2" name="p2" >
<value id="1" name="value1"/>
<value id="2" name="value2"/>
</parameter>
</parameters>
<constraint text="p1=p2">
<parameter name="p1"/>
<parameter name="p2"/>
</constraint>
</system>
所以我想要使用已经生成的参数子集(p1 和 p2),正如您在上面的示例中看到的那样,而不是生成一些其他随机参数,因为所有生成的 xml 都是无效的,我想要一个有效的。
无效 XML 的示例:
<system>
<parameters>
<parameter id="1" name="p1" >
<value id="1" name="value1"/>
<value id="2" name="value2"/>
</parameter>
<parameter id="2" name="p2" >
<value id="1" name="value1"/>
<value id="2" name="value2"/>
</parameter>
</parameters>
<constraint text="**p3**=**p5**">
<parameter name="**p8**"/>
<parameter name="**p9**"/>
</constraint>
</system>
谢谢
【问题讨论】:
-
您是否需要一些预先存在的工具?或者写下要求让某人写一个?
-
我要测试的工具已经存在。随机生成器也可用(OXYGEN),但我不知道如何生成有效的 xml,如上所述,随机生成器将生成语法正确但语义不正确的 xml 文件!不知道上面的例子是否清楚?
标签: xml xsd random-testing oxygenxml