当前位置: 首页 > 知识库问答 >
问题:

SoapUI:使用运行测试用例测试步骤在上下文中未通过

景俊语
2023-03-14

我正在使用SoapUI Pro。SoapUI网站表示,我应该能够在测试执行期间的任何时候设置上下文变量并获取这些值。在帮助中,它说:

常见的使用方案是通过将相应的计数器和集合保存到上下文并使用它们根据需要控制流来循环或跟踪进度。

如果我使用现成的“运行测试用例”测试步骤,我无法让它工作。被调用的测试似乎没有传递上下文信息。

这是一个非常基本的例子。在我最初的测试中,我放了一些Groovy脚本,上面写着:

上下文。PassedInTest =“这是传入的吗?”log.info(上下文。通过测试

然后在我的调用测试中,我有另一个Groovy脚本,它这样说:

log.info(上下文. PassedIntest)

执行测试后,日志显示:<code>“Is this passed in?”,但随后日志显示被调用测试的null

Mon Oct 27 12:59:45 EDT 2014:INFO:Is this passed in?
Mon Oct 27 12:59:56 EDT 2014:INFO:null

如果在SoapUI中使用开箱即用的“运行测试案例”测试步骤(即不使用Groovy脚本),是否有办法在上下文中传递?我做错了什么?

共有1个答案

秦皓君
2023-03-14

我设法让它工作,但我不能说它是否是黑客......

考虑以下项目结构:

Project
|-CallingTestSuite
| |-CallingTestCase
|   |-TestSteps
|     |-LocalScript (Groovy TestStep)
|     |-RemoteScript (Run TestCase TestStep)
|-CalledTestsuite
  |-CalledTestCase
    |-TestSteps
      |-CalledScript (Groovy TestStep)

现在,您不能将LocalScript的上下文传递(至少我没有找到方法)给Called Script。但是,您可以从Called Script访问LocalScript的内容。

本地脚本:

context.PassedInTest = "Is this passed in?"
log.info(context.PassedInTest)

被称为脚本:

if (context.getProperty("#CallingTestRunContext#") != null){
    log.info(context.getProperty("#CallingTestRunContext#").PassedInTest);
}

请记住,它需要作为 CallingTestSuite、CallingTestCase 或 Project 执行,否则目标上下文将不可用。

 类似资料:
  • 我正在做一个SoapUI项目,我需要使用测试运行器运行我的测试套件。我正在为环境变量使用外部groovy脚本。我在这里面临的问题是,每当我从测试运行程序运行测试用例时,它的返回工作空间为空,这在Externalgroovy中使用。所以在外部groovy中,我将工作区设置为null,导致错误[getProjectByname()无法在null上调用]。下面是 使用工作空间的全局脚本的构造函数 上面我

  • 我想要“常规”测试步骤来破坏SoapUI测试用例,同时应该允许测试步骤的一个不同子集失败。 我有一个SoapUI测试用例,它执行一个相当复杂的功能测试,其中一些可选的细节由额外的JDBC测试步骤检查。由于这些细节是“可选的”,所以即使一个或多个JDBC测试失败,测试用例也不应该失败(即它应该变成绿色)。 如果要求允许测试用例中的所有测试步骤失败,我可以简单地切换测试用例行为: 打开TestCase

  • 我设置了以下测试用例: 我想使用Groovy脚本测试步骤获得SoapRequest测试步骤的状态。 它可以如下所示完成: 但是我不想通过脚本运行TestStep,而只是使用soapui testrunner。在datasink测试步骤中,我可以使用这个: 不幸的是,上述方法在GroovyScript TestStep中不起作用 有什么想法吗?

  • 我是脚本新手,需要一些帮助。我有一个关于SoapUI Groovy脚本的问题,我可以使用帮助。 我需要一个脚本,让我在基于testSuite属性值的测试用例中运行特定的测试步骤(“CC1”是属性的名称),有5种可能性。我猜switch/case可以用,但是不知道怎么写才合适。 当时我试着用这个: 但没有达到预期的步骤。 有人可以帮我解决这个问题吗?

  • 假设我有一个名为Ben的属性文件,其中包含以下属性: 我通过在测试步骤中键入其相对路径手动将此属性文件导入属性测试步骤。然后我有一个测试用例,它从文件中输入名称并确保它返回的输出是正确的头发和眼睛。现在,我想测试的不仅仅是一个人。假设我有另一个名为Jake的属性文件: 如果我想切换属性文件,我知道的唯一方法是在我想运行新测试时手动输入该属性文件的路径。我有没有办法实现一个Groovy脚本,在属性测

  • 它在Jenkins slave上工作得很好,但我想为SOAPUI测试用例添加另一个Jenkins slave。但是相同的windows批处理命令在新机器上不起作用。 我在机器上的Jenkins控制台输出中得到以下消息: 我需要在那台机器上设置什么才能使它工作吗? 最后一次编辑:在我们公司,我们有有限的用户帐户。所以我不得不把这个任务交给管理员。他在奴隶身上设置了一些东西,现在对两个奴隶都起同样的作