Можно запустить один и тот же тестовый случай с различными данными или наборами конфигурации с помощью итераций тестового случая. В итерациях могут использоваться различные варианты:
Параметры
Внешние вводы
Наборы конфигурации
Сценарии редактора сигналов
Сценарии тестовой последовательности
Базовые данные
Режимы моделирования
Настройте итерации в разделе Итерации тестового случая. Итерации можно создавать с помощью таблицы в разделе Итерации (Iterations) Диспетчера тестов (Test Manager) или с помощью сценария.
Чтобы использовать сценарии тестовой последовательности в итерациях, сначала в разделе Входы установите для параметра Блок тестовой последовательности значение Блок, содержащий сценарии. Затем выберите сценарий из Переопределить со сценарием, чтобы использовать этот сценарий в качестве сценария по умолчанию для каждой итерации. Если сценарий не выбран, по умолчанию используется активный сценарий в блоке тестовой последовательности. Используйте столбец Сценарий тестовой последовательности в таблице, чтобы изменить сценарий для итерации. Дополнительные сведения см. в разделе Использование сценариев тестовых последовательностей в редакторе тестовых последовательностей и диспетчере тестов.
Чтобы использовать различные режимы моделирования, такие как нормальный и программный в цикле (SIL), для базового или имитационного теста, сначала настройте тестовый пример. Затем в таблице Итерации (Iterations) щелкните Автогенерация (Auto Generate). В диалоговом окне Автогенерация итераций (Auto Generate Iterations) выберите Режимы моделирования (Simulation Modes) и одну или несколько других опций. Для каждой опции количество созданных итераций удваивается, одна для режима модели и одна для режима SIL.
Если тест собирает покрытие с помощью Simulink ® Coverage™, одни и те же настройки покрытия применяются ко всем итерациям в тестовом случае.
Независимо от того, используются ли итерации таблицы или сценария, можно просмотреть итерации в тестовом случае, нажав кнопку Показать итерации (Show Iterations).
Итерации таблицы предоставляют быстрый способ добавления элементов на основе итераций в модель или тестовый случай. Чтобы создать итерации с таблицей, сначала сделайте видимыми соответствующие столбцы:
Разверните раздел Итерации > Итерации таблицы.
В таблице добавьте или удалите столбцы, нажав
кнопку и выбрав элементы в списке. Например, чтобы выбрать экранные параметры и наборы конфигурации, выберите элементы Набор параметров (Parameter Set) и Набор конфигурации (Configuration Set).

Чтобы вручную добавить итерации, щелкните Добавить. В таблице отображается новая строка итераций.
Назначьте имя итерации и выберите элементы для итерации. Например, этот тестовый случай имеет четыре итерации. Каждая итерация использует различную комбинацию внешних входных и базовых данных.

Можно также автоматически создавать итерации на основе данных в тестовом примере и модели:
Нажмите кнопку «Автоматически генерировать».
Выберите элементы для создания итераций.
Для сценариев тестовой последовательности итерация создается для каждого сценария для блока, выбранного в разделе Блок тестовой последовательности в разделе Входы.
При выборе нескольких элементов итерации создаются последовательными парами. Например:
Модель sldemo_autotrans имеет блок редактора сигналов с четырьмя сценариями сигналов с метками Coasting, Gradual_Acceleration, Hard_braking и Passing_Maneuver, каждый из которых имеет сигналы Throttle и Brake. Чтобы открыть эту модель, введите sldemo_autotrans в командной строке. Для просмотра редактора сигналов дважды щелкните блок «Маневр GUI», чтобы открыть диалоговое окно «Параметры блока». Затем нажмите кнопку запуска редактора сигналов в разделе «Свойства сигнала».
Тестовый случай имеет три набора параметров: P1, P2 и P3.
Автоматическое создание итераций из сценариев и наборов параметров редактора сигналов приводит к трем итерациям. Итерации ограничены тремя наборами параметров. Каждая итерация содержит один сценарий редактора сигналов и один набор параметров. Сценарий редактора сигналов и набор параметров сопоставляются в том порядке, в котором они перечислены в разделе «Блок редактора сигналов и набор параметров».


