加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

本地GAE java dev服务器的Google Pub / Sub测试策略

发布时间:2020-12-15 00:36:26 所属栏目:Java 来源:网络整理
导读:我的团队和我非常希望在我们的应用程序中包含Google Pub / Sub,因为它将解决一些耦合问题. 我们遇到的问题是如何结合 java appengine dev服务器进行本地集成测试. 到目前为止我做了什么: 启动pub子模拟器并设置PUBSUB_EMULATOR_HOST 环境变量 在java dev服
我的团队和我非常希望在我们的应用程序中包含Google Pub / Sub,因为它将解决一些耦合问题.
我们遇到的问题是如何结合 java appengine dev服务器进行本地集成测试.

到目前为止我做了什么:

>启动pub子模拟器并设置PUBSUB_EMULATOR_HOST
环境变量
>在java dev服务器中启动我们的应用程序
它创建主题和订阅,然后发送一些消息
到主题.

我假设我做错了,因为:

>在云中创建的主题和订阅(当然它们应该在pubsub模拟器中创建?)
>消息被推送,我们收到消息ID但没有到达端点或在云或模拟器中报告错误.

从这一点来看,我非常确定开发服务器没有接收到模拟器.

我对测试策略也有一些更深层次的问题.本地集成测试在当今时代是否真的可行,越来越多的服务成为云计算的一部分.我们是否应该更多地关注针对云实例本身运行的集成测试套件?如果是这样,在部署到云测试环境之前,如何确保开发人员对其代码有信心,这不会显着增加反馈循环吗?

UPDATE

使用Google Java API Client PubSub构建器类,我能够从本地配置注入一个url(localhost:8010),现在允许我成功发布到本地模拟器.

Pubsub client = new Pubsub.Builder(httpTransport,jsonFactory,initializer)
.setApplicationName(getProjectId())
.setRootUrl(rootUrl).build();

我强迫端口用于简化我的团队其余部分的设置,而不是依赖于动态变化的端口.

gcloud beta emulators pubsub start --host-port localhost:8010

现在,在模拟器上成功创建了主题,订阅和消息.不幸的是,我仍然没有将消息推送到注册的端点.

更新2

gcloud版本120.0.0似乎改进了一些东西,但我现在收到以下错误:

{
  "code" : 400,"message" : "Payload isn't valid for request.","status" : "INVALID_ARGUMENT"
}

解决方法

将修复本地pubsub服务器的gcloud实用程序的最新更新.这个问题解决了它: https://code.google.com/p/cloud-pubsub/issues/detail?id=41

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读