【问题标题】:Pattern for Credentials in soapUI Test SuitessoapUI 测试套件中的凭证模式
【发布时间】:2014-04-04 02:12:50
【问题描述】:

我是使用soapUI 进行自动化测试的新手,所以这可能是一个愚蠢的问题。

我希望我的测试套件中的所有测试用例都使用相同的用户名和密码。当然,我不希望用户名和密码存储在soapUI项目中,实际上我也不希望它们被检入到源代码管理中。

我发现可以在层次结构的多个级别(项目、测试套件、测试用例、测试步骤,也许更多)使用自定义属性。我看到可以从文件中加载这些属性。我已经在项目级别成功创建了“用户名”和“密码”属性,并从一个文件(未保存到源代码管理中的文件)中加载了它们。

我看到您可以添加的一种测试步骤是属性转移步骤,我已经成功地使用了一种将项目级属性转移到测试用例请求步骤。

我想知道的是一些将此类“全局”属性引入所有测试用例的良好模式。我是否需要在每个测试用例中添加一个属性转移步骤?有没有一种简单的方法可以确保这些属性值不会保存到项目文件中?负载测试有什么特别需要做的吗?

【问题讨论】:

    标签: soapui


    【解决方案1】:

    可以在项目范围内的所有测试套件/测试用例/测试步骤中直接访问项目级属性。

    这可以使用以下格式完成。在这种格式中,PropName 是我的项目级属性的名称。只需将 PropName 替换为您的属性名称即可。

    ${#Project#PropName}
    

    如果您需要在常规步骤中访问此属性,那么您应该使用 context.expand 来获取值。有时在...

    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} 替换为属性的实际值。

    您还可以在working with properties 上查看soapUI 指南。

    希望这会有所帮助。

    【讨论】:

    • 我想我可能会看到我错过了什么。例如,您说我应该在属性网格的值单元格中输入${#TestCase#PropName},我会在其中输入文字属性值?如果是这样的话,那么,当然,用户界面中没有任何迹象表明我可以做那种事情——没有什么能让我尝试的。
    • 好的,谢谢,是否有一两个链接可以解释这一点?我希望发现我跳过了大多数用户阅读的页面,而我没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 2023-04-07
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多