Протестируйте интегрирование клиентских данных против MATLAB

Этот пример показывает вам, как протестировать ваш УСПОКОИТЕЛЬНЫЙ API или клиент Java® для развертывания против MATLAB® Production Server™ с помощью интерфейса тестирования в приложении Production Server Compiler. Для тестирования вы будете создавать и использовать функцию MATLAB под названием addmatrix, который принимает две числовых матрицы как входные параметры и возвращает их сумму как вывод.

К интерфейсу тестирования можно получить доступ путем нажатия кнопки Test Client в приложении Production Server Compiler. Приложение Production Server Compiler является частью MATLAB Compiler SDK™.

Создайте функцию MATLAB

  1. Запишите функцию MATLAB под названием addmatrix, который принимает две числовых матрицы как входные параметры и возвращает их сумму как вывод. Сохраните этот файл как addmatrix.m.

     addmatrix.m

  2. Протестируйте функцию в подсказке команды MATLAB.

    a = [10 20 30; 40 50 60];
    b = [100 200 300; 400 500 600];
    c = addmatrix(a,b)
    c =
    
       110   220   330
       440   550   660

Подготовьтесь к тестированию

  1. Откройте приложение Production Server Compiler путем ввода следующего в подсказке команды MATLAB:

    productionServerCompiler

  2. В разделе Type панели инструментов выберите Deployable Archive (.ctf) из списка.

  3. Задайте функции MATLAB, чтобы развернуться.

    1. В разделе Exported Functions панели инструментов щелкните плюс кнопка.

    2. Используя файловый менеджер, найдите и выберите файл addmatrix.m.

  4. В разделе, названном Include MATLAB function signature file, нажмите кнопку Create File. Это создаст доступный для редактирования файл JSON, который содержит функциональные подписи функций, включенных в архив. Путем редактирования этого файла можно задать типы аргумента и/или размеры вводов и выводов, и также обеспечить справочную информацию для каждых из входных параметров. Для получения дополнительной информации смотрите Подписи функции MATLAB в JSON (MATLAB Production Server).

    Если вы имеете существующий файл JSON с функциональными подписями, нажимаете кнопку Add Existing File, чтобы добавить что файл вместо кнопки Create File.

    Включением этой информации в вашем архиве можно использовать сервисную функциональность открытия на сервере.

    Примечание

    Только MATLAB Production Server УСПОКОИТЕЛЬНЫЙ API поддерживает сервис открытия. Для получения дополнительной информации смотрите УСПОКОИТЕЛЬНЫЙ API (MATLAB Production Server).

  5. Нажмите кнопку Test Client. Приложение переключится на вкладку TEST.

    1. Проверяйте значение поля Port.

      Это должно быть:

      • доступный порт

      • тот же номер порта клиент использует

      В данном примере клиент будет использовать порт 9910.

    2. Установите флажок к Enable CORS. Эта опция должна быть включена, если вы используете клиент, который использует JavaScript®. Путем включения CORS сервер примет запросы от различных областей.

    3. Установите флажок к Enable Discovery. Этой опции нужно позволить использовать сервис открытия. Сервис открытия возвращает информацию о развернутых функциях MATLAB как объект JSON.

  6. Нажмите Start.

Протестируйте Используя УСПОКОИТЕЛЬНЫЙ API

Этот пример использует Интерфейс HTTP MATLAB (MATLAB), чтобы вызвать RESTful API и выполнить запросы к интерфейсу тестирования. Можно использовать другие инструменты такое ЗАВИХРЕНИЕ или JavaScript XHR.

Протестируйте сервис открытия

  1. Импортируйте пакеты Интерфейса HTTP MATLAB, установите запрос и отправьте запрос к интерфейсу тестирования.

    % Import MATLAB HTTP Interface packages
    import matlab.net.*
    import matlab.net.http.*
    import matlab.net.http.fields.*
    
    % Setup request
    requestUri = URI('http://localhost:9910/api/discovery');
    options = matlab.net.http.HTTPOptions('ConnectTimeout',20,...
        'ConvertResponse',false);
    request = RequestMessage;
    request.Header = HeaderField('Content-Type','application/json');
    request.Method = 'GET';
    
    % Send request
    response = request.send(requestUri, options);
    

  2. Просмотрите орган по ответу.

    response.Body.Data
    ans = 
    
        "{"discoverySchemaVersion":"1.0.0","archives":{"matfun":{"archiveSchemaVersion":"1.1.0",...
    Орган по ответу был отрезан, чтобы соответствовать странице. Отформатированная версия органа по ответу может быть найдена путем расширения ans.

     ans

    Чтобы протестировать использование JavaScript XHR, можно использовать следующий код:

     JavaScript код XHR для тестирования сервиса открытия

