0

我正在寻找一种解决方案,我必须通过可以在测试序列中访问的预定义​​ API 将 TestStand 测试的结果写入数据库。目前将测试结果写入数据库的方式是通过 ODBC 并将 SQL 语句显式写入 TestStand。我想改为在 .Net 中编写一个应用程序,并将这些 SQL 语句调用封装在其中。

这完全可行吗?我可以编写应用程序、构建 DLL、将其加载到 TestStand 并通过 .Net Adpater 使其可用于测试序列。

更糟糕的是,实际的 .Net 应用程序将使用将实际写入数据库的 web 服务。

这是我第一次使用 TestStand,我不确定我是否走在正确的轨道上。我筛选的大多数文档似乎都没有暗示通过第三方对象(.Net、Active X 或任何 DLL)外部化数据库交互。

非常感谢您对此的评论

谢谢你,肯。

4

2 回答 2

2

只要您的 .NET 应用程序/库功能齐全(可以写入数据库等等),您绝对可以使用来自 TestStand 的 .NET 模块适配器调用您的 .NET 程序集。应该不是问题。

我会推荐一件事:您将 .NET 步骤放在哪里取决于您是否希望数据库交互仅针对正在测试的特定设备(即,从一个序列)发生,或者您希望数据库交互发生在多个正在测试的设备类型(即,多个序列/序列文件)。

如果是第一种情况,您需要在客户端序列文件中包含 .NET 数据库步骤。如果是后者(想要运行的任何序列的数据库交互),您可能希望将数据库交互代码放在流程模型中,而不是放在每个单独的客户端序列文件中。

于 2012-03-29T18:17:35.870 回答
1

扩展@JJ的答案:

如果您想记录步骤结果,我建议您使用回调 [ Edit>>Sequence File Callbacks] 来放置调用您的服务的步骤。

如果您只想记录特定序列文件的数据,请将您的记录代码放在SequenceFilePostResultListEntry.

如果要记录所有序列的步骤结果,则需要创建自己的自定义流程模型(或修改标准流程模型之一)并使用ProcessModelPostResultListEntry.

在这两种情况下,这将确保您的日志记录代码在标有 的每个步骤中都被调用RecordResult = True。步骤结果作为参数传递到回调序列中。但是,还要确保您签ThisContext.CallerDiscardsResults入回调以查看是否有任何父 SequenceCall 步骤禁用了结果记录。

就个人而言,我认为流程模型方法是最好的方法,因为它提供了更大的灵活性(以及记录整体序列结果的其他回调)。

请注意,除了步骤结果之外,您还可以使用其他类型的回调(PreStep、PostStep、PostStepRunTimeError 等)在其他场景中记录数据。

于 2013-11-17T15:09:00.997 回答