在SoapUI测试用例中使用Excel DataSink与VLOOKUP的替代方法?

时间:2017-10-06 12:15:23

标签: soapui

我目前在SoapUI NG Pro中有以下测试用例,其目的是在数据库表(Product)中创建包含另一个表(ProductType)的外键的新记录。我目前的测试设置如下:

  1. JDBC DataSource,用于检索ProductType表中记录的ID和描述
  2. DataSink将这些ID和描述保存到工作表1中的Excel工作簿中。在工作表2中,我有一个要在POST中使用的产品名称和产品类型的列表。然后,我使用VLOOKUP根据工作表1中的值
  3. 填充工作表2中的ProductTypeId
  4. DataSource Loop
  5. 从工作簿的工作表2中提取的Excel DataSource
  6. 使用数据源中的Name和ProductTypeId值的POST REST请求
  7. DataSource Loop
  8. 目前这种情况非常有效,但我有两个问题:

    1. SoapUI项目使用Visual Studio进行版本控制,Excel工作簿应该与项目一起检查,但这意味着每次我想运行DataSink步骤时都需要检查Excel工作簿。
    2. 当项目移动到另一个环境时,服务器可能没有Excel实例
    3. 因此,我希望保留SoapUI中包含的所有数据源(例如,使用网格类型)

      我已经玩过使用网格数据源和使用Property Transfer步骤,但我已经陷入困境。

      不幸的是,我以前没有编写groovy脚本的经验,只知道一点XPath。

      我正在使用SoapUI NG Pro 2.0。

      任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:0)

使用db,而不是使用Excel。尝试在循环中添加另一个jdbc步骤来执行查找...

  1. JDBC DataSource,用于检索ProductType表中记录的ID和描述
  2. JDBC步骤,根据步骤1中的当前Product.ProductType查找ProductType.Id。
  3. POST REST请求。从步骤1获取ProductName和Product Type,从步骤2获取产品类型ID。
  4. 循环
  5. 我不知道数据步骤的大小,因此第2步可能在性能方面有点贵,但好处是你不需要任何Groovy脚本,也不需要你需要的qwill在项目或文件中存储任何测试数据。