【问题标题】:Oracle/SQL Query in the TFS Build DefinitionTFS 构建定义中的 Oracle/SQL 查询
【发布时间】:2018-10-02 14:44:27
【问题描述】:

我想在 Newman 的一个 Web 服务项目中介绍 CI 测试。所以一旦构建准备好,就会执行 cmd newman 脚本进行验证。

我的主要目标是将数据库值 (SQL/Oracle) 与 JSON 响应正文进行比较。目前我正在将数据库查询结果导出到 CSV 文件,并通过 Postman 对 JSON 响应进行验证。

我的问题是,

  1. 有什么方法可以在 TFS 中创建一个 cmd 构建定义,以便将查询结果以 CSV 格式导出到指定文件夹。 (将 Oracle/SQL 查询导出到 csv 的命令就可以了)

  2. 您能否建议我以自动化方式从 DB 生成 CSV 文件并在 newman 工具启动之前将其添加到构建定义中的任何其他可能方式。 (就像添加到构建定义中的 VB 脚本文件一样)

非常感谢。

【问题讨论】:

  • 您可以在 PL/SQL 中构建通用 CSV 转换器,例如 this one。不过,我对 TFS CI 自动化一无所知。

标签: sql oracle tfs continuous-integration build-definition


【解决方案1】:

您仍然可以在 TFS 构建管道中使用 NewMan PostMan。

如果你在 TFS2017 及更高版本上工作,你可以直接使用这个 3-rd 方扩展——Newman the cli Companion for Postman

如果您正在使用 TFS2015,在 vNext 构建中调用 newman 工具也很容易。您只需要添加两个构建步骤:npmCommand Line

更多详细步骤请看这篇博客:Postman – Continuous Integration with TFS/VNext Builds

【讨论】:

  • 您好帕特里克,感谢您的详细信息。我知道我可以在构建定义中使用 Newman。为了验证 Json 响应,我需要从 SQL/Oracle DB 创建一个数据文件作为 CSV 文件,并将其放在 Postman 集合文件位置。这样该文件将由 Newman 获取,并针对我们从数据库中获取的数据文件验证我的 Json 响应。有没有办法添加命令行来运行 Oracle/SQL 查询以将数据从 DB 导出到所需位置。那么这个数据会在运行过程中被newman拿走
【解决方案2】:

如果你对产品的实现不是太深入,一个更有效的方法是比较oracle中的数据它在db中。您可以灵活地搜索。 Oracle 现在也可以加载或选择 json 格式的数据。 由于需要连接数据库来提取数据,所以我猜这个产品是在连接的环境中。

【讨论】:

  • 感谢 Vijay 的更新。正如您所说的在 Oracle 中加载 Json 格式并比较数据,我们可以做到这一点。然而,我们更喜欢像 CI 方式的验证,我们也有 SQL 数据库。所以我认为从数据库源导出到 CSV 会更好
【解决方案3】:

可以在newman之前添加一个powershell脚本任务来导出查询结果:

$SQLquery = 'Select * From xxx'
$queryresult = invoke-sqlcmd -query $SQLquery -serverinstance "SQLServer" -database 'dbname' 
$queryresult |export-csv "D:\paht\file.csv" -notypeinformation

【讨论】:

    猜你喜欢
    • 2018-08-15
    • 2018-04-27
    • 2021-11-14
    • 2021-10-26
    • 2011-07-12
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    相关资源
    最近更新 更多