集成测试多个芹菜工人和数据库支持的Django API

 公民不是百姓2 发布于 2023-01-17 11:42

我和具有多个芹菜工人软件导向架构的工作(我们姑且称之为worker1,worker2worker3).所有三个工作者都是独立的实体(即,单独的代码库,单独的存储库,单独的芹菜实例,单独的机器),并且它们都没有连接到Django应用程序.

与这三个工作者中的每一个进行通信的是基于Django的MySQL支持的RESTful API.

在开发过程中,这些服务都在一个流浪盒上,每个服务器都作为一个单独的端口运行的独立机器.我们为所有Celery任务提供了一个RabbitMQ代理.

通过这些服务的典型路径可能如下所示:worker1从设备获取消息,执行某些处理,对任务进行排队worker2,进行进一步处理并对其进行POST API,从而写入MySQL数据库并触发任务on worker3,它执行一些其他处理并对其进行另一个POST,API从而导致MySQL写入.

服务沟通很好,但每次我们对任何服务进行更改时测试此流程都非常烦人.我真的希望得到一些完整的集成测试(即,从发送到worker1整个链的消息开始),但我不知道从哪里开始.我面临的主要问题是:

如果我排队worker1,我怎么能分辨出整个流程何时结束?当我不知道结果是否已经到达时,如何对结果做出合理的断言呢?

如何处理数据库设置/拆除?我希望在每次测试结束时删除测试期间所有条目,但如果我从Django应用程序外部开始测试,我不确定如何有效地清除它.手动删除它并在每次测试后重新创建它似乎可能是太多的开销.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有