Записать результаты TestStand через приложение .net во внешнюю базу данных. - PullRequest
0 голосов
/ 23 марта 2012

Я ищу решение, в котором мне нужно записывать результаты TestStand Tests в базу данных через предопределенный API, к которому можно получить доступ в последовательности тестов.В настоящее время результаты теста записываются в базу данных через ODBC и путем явной записи операторов SQL в TestStand.Я хочу вместо этого написать приложение, скажем, в .Net и инкапсулировать эти вызовы операторов SQL внутри него.

Это вообще выполнимо?Могу ли я написать приложение, собрать DLL, загрузить его в TestStand и через .Net Adpater сделать его доступным для последовательности тестов.

Чтобы сделать процесс еще хуже, приложение actall .Net будет использовать веб-сервис, который будет выполнять фактическую запись в базу данных.

Это мой первый опыт работы с TestStand, и я не уверен, что на правильном пути.Большинство документов, которые я просеял, похоже, не намекают на экстернализацию взаимодействия с базой данных через сторонний объект (.Net, Active X или любую DLL).

Буду признателен за ваши комментарии к этому

Спасибо, кен.

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Пока ваше приложение / библиотека .NET полностью функционально (может записывать в базу данных и все такое), вы можете абсолютно точно вызывать вашу сборку .NET, используя адаптер модуля .NET из TestStand. Не должно быть проблемой.

Одна вещь, которую я бы порекомендовал: То, куда вы поместите шаг .NET, будет зависеть от того, хотите ли вы, чтобы взаимодействие с базой данных происходило только для определенного тестируемого устройства (т. Е. Из одной последовательности), или вы хотите, чтобы взаимодействие с базой данных происходило для нескольких типов устройств, для которых протестировано (т. е. несколько последовательностей / файлов последовательностей).

Если это первый случай, вам нужно, чтобы шаги базы данных .NET были указаны в файле последовательности клиента. Если это последнее (требуется взаимодействие с базой данных для любой выполняемой последовательности), вам, вероятно, потребуется поместить код взаимодействия с базой данных в модель процесса, а не в каждый отдельный файл последовательности клиента.

1 голос
/ 17 ноября 2013

Расширение ответа @ JJ:

Если вы хотите регистрировать результаты шагов, я бы рекомендовал использовать обратные вызовы [Edit>>Sequence File Callbacks], где вы разместите шаги, которые вызывают вашу службу.

Если вы хотите регистрировать данные только для определенного файла последовательности, поместите код регистрации в SequenceFilePostResultListEntry.

Если вы хотите регистрировать результаты шагов для всех последовательностей, вам нужно создать собственную модель процесса (или изменить одну из стандартных) и использовать ProcessModelPostResultListEntry.

В обоих случаях это обеспечит вызов вашего регистрационного кода для каждого шага, отмеченного RecordResult = True.Результаты шага передаются как параметры в последовательности обратного вызова.Тем не менее, также убедитесь, что вы отметили ThisContext.CallerDiscardsResults в обратном вызове, чтобы увидеть, не отключили ли какие-либо родительские шаги SequenceCall запись результатов.

Лично я считаю, что подход с использованием модели процесса - лучший путь, поскольку он обеспечивает большую гибкость.(и другие обратные вызовы для регистрации общего результата последовательности).

Обратите внимание, что существуют другие виды обратных вызовов (PreStep, PostStep, PostStepRunTimeError и т. д.), которые можно использовать для регистрации данных в других сценариях, отличных от результатов шага.

...