Укажите дополнительное правило именования для итераций. В поле Правило именования итераций введите правило, используя:
Имя каждого параметра, используемого в имени, с удаленными пробелами
Подчеркивание или пробел для разделения каждого параметра
Например, если требуется включить имя набора параметров, набора конфигурации и имени файла опорной структуры, введите ParameterSet_ConfigurationSet_Baseline.
| Вариант сечения | Цель |
|---|---|
Сценарий редактора сигналов | Применяется к разделу «Входы» теста моделирования, базовой линии или эквивалентности для указанного сценария редактора сигналов. Каждый сценарий редактора сигналов используется для создания итерации. |
Набор параметров | Применяется к разделу «Переопределения параметров» в тестовом примере моделирования, базовой линии или эквивалентности. Каждый набор переопределений параметров используется для создания итерации. |
Внешний ввод | Применяется к разделу «Входные данные» теста моделирования, базовой линии или эквивалентности для указанных наборов внешних входных данных. Каждый набор внешних входных данных используется для создания итерации. |
Набор конфигурации | Применяется к разделу «Переопределения настроек конфигурации» в тестовом примере моделирования, опорной структуры или эквивалентности. Каждая итерация использует указанный параметр конфигурации. |
Набор регистрируемых сигналов | Применяется к разделу «Ведение журнала» в тестовом примере моделирования, базовой линии или эквивалентности. Каждый набор регистрируемых сигналов используется для генерации итерации. |
Основание | Применяется только к типам базовых тестов, в частности к разделу «Базовые критерии» базового теста. Каждый набор критериев опорной структуры используется для создания итерации. |
Сценарий тестовой последовательности | Применяется к разделу «Входы» теста моделирования, базовой линии или эквивалентности для указанного блока тестовой последовательности. Каждый сценарий тестовой последовательности используется для создания итерации. |
Режимы моделирования | Применяется к разделу таблицы Итерации (Iterations) в тестовом примере моделирования или базовой линии. Итерация для текущего режима моделирования модели и итерация SIL создаются для каждой настройки теста, выбранной в диалоговом окне Автогенерация итераций (Auto Generate Iterations). |
Моделирование 1 или 2 | Применяется только к типам тестов эквивалентности. В верхней части диалогового окна Автогенерация отчетов (Auto Generate Reports) находится меню для моделирования 1 или моделирования 2. Эти разделы соответствуют двум моделирующим секциям в тестовом примере эквивалентности. |
Пользовательский набор итераций можно запустить с помощью сценария в разделе «Итерации по сценариям». Например, можно определить наборы параметров или настроить порядок итераций с помощью пользовательской итерации. Итерации по сценарию создаются во время выполнения при выполнении теста.

