我正在研究一种解决方案,我必须通过可在测试序列中访问的预定义API将TestStand Tests的结果写入数据库。 目前,将测试结果写入数据库的方式是通过ODBC并通过显式将SQL语句写入TestStand。我希望,而是在.Net中编写一个应用程序,并在其中封装这些SQL语句调用。
这可行吗?我可以编写应用程序,构建DLL,将其加载到TestStand中,并通过.Net Adpater使其可用于测试序列。
为了使这个过程更加糟糕,实际的.Net应用程序将使用webservice来实际写入数据库。
这是我第一次使用TestStand,我不确定自己是否在正确的轨道上。我筛选的大多数文档似乎都没有暗示通过第三方对象(.Net,Active X或任何DLL)将数据库交互外部化。
非常感谢您对此的评论
谢谢 肯
答案 0 :(得分:2)
只要.NET应用程序/库完全正常运行(可以写入数据库等),就可以使用TestStand中的.NET模块适配器完全调用.NET程序集。不应该是一个问题。
我建议一件事: 放置.NET步骤的位置将取决于您是否希望数据库交互仅针对正在测试的特定设备(即,从一个序列)发生,或者您希望数据库交互发生在多种类型的正在测试的设备(即多个序列/序列文件)。
如果是第一种情况,您需要在客户端序列文件中使用.NET数据库步骤。 如果是后者(希望数据库交互运行的任何序列),您可能希望将数据库交互代码放在流程模型中而不是每个客户端序列文件中。
答案 1 :(得分:1)
扩大@J.J的回答:
如果您想记录步骤结果,我建议您使用回调[Edit>>Sequence File Callbacks
],您可以在其中放置调用服务的步骤。
如果您只想记录特定序列文件的数据,请将记录代码放在SequenceFilePostResultListEntry
中。
如果要记录所有序列的步骤结果,您需要创建自己的自定义流程模型(或修改其中一个标准流程模型)并使用ProcessModelPostResultListEntry
。
在这两种情况下,这将确保为标记为RecordResult = True
的每个步骤调用您的日志记录代码。步骤结果作为参数传递到回调序列中。但是,还要确保在回调中检查ThisContext.CallerDiscardsResults
以查看是否有任何父SequenceCall步骤已禁用结果记录。
就个人而言,我认为过程模型方法是最好的方法,因为它提供了更大的灵活性(以及其他回调来记录整个序列结果)。
请注意,还有其他类型的回调(PreStep,PostStep,PostStepRunTimeError等),您可以使用这些回调来记录除步骤结果之外的其他方案中的数据。