Этот пример показывает вам, как протестировать ваш УСПОКОИТЕЛЬНЫЙ API или клиент Java® для развертывания против MATLAB® Production Server™ с помощью интерфейса тестирования в приложении Production Server Compiler. Для тестирования вы будете создавать и использовать функцию MATLAB под названием addmatrix
это принимает две числовых матрицы как входные параметры и возвращает их сумму как выход.
К интерфейсу тестирования можно получить доступ путем нажатия кнопки Test Client в приложении Production Server Compiler. Приложение Production Server Compiler является частью MATLAB Compiler SDK™.
Запишите функцию MATLAB под названием addmatrix
это принимает две числовых матрицы как входные параметры и возвращает их сумму как выход. Сохраните этот файл как addmatrix.m
.
Протестируйте функцию в командной строке 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
Откройте приложение Production Server Compiler путем ввода следующего в командной строке MATLAB:
productionServerCompiler
В разделе Type панели инструментов выберите Deployable Archive (.ctf) из списка.
Задайте функции MATLAB, чтобы развернуться.
В разделе Exported Functions панели инструментов щелкните плюс кнопка.
Используя файловый менеджер, найдите и выберите addmatrix.m
файл.
В разделе, названном 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).
Нажмите кнопку Test Client. Приложение переключится на вкладку TEST.
Проверяйте значение поля Port.
Это должно быть:
доступный порт
тот же номер порта клиент использует
В данном примере клиент будет использовать порт 9910.
Установите флажок к Enable CORS. Эта опция должна быть включена, если вы используете клиент, который использует JavaScript®. Путем включения CORS сервер примет запросы от различных областей.
Установите флажок к Enable Discovery. Этой опции нужно позволить использовать сервис открытия. Сервис открытия возвращает информацию о развернутых функциях MATLAB как объект JSON.
Нажмите Start.
Этот пример использует Интерфейс HTTP MATLAB, чтобы вызвать RESTful API и выполнить запросы к интерфейсу тестирования. Можно использовать другие инструменты такое ЗАВИХРЕНИЕ или JavaScript XHR.
Интерфейс тестирования не поддерживает асинхронные клиентские запросы. Интерфейсные процессы POST Асинхронный Запрос (MATLAB Production Server) как POST Синхронный Запрос (MATLAB Production Server). Другие асинхронные запросы от УСПОКОИТЕЛЬНОГО API не поддерживаются.
Импортируйте пакеты Интерфейса 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);
Просмотрите орган по ответу.
response.Body.Data
ans = "{"discoverySchemaVersion":"1.0.0","archives":{"matfun":{"archiveSchemaVersion":"1.1.0",...
ans
.Чтобы протестировать использование JavaScript XHR, можно использовать следующий код:
Запустите отдельный сеанс рабочего стола MATLAB. Это вызвано тем, что вы не можете отправить запрос POST от того же сеанса работы с MATLAB, который запускает интерфейс тестирования.
Импортируйте пакеты Интерфейса 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)
Просмотрите орган по ответу.
response.Body.Data
ans = "{"lhs":[[[110,220,330],[440,550,660]]]}"
Чтобы протестировать использование JavaScript XHR, можно использовать следующий код:
Исследуйте данные
Переключитесь на приложение Production Server Compiler.
В интерфейсе тестирования, под MATLAB Execution Requests, кликают по завершенному сообщению в приложении, чтобы видеть значения, которыми обмениваются между клиентом и MATLAB.
Нажмите Input, чтобы просмотреть массивы передал в MATLAB.
Нажмите Output, чтобы просмотреть массив, возвращенный в клиент.
Установка точек останова
В интерфейсе тестирования Production Server Compiler нажмите Breakpoints> Break on MATLAB function entry.
В отдельном сеансе работы с MATLAB снова пошлите запрос POST серверу.
Когда редактор MATLAB открывается, обратите внимание, что точка останова установлена в первой линии в функции и что обработка сделала паузу в точке останова.
Теперь можно использовать все средства отладки MATLAB, чтобы продвинуться через функцию.
Примечание
Можно создать ошибку из-за тайм-аута в клиенте, если вам требуется много времени, продвигаясь через функцию MATLAB.
Обратите внимание на то, что переменные a1
и a2
отображены в рабочем пространстве MATLAB.
В редакторе MATLAB нажмите Continue, чтобы завершить процесс отладки.
Раздел Server Requests приложения показывает что запрос, завершенный успешно.
Нажмите Stop, чтобы завершить работу тестового сервера.
Нажмите Close Test.
Создайте файл Java MPSClientExample.java
со следующим клиентским кодом:
В системной командной строке скомпилируйте клиентский код Java с помощью javac
команда.
javac -classpath "matlabroot
\toolbox\compiler_sdk\mps_clients\java\mps_client.jar" MPSClientExample.java
В системной командной строке запустите клиент 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.