【问题标题】:Robot Framework data-driven automation testing: Can data derived from a database be used as a data source for a test template?Robot Framework 数据驱动自动化测试:从数据库中导出的数据能否用作测试模板的数据源?
【发布时间】:2014-10-01 22:39:31
【问题描述】:

我熟悉在数据驱动的 Robot Framework 测试中使用模板关键字,并且知道可以使用文本文件和 csv 文件等外部数据源来提供测试数据。但是,我工作的组织希望使用数据库中保存的数据作为测试用例数据的来源。有人知道这是否可能吗?我搜索了 Stack Exchange、Stack Overflow 和其他资源,但找不到答案或任何示例。

这是我熟悉的数据驱动方法的示例,只是为了让您了解我们现在所处的位置。

*** Settings ***
Library           Selenium2Library
Library           AFRCLibrary
| Test Template | Suspend Region

*** Variables ***


*** Test Cases ***
| Pillar 1 BPS 2019 Suspend Region | Pillar 1 | 2019 | BPS | BPS Region 1 | Pillar 1 BPS 2019 Suspend Region Comments |
| Pillar 2 FGS 2018 Suspend Region | Pillar 2 | 2018 | FGS | FGS Region 1 | Pillar 2 FGS 2018 Suspend Region Comments |

*** Keywords ***
| Suspend Region
| | [Arguments] | ${pillar} | ${year} | ${scheme} | ${region} | ${comments} |
| | Futures Open Application | http://ags125p01:8080/operationalsite/login | ff |
| | FuturesPublicsiteWM | root | gtn | http://ags125p01:8080/operationalsite/futures/maintain_budget |
| | Select Pillar | ${pillar} | ${year} |
| | Select Scheme | ${scheme} |
| | View |
| | Suspend And Confirm | ${region} | ${comments} |
| | Futures Close Application |
| |

【问题讨论】:

  • 只要设计得当,什么都能做。
  • 没错。你给我指明了正确的方向吗?
  • 不,我有工作。您需要能够编写需求、了解模式设计和规范化以及如何编写关系数据库的人员。如果不是你,请寻求帮助。
  • 我也是。我不是在问如何创建数据库模式。我在问如何将数据库中的数据集传递给机器人框架,以便机器人框架可以自动对其进行交互并作为测试用例运行。如果您没有时间帮助我,我对您为什么要回复感到困惑,尤其是当您认为这是一个数据库问题而并非如此时。这是一个与数据驱动的机器人框架相关的问题,也是一个完全有效的问题。
  • 请注意下面的答案。由知道什么是自动化验收测试并且不会将其与创建数据库混淆的人撰写。

标签: database templates robotframework automated-tests data-driven-tests


【解决方案1】:

不幸的是,使用测试模板或多或少需要在测试用例中对数据进行硬编码。然而,测试模板只不过是一个 for 循环的包装器。你可以这样做:

| | ${database_rows}= | Run sql query
| | ... | Select * from the_database where ...
| | 
| | :FOR | ${row} | IN | @{database_rows}
| | | Suspend Region | @{row}

当然,这需要您编写“运行 sql 查询”关键字或等效关键字来获取数据。

这样做的缺点是所有排列都被视为具有多个关键字的单个测试用例,而不是具有单个关键字的多个测试用例。

如果您想在数据库中每行有一个测试用例,您可以编写一个执行查询的脚本,使用查询结果生成一个测试套件文件,然后在生成的文件上运行 pybot。

【讨论】:

  • 非常感谢。这很有帮助! :-)
  • 只是想我会说你的最后一句话非常有用,也是我将推荐的方式。干杯!!
  • 这正是我们为 Robot Framework 所做的,但将原始数据保存在外部数据库中,然后使用查询关键字将任何所需的测试拉入 Robot,或者如果我们只使用外部文件需要填充数据库进行测试。
猜你喜欢
  • 1970-01-01
  • 2015-06-30
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多