В этом примере показано, как создать и задать несколько сценариев тестирования в одном блоке Test Sequence. Способность задать больше чем одну тестовую последовательность в блоке позволяет вам сократить количество отдельных Тестовых блоков Последовательности в вашей тестовой обвязке.
Этот пример использует HeatPumpScenario
модель, которая уже имеет тестовую обвязку, которая содержит блок Test Sequence. В этом примере вы преобразуете блок, чтобы использовать сценарий, добавить новый сценарий в блок, отредактировать шаг сценария и активировать новый сценарий так, чтобы это запустилось, когда модель симулирует.
Откройте Controller
подсистема HeatPumpScenario
модель и ее тестовая обвязка, ScenarioTest
.
open_system('HeatPumpScenario1') sltest.harness.open('HeatPumpScenario1/Controller','ScenarioTest');
Установите блок Test Sequence использовать сценарии. Существующие шаги и переходы перемещены в сценарий, который, в этом примере, называют FirstScenario
. Обратите внимание на то, что, если вы изменяете блок Test Sequence, чтобы использовать сценарии, вы не можете вернуться, которые блокируются к режиму несценария.
sltest.testsequence.useScenario('ScenarioTest/Test Sequence',... 'FirstScenario');
Добавьте второй сценарий в блок Test Sequence. Назовите сценарий NewScenario
.
sltest.testsequence.addScenario('ScenarioTest/Test Sequence','NewScenario');
Отредактируйте первый шаг нового сценария, чтобы изменить значения Troom_in
и Tset
переменные. Снабдите имя предисловием шага с именем сценария, которое содержит шаг. Точно так же при добавлении или изменении переходов, необходимо также снабдить переход предисловием с именем сценария.
action = sprintf('Troom_in = 75;\nTset = 75;\n'); sltest.testsequence.editStep('ScenarioTest/Test Sequence',... 'NewScenario.step_1','Action',action);
Чтобы просмотреть содержимое сценария, используйте sltest.testsequence.findStep(blockPath)
, который возвращает массив, содержащий имена шагов для всех сценариев. Затем используйте sltest.testsequence.readStep(stepName)
или sltest.testsequence.readTransition(stepName)
видеть содержимое заданного шага или перехода, соответственно. Можно также просмотреть содержимое сценария путем двойного клика по блоку Test Sequence в обвязке, чтобы открыть редактор блока.
Задайте новый сценарий, чтобы запуститься во время симуляции модели. Этот сценарий является активным сценарием, который является единственным сценарием, который запускается во время симуляции. (Для альтернативного способа активироваться и запустить сценарий, смотрите ниже.)
sltest.testsequence.activateScenario('ScenarioTest/Test Sequence',... 'NewScenario');
Запустите модель. Можно запустить только один активный сценарий время. Обратите внимание на то, что быстрый перезапуск поддерживается при переключении активных сценариев и выполнении модели.
sim('ScenarioTest')
В тестовой обвязке просмотрите блок Scope, чтобы видеть результаты симуляции для нового сценария.
Активируйте первый сценарий.
sltest.testsequence.activateScenario('ScenarioTest/Test Sequence',... 'FirstScenario');
Повторно выполните модель.
sim('ScenarioTest')
В тестовой обвязке просмотрите блок Scope, чтобы видеть результат симуляции для первого сценария.
sltest.harness.close('HeatPumpScenario1/Controller','ScenarioTest'); close_system('HeatPumpScenario1',0);
В некоторых случаях, такие как цикличное выполнение через сценарии, вы можете хотеть использовать переменную рабочей области, чтобы управлять который сценарий активироваться, вместо того, чтобы использовать activateScenario
. Шаги для использования переменной рабочей области:
Установите источник управления сценарием на рабочую область при помощи sltest.testsequence.setScenarioControlSource
('ScenarioTest/Test Sequence',sltest.testsequence.ScenarioControlSource.Workspace
);
Создайте переменную в базовом рабочем пространстве, рабочем пространстве модели или словаре данных, чтобы задать активный сценарий с помощью его значения индекса. Например, Active_Scenario_Index = 1;
Запустите модель с помощью шагов и переходов в активном сценарии.
Чтобы запустить различный сценарий, измените Active_Scenario_Index
к желаемому сценарию, например, Active_Scenario_Index = 2
, и затем повторно выполненный модель.
Изменять название активного параметра сценария от Active_Scenario_Index
к, например, ScenarioIndex
, используйте sltest.testsequence.editSymbol('ScenarioTest/Test Sequence',... 'Active_Scenario_Index','Name','ScenarioIndex');
и затем создайте ScenarioIndex
переменная в базовом рабочем пространстве. Используйте Scenario_Index = 2
чтобы установить переменную запускать сценарий, идентифицированный индексом 2, и затем, запускают модель.
sltest.testsequence.activateScenario
| sltest.testsequence.addScenario
| sltest.testsequence.deleteScenario
| sltest.testsequence.editScenario
| sltest.testsequence.getActiveScenario
| sltest.testsequence.setScenarioControlSource
| sltest.testsequence.useScenario