如何测试和调试适配器

调试运行时问题通常需要一种多层次的方法。 必须从多个源(例如软件跟踪、性能计数器、事件日志条目、Windows Management Instrumentation (WMI) 事件和调试源代码收集数据,以确定问题或软件 bug 的原因。

由于接收和发送适配器在 BizTalk 服务的地址空间中运行,因此调试器需要附加到 BtsNtSvc.exe 进程来调试适配器。 但是,对于隔离接收适配器,调试器需要附加到承载适配器的进程。

应在适配器的运行时代码中加入跟踪代码,以捕获运行时诊断信息,用于故障排除。 可以使用 Microsoft Enterprise Instrumentation Framework (EIF) 执行此作。 通常,为不同级别的严重性添加跟踪语句非常有用,例如,仅跟踪错误条件、跟踪错误和警告,最后跟踪错误、警告和信息性语句。 此外,更复杂的适配器可能具有独立的子系统,这些子系统需要彼此隔离地进行跟踪。 例如,适配器可能具有网络子系统和核心子系统;在某些情况下,为所有子系统启用跟踪可能会产生过多的“干扰”。

应添加性能计数器以在运行时捕获速率和值,以提供有关适配器的运行时行为的详细信息。 例如,适配器可能会针对每个终结点发送的原始消息数以及每秒发送的消息速率发布性能计数器。

WMI 事件在某些严重错误情境中也很有用。 例如,如果适配器遇到导致它关闭接收位置的严重错误,触发 WMI 事件可让管理员侦听该事件并采取适当的作。

适配器测试

为 BizTalk Server 开发自定义适配器时,请记住,应将其开发达到企业级软件的质量标准。 这意味着你需要在寄送适配器之前彻底测试适配器。 虽然它并未完全详细说明如何测试适配器,但本部分给出了需要做什么的想法。 通常,运行时代码(如适配器)的测试应涵盖三大类:功能测试、压力测试和性能测试。

函数测试

适配器应针对其功能的所有情况进行测试,包括正测试和负测试。 阳性测试应包括但不限于以下方案:

  • 接收消息

  • 发送消息

  • 使用动态端口传输消息

  • 禁用接收位置

  • 更新配置

  • 确保服务窗口正常运行,以支持接收和发送适配器

  • 确保事务型适配器的事务完整性

    负面测试应包括但不限于:

  • 接收不良消息

  • 接收混合批消息、一些好消息和一些坏消息

  • 传输失败

  • 重试成功

  • 重试失败,切换到下一个传输方式成功

  • 移动到下一个传输通道失败,暂停消息

  • 传输混合批消息

  • 数据库故障转移

压力测试

适配器是运行时组件,因此应满足运行时软件的严格要求。 通常,压力测试是通过在负载下运行一段时间的方案执行的。 应进行高应力和低应力的失效间隔时间测试,使适配器在测量的时间段内在负载下运行。

这些测试的一些粗略准则可能在高压力下运行适配器大约 72 小时,其中通过适配器的消息数导致 CPU 利用率约为 80% 到 90%。 对于低压力,CPU 利用率大约为 30% 到 40%, 大约 120 小时。

性能测试

应考虑到性能来开发适配器。 发布适配器之前,应验证其性能。 请务必确保其性能可以纵向扩展和横向扩展,即:添加更多的 CPU 会导致性能增加,添加更多的计算机也会导致性能增加。 分析代码有助于消除性能瓶颈。