【问题标题】:SoapUI datasource always reference last valueSoapUI 数据源始终引用最后一个值
【发布时间】:2014-09-11 15:53:25
【问题描述】:

在soapUI中,我通过这个代码在groovy脚本中引用一个数据源值。

 "${context.expand( '${DataSource#dpid}')}"

我可以在结果中看到替换的值,但它只给了我最后一个值。我试过使用文件和网格数据源。两者的结果相同。如何配置数据源,使其从第一个值开始并迭代到最后一行。 (我添加了一个数据循环步骤并将目标作为 groovy 脚本)。谢谢!

【问题讨论】:

  • 什么版本的 SoapUI?您为 DataSource 步骤打开了哪些选项?
  • @SiKing,SoaUI pro 5.0.0。在“为数据源设置选项”面板上,我选中了“运行时重新启动”和“扩展”。
  • 我一直在使用各种数据源,从来没有遇到过问题。一定有别的事情发生。发布步骤重现!见:stackoverflow.com/help/mcve
  • @SiKing ,我在想我还能提供什么。如果我在 groovy 脚本中执行一个简单的log.info(context.expand( '${DataSource#dpid}')),它会打印出最后一个值。当我运行数据源 I 时,我可以看到所有行都已从文本文件中获取,并且我可以在带有 msg "Got7 rows in 0ms" 的“数据日志”窗口中看到它们,这意味着可以使用数据。我以正确的方式使用它吗?是否需要在 context.expand 语句中添加其他内容。

标签: groovy soapui


【解决方案1】:

我认为您误解了 SoapUI,尤其是 DataSource 步骤的工作原理。

当您创建/调试您的测试时,您通常会在 DataSource 步骤上按播放,并在弹出窗口中输入一个值。这将检索指定数量的步骤并在数据日志中显示给您。当您在测试中“播放”引用您的 DataSource 值的后续步骤之一时,只会展开最后一个检索到的步骤。

当您运行整个测试时,假设您正确设置了所有内容,测试将遍历所有值,一次一个。当您运行测试时,您可以看到soapui 日志打印出诸如“当前行= X”之类的消息。您还可以查看测试步骤的历史记录,或者您可以插入一个简单地将值打印到日志log.info(context.expand( '${DataSource#dpid}')) 的步骤,您应该会看到所有值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 2021-09-08
    • 2013-02-03
    • 2017-10-26
    相关资源
    最近更新 更多