Тестирование обмена данными

  1. Запустите отдельный сеанс рабочего стола MATLAB. Это вызвано тем, что вы не можете отправить запрос POST от того же сеанса работы с MATLAB, который запускает интерфейс тестирования.

  2. Импортируйте пакеты Интерфейса HTTP MATLAB, установите запрос и отправьте запрос к интерфейсу тестирования.

    % Import HTTP interface packages
    import matlab.net.*
    import matlab.net.http.*
    import matlab.net.http.fields.*
    
    % Setup message body
    body = MessageBody;
    a = [10 20 30; 40 50 60];
    b = [100 200 300;400 500 600];
    payload = mps.json.encoderequest({a,b});
    body.Payload = payload;
    
    % Setup request
    requestUri = URI('http://localhost:9910/matfun/addmatrix');
    options = matlab.net.http.HTTPOptions('ConnectTimeout',20,...
        'ConvertResponse',false);
    request = RequestMessage;
    request.Header = HeaderField('Content-Type','application/json');
    request.Method = 'POST';
    request.Body = body;
    
    % Send request
    response = request.send(requestUri, options)
  3. Просмотрите орган по ответу.

    response.Body.Data
    ans = 
    
        "{"lhs":[[[110,220,330],[440,550,660]]]}"

    Чтобы протестировать использование JavaScript XHR, можно использовать следующий код:

     JavaScript код XHR для тестирования обмена данными

Исследуйте данные

  1. Переключитесь на приложение Production Server Compiler.

  2. В интерфейсе тестирования, под MATLAB Execution Requests, кликают по завершенному сообщению в приложении, чтобы видеть значения, которыми обмениваются между клиентом и MATLAB.

  3. Нажмите Input, чтобы просмотреть массивы передал в MATLAB.

  4. Нажмите Output, чтобы просмотреть массив, возвращенный в клиент.

Установка точек останова

  1. В интерфейсе тестирования Production Server Compiler нажмите Breakpoints> Break on MATLAB function entry.

  2. В отдельном сеансе работы с MATLAB снова пошлите запрос POST серверу.

  3. Когда редактор MATLAB открывается, обратите внимание, что точка останова установлена в первой строке в функции и что обработка сделала паузу в точке останова.

    Теперь можно использовать все средства отладки MATLAB, чтобы продвинуться через функцию.

    Примечание

    Можно создать ошибку из-за тайм-аута в клиенте, если вам требуется много времени, продвигаясь через функцию MATLAB.

  4. Обратите внимание на то, что переменные a1 и a2 отображены в рабочем пространстве MATLAB.

  5. В редакторе MATLAB нажмите Continue, чтобы завершить процесс отладки.

    Раздел Server Requests приложения показывает что запрос, завершенный успешно.

  6. Нажмите Stop, чтобы завершить работу тестового сервера.

  7. Нажмите Close Test.

Тестирование Используя клиентское приложение Java

  1. Создайте файл Java MPSClientExample.java со следующим клиентским кодом:

     MPSClientExample.java

  2. В системной командной строке скомпилируйте клиентский код Java с помощью команды javac.

    javac -classpath "matlabroot\toolbox\compiler_sdk\mps_clients\java\mps_client.jar" MPSClientExample.java
    
  3. В системной командной строке запустите клиент Java.

    java -classpath .;"matlabroot\toolbox\compiler_sdk\mps_clients\java\mps_client.jar" MPSClientExample
    

    Примечание

    Вы не можете запустить клиент Java от подсказки команды MATLAB.

    Приложение возвращает следующее в консоли:

       110.0   220.0   330.0
       440.0   550.0   660.0

    Можно отладить данные, переданные между клиентом и MATLAB с помощью тех же шагов, перечисленных под Тестом Используя УСПОКОИТЕЛЬНЫЙ API.

Похожие темы