Сценарий итерации должен содержать определенные компоненты. Самый базовый сценарий итерации содержит три элемента:
Объект итерации, созданный с помощью sltestiteration.
Настройка итерации, заданная с помощью setTestParam.
Регистрация итерации, добавленная с помощью addIteration.
Например, этот сценарий создает итерацию, которая запускает один сценарий сигнала из блока редактора сигналов.
%% Iterate Using a Signal Editor Scenario % Set up a new iteration object testItr = sltestiteration; % Set iteration setting using Signal Editor scenario setTestParam(testItr,'SignalEditorScenario',... sltest_signalEditorScenarios{1}); % Add the iteration to run in this test case % The predefined sltest_testCase variable is used here addIteration(sltest_testCase,testItr);
Дополнительные сведения о классе итерации теста см. в разделе sltest.testmanager.TestIteration. Можно выполнить итерацию нескольких элементов, таких как редактор сигналов или сценарии тестовой последовательности. Можно выполнить итерацию по всем сценариям редактора сигналов или тестовой последовательности в блоке, поместив базовый сценарий итерации в цикл:
%% Iterate Over All Signal Editor Scenarios % Determine the number of possible iterations numSteps = length(sltest_signalEditorScenarios); % Create each iteration for k = 1 : numSteps % Set up a new iteration object testItr = sltestiteration; % Set iteration settings setTestParam(testItr,'SignalEditorScenario',... sltest_signalEditorScenarios{k}); % Add the iteration to run in this test case % You can pass in an optional iteration name addIteration(sltest_testCase,testItr); end % Reset the path rmpath(fullfile(matlabroot,'examples,... 'simulink_automotive','main'));
Для записи сценариев итераций можно использовать предопределенные переменные. Чтобы просмотреть список предопределенных переменных в Диспетчере тестов (Test Manager), разверните раздел Справка по созданию итераций теста (Help on create test iterations). Сценарий итераций записывается в поле сценария в разделе Итерации по сценариям. Поле сценария является функциональным рабочим пространством, что означает, что базовое рабочее пространство MATLAB ® не может получить доступ к информации из поля сценария. При определении переменных в поле сценария другие рабочие области не могут использовать переменную .
Предопределенные переменные:
sltest_bdroot - Модель, смоделированная тестовым случаем, определяемая как строка
sltest_sut - тестируемая система, определенная как строка;
sltest_isharness — true если sltest_bdroot - модель электрического жгута, определяемая как логическая
sltest_externalInputs - имя внешних входов, определяемое как массив ячеек строк;
sltest_parameterSets - имя наборов переопределений параметров, определенных как массив ячеек строк;
sltest_configSets - Имя настроек конфигурации, определяемое как массив ячеек строк
sltest_signalEditorScenarios - название сценариев редактора сигналов, определяемое как массив 2-D ячеек символьных векторов.
sltest_signalBuilderGroups - имя групп построителей сигналов, определяемое как массив 2-D ячеек символьных векторов.
sltest_loggedSignalSets - имя регистрируемых наборов сигналов, определяемое как массив 2-D ячеек символьных векторов.
sltest_testSequenceScenarios - Имя сценариев тестовой последовательности, определенной как массив 2-D ячеек символьных векторов.
sltest_tableIterations - объекты итерации, созданные в таблице итераций, определенные как массив ячеек sltest.testmanager.TestIteration объекты
sltest_testCase - Текущий объект тестового случая, определенный как sltest.testmanager.TestCase объект
Можно быстро создать итерации для тестового случая с помощью шаблонов для сценариев редактора сигналов, наборов параметров, внешних входных данных, наборов конфигурации и наборов опорной структуры, если используется тестовый случай опорной структуры. Шаблоны итераций со сценариями следуют порядку шагов блокировки и спариванию параметров теста. Дополнительные сведения о упорядочении шагов блокировки см. в разделе Создание итераций таблицы.
Например, если необходимо запустить все сценарии редактора сигналов в итерации со сценариями:
Щелкните Шаблоны итераций (Iteration Templates).
Выберите параметры тестового случая для итерации. Нажмите кнопку ОК.
Сценарий создается и добавляется в поле сценария под любыми существующими сценариями.
Чтобы создать таблицу, которая обеспечивает предварительный просмотр итераций, выполняемых при выполнении тестового случая, щелкните Показать итерации (Show Iterations).
Итерации по сценарию можно использовать для тестирования модели путем прочесывания набора параметров. Этот сценарий можно использовать для проверки различных значений параметра рабочей области модели Iei и параметр модели UpperSaturationLimit в модели sltestCar. Добавьте сценарий в раздел Итерации > Итерации по сценариям.
%% Iterate over Iei parameter % Set up the parameter values to sweep over IeiValues = [0.021,0.022,0.022,0.023]; UprSatValues = [2000,3000,4000,5000]; numSteps = length(IeiValues); % Create each iteration for k = 1 : numSteps % Set up a new iteration object testItr = sltestiteration; % Set value of lei (parameter in model workspace) setVariable(testItr,'Name','Iei','Source','model workspace',... 'Value',IeiValues(k)); % Set value of UpperSaturationLimit model parameter testItr.setModelParam('sltestCar/Engine/Integrator',... 'UpperSaturationLimit',UprSatValues(k)); % Add the iteration to run in this test case addIteration(sltest_testCase,testItr); end
После добавления сценария щелкните Показать итерации. Можно просмотреть итерации, созданные сценарием.

Выполнение теста создает результат для каждой итерации.

setModelParam | sltest.testmanager.TestIteration