Автоматизация DTM с использованием DSSO и XML-RPC.NET - PullRequest
0 голосов
/ 26 октября 2010

Пытаясь автоматизировать тестирование WHQL, используя ОДИН И ЕДИНСТВЕННЫЙ документ, доступный по теме: http://www.microsoft.com/whdc/devtools/wdk/dtm/dtm_dsso.mspx

Я поиграл с примером кода и могу подключиться, перечислить устройства и т. Д. Оттуда ясоздал новый проект, класс .NET 2.0 C #:

using System;
using System.Reflection;
using System.IO;
using CookComputing.XmlRpc;
using Microsoft.DistributedAutomation.DeviceSelection;
using log4net;

class WhqlXmlRpcService : XmlRpcService
{
    private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
    public static DeviceScript deviceScript;

    [XmlRpcMethod("connect")]
    public Boolean Connect(String dtm)
    {
        Boolean retVal = false;
        deviceScript = new DeviceScript();
        try
        {
            deviceScript.ConnectToNamedDataStore(dtm);
            retVal = true;
        }
        catch (Exception e)
        {
            Log.Debug("Error: " + e.Message);
        }

        return retVal;
    }
}

Я использую XML-RPC.NET для создания сервера, размещенного на IIS (с использованием ASP.NET 2.0).DTM Studio устанавливается в C: \ Inetpub \ wwwroot \ xmlrpc \ bin, там же, где и цель моего класса, чтобы гарантировать отсутствие проблем с разрешением с дюжиной или около того .dll, на которую я ссылаюсь (в соответствии с инструкциями DSSOдок).Я попытался добавить необходимые библиотеки DSSO в GAC, чтобы избежать этого, но не у всех из них есть строгие имена.Таким образом, несмотря на то, что он может видеть все библиотеки, с которыми ему нужно скомпоноваться (а приложения Studio прекрасно работают в нестандартном месте), попытка .ConnectToNamedDatastore ("nameofDTM") по-прежнему приводит к следующему:

xmlrpclib.Fault: <Fault 0: 'Could not connect to the controller to retrieve information.  Several issues can cause this error including missing or corrupt files from the installation, running the studio application from a folder other than the install folder, and running an application that accesses the scripting APIs from a folder other than the installation folder.'>

Я обращаюсь к API-интерфейсам сценариев из папки установки, так как это тот же каталог, что и мой веб-сервис .dll, и файлы не повреждены, потому что, если я вставлю .exe с примером кода DSSO втот же каталог, в котором я вижу, что он отлично подключается в отладчике.

Я нахожусь в конце этого пути и не смог найти полезного источника информации DTM / DSSO где-либо.

Кто-нибудь делал что-то подобное в прошлом или имел какой-либо успех в автоматизации своего тестирования WHQL?

1 Ответ

0 голосов
/ 27 октября 2010

Мне не удалось заставить это работать с использованием веб-службы ASP.NET .dll, однако я смог получить доступ к API-интерфейсу DSSO, сделав свой сервер RPC XML доступным с помощью класса HttpListener в .NET. Если вы развертываете целевое приложение в том же каталоге, что и DTM Studio, все работает должным образом.

Пример использования XML-RPC.NET с HttpListener приведен в следующих статьях: http://www.cookcomputing.com/blog/archives/000572.html

Примечание: «ListenerService» был включен в последние версии XML-RPC.NET со времени публикации выше. Его можно найти в разделе CookComputing.XmlRpc.XmlRpcListenerService

...