Этот пример показывает вам, как протестировать ваш УСПОКОИТЕЛЬНЫЙ 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 (MATLAB), чтобы вызвать RESTful API и выполнить запросы к интерфейсу тестирования. Можно использовать другие инструменты такое ЗАВИХРЕНИЕ или JavaScript XHR.
Импортируйте пакеты Интерфейса 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.