自动化测试编排

Automated testing an Orchestration

我有一个从数据库轮询数据的编排(实际上由 ERP 使用,所以我无法操作该数据库中的数据),一旦轮询端口找到匹配的数据,它就会执行编排并发送数据到第三方网络服务。

此编排中使用的逻辑很复杂并且经常容易发生变化,因此用适当的测试集覆盖它很重要。我考虑了一段时间,甚至想到了使用 3 个不同的组件,这样,

  1. 第一部分(只能是2个端口)从数据库中读取数据并放入文件夹

  2. 第二个(当前编排)使用文件端口读取数据并由第一个组件转储,并将生成的文件转储到另一个文件夹

  3. 第三个组件读取第二个组件转储的文件并将其发送到网络服务

不过我不太担心,

  1. 当涉及到 BizTalk 时,这是一种不受欢迎的做法吗?或者这是正常的做事方式?

  2. 性能 - 与当前解决方案相比会慢很多吗?

  3. 我们目前正在使用其中一台服务器 运行 使用 BTDF 和 Jenkins 进行测试/构建。有没有办法禁用组件 1 和 3,运行 测试并在构建完成后重新启用它们,以便它可以正常运行?

我建议不要使用这种方法。您最好让三个编排直接绑定到 MessageBox 并订阅前一个编排发布的消息。您还可以创建订阅这些消息的发送端口,或者只使用管理控制台来调试消息。

您还可以为各种任务编写单元测试。如果您在 .NET 帮助程序库中做一些工作,您可以拥有一个普通的旧单元测试项目。您可能还想查看 BizUnit 框架 (https://bizunit.codeplex.com/) - 它需要一点时间才能习惯,但它是编写 BizTalk 单元测试的重要资源。

您可以使用 MessageBox 的内置功能避免写入和读取文件的开销。首先从这里开始:https://msdn.microsoft.com/en-us/library/aa949234.aspx

有一个出色的 Biztalk 示例,它展示了如何使用这种方法将您的功能模块化为一组编排,这些编排独立地读取和写入 MessageBox。它在上一页的底部被引用并被称为 "Direct Binding to the MessageBox Database in Orchestrations".