我是使用soapUI进行自动化测试的新手,所以这可能是一个愚蠢的问题。
我希望我的测试套件中的所有测试用例都使用相同的用户名和密码。当然,我不希望在soapUI项目中存储用户名和密码,实际上也不希望它们被检入源代码控制。
我发现可以在层次结构的多个级别使用自定义属性(项目,测试套件,测试用例,测试步骤,甚至更多)。我看到可以从文件中加载这些属性。我已在项目级别成功创建了“用户名”和“密码”属性,并从文件(未保存到源代码管理中的文件)中加载它们。
我看到你可以添加的一种测试步骤是属性转移步骤,我已成功使用一个将项目级属性转移到测试用例请求步骤。
我想知道的是在所有测试用例中获得这种“全局”属性的一些好模式。我是否需要将属性转移步骤放入每个测试用例中?有没有一种简单的方法可以确保这些属性值不会保存到项目文件中?是否有任何特殊需要进行负载测试才能工作?
答案 0 :(得分:1)
可以在项目范围内的所有测试套件/测试用例/测试步骤中直接访问项目级属性。
这可以使用以下格式完成。在这种格式中,PropName
是我的项目级属性的名称。只需将PropName
替换为您的财产名称,就可以了。
${#Project#PropName}
如果需要在groovy步骤中访问此属性,则应使用context.expand获取值。 SOmetime就行......
context.expand("${#Project#PropName}")
要使用测试套件,请在所有测试用例/测试步骤中访问测试套件级属性..
${#TestSuite#PropName}
在Groovy测试步骤
context.expand("${#TestSuite#PropName}")
要在其范围内的所有测试步骤中访问测试用例级别属性,请使用以下格式
${#TestCase#PropName}
在一个常规的测试步骤中
context.expand("${#TestCase#PropName}")
要在其姐妹测试步骤中访问测试步骤的属性,请使用...
${Test Request#Response}
其中Test Request
是测试步骤的名称,Response
是您要访问的属性。
要记住的是范围意义,项目级属性将在其所有子级中可访问,但测试套件的属性将无法在另一个测试套件中访问。
至于使用财产转移步骤,我不建议在这种情况下使用它。例如,当您想从服务的响应中提取值并将其用于其他地方时,应该使用它。
在项目/测试套件/测试用例级别设置这些属性时,需要像下面一样进行设置。 在此图像中,PropName是属性的名称,Somevalue是属性的值。这是在从文件中读取属性时如何设置属性。
现在,如果你想在JDBC步骤中访问这个属性,你可以提到${#Project#PropName}
,当步骤运行时,soapUI会将${#Project#PropName}
替换为propety的实际值。
您还可以查看working with properties上的soapUI指南。
希望这有帮助。