【问题标题】:How can I make integration tests with google cloud bigquery如何使用 google cloud bigquery 进行集成测试
【发布时间】:2018-08-26 10:07:54
【问题描述】:

我们正在从 apache hbase 迁移到 bigquery。

目前我们有端到端的测试(使用黄瓜),可以与运行 hbase 的 docker 容器一起使用。

似乎没有任何 bigquery docker 容器或模拟器 (https://cloud.google.com/sdk/gcloud/reference/beta/emulators/)

我们如何才能为使用 bigquery 的应用程序创建端到端测试?

【问题讨论】:

  • 能否直接使用真正的 bigquery 端点进行端到端测试?

标签: java continuous-integration google-bigquery integration-testing


【解决方案1】:

目前没有任何类型的 BigQuery 本地模拟器或类似的东西。正如您分享的关于 available GCP emulators 的链接所指出的,还有一些其他产品具有这样的功能,但 BigQuery 没有这样的功能的原因可能是它的真正潜力只有在其实际基础架构中工作时才能看到,另外事实上,使用 BigQuery 的成本可能相对较低,具体取决于您对它的使用情况,而且您可以开始使用免费套餐。

让我总结一些对您有用的 BigQuery 定价信息:

无论如何,如果您仍然认为直接使用 BigQuery 不是您的最佳选择,可以随时通过在 Public Issue Tracker 中为 BigQuery 创建功能请求将您的请求转发给工程团队,尽管它会由工程团队决定是否(以及何时)实现这样的功能,更要考虑到 BigQuery 的复杂性以及它的性能已针对在其当前架构中的工作进行了优化。

【讨论】:

  • 您是否推荐任何可直接与 BigQuery 配合使用的集成测试工具?一些非常简单的事情 - 运行这几个 SQL 查询并将结果与​​包含预期结果的表进行比较。
  • @Datageek,这取决于您使用的编程语言。
  • Google 现已正式接受模拟器的功能请求 (issuetracker.google.com/savedsearches/559654)。他们建议人们在该列表中加注星标,以便他们可以在接受的功能请求中对其进行排名。
【解决方案2】:

这是一篇旧文章,但如果您可以使用 Python,并且您计划测试您的 SQL 并根据输入断言您的结果,我建议bq-test-kit。该框架允许您在 Python 中与 BigQuery 进行交互,并使测试变得可靠。

您有 3 种方式向其中注入数据:

  • 创建能够隔离名称的数据集和表,从而拥有自己的命名空间
  • 依赖临时表,其中使用数据文字插入数据
  • 数据字面量合并到您的查询中

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-01-23
    • 2021-12-07
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 2013-04-07
    • 2019-12-17
    相关资源
    最近更新 更多