Можно запустить один и тот же тест с различными данными или конфигурациями модели с помощью итераций теста. Итерации могут использовать различные:
Параметры
Внешние входы
Конфигурации модели
Signal Editor сценарии
Test Sequence сценарии
Базовые данные
Режимы симуляции
Настройте итерации в Iterations разделе теста. Итерации можно создать с помощью таблицы в разделе «Итерации» Диспетчера тестов или с помощью скрипта.
Чтобы использовать сценарии Test Sequence в итерациях, сначала в разделе Inputs установите Test Sequence Block на блок, который содержит сценарии. Затем выберите сценарий из Override with Scenario, чтобы использовать этот сценарий в качестве сценария по умолчанию для каждой итерации. Если вы не выбираете сценарий, активный сценарий в блоке Test Sequence используется как значение по умолчанию. Используйте столбец Test Sequence Scenario в таблице, чтобы изменить сценарий итерации. Для получения дополнительной информации смотрите Использование сценариев тестовой последовательности в Редакторе тестовой последовательности и Диспетчере тестов.
Чтобы использовать различные режимы симуляции, такие как normal и программное обеспечение в цикле (SIL), для базового уровня или теста симуляции, сначала настройте контрольный пример. Затем в таблице Iterations щелкните Auto Generate. В диалоговом окне «Автоматическая генерация итераций» выберите Simulation Modes и одну или несколько других опций. Для каждой опции количество созданных итераций удваивается, по одному для режима модели и по одному для режима SIL.
Если тест собирает покрытие с помощью Simulink® Coverage™ те же параметры покрытия применяются ко всем итерациям в тест.
Если вы используете итерации таблицы или сценариев, вы можете увидеть итерации в тесте, нажав кнопку Show Iterations.
Table Iterations обеспечивают быстрый способ добавить элементы, основанные на итерациях, в вашу модель или тест. Чтобы создать итерации с таблицей, сначала сделайте соответствующие столбцы видимыми:
Разверните раздел Iterations > Table Iterations.
В таблице добавьте или удалите столбцы, нажав кнопку и выбрав элементы в списке. Для примера, чтобы выбрать параметр и конфигурации модели отображения, выберите Parameter Set и Configuration Set элементы.
Чтобы вручную добавить итерации, нажмите Add. В таблице отображается новая строка итерации.
Присвойте имя итерации и выберите элементы для итерации. Например, этот тест имеет четыре итерации. Каждая итерация использует разную комбинацию внешних входных и базовых данных.
Можно также автоматически сгенерировать итерации из данных в тесте и модели:
Нажмите кнопку Auto Generate.
Выберите элементы, для которых необходимо сгенерировать итерации.
Для сценариев тестовой последовательности генерируется итерация для каждого сценария для блока, выбранного в Test Sequence Block в разделе Inputs.
Если вы выбираете несколько элементов, итерации создаются в последовательных парах. Для примера:
Модель sldemo_autotrans
имеет блок Signal Editor с четырьмя сценариями сигнала, помеченными как Coasting, Gradual_Acceleration, Hard_braking и Passing_Maneuver, каждый из которых имеет сигналы Дросселя и Тормоза. Чтобы открыть эту модель, введите sldemo_autotrans
в командной строке. Чтобы просмотреть Редактор сигналов, дважды кликните блок ManeuversGUI, чтобы открыть диалоговое окно Параметров блоков. Затем нажмите кнопку запуска Редактор в разделе Свойства.
У тест есть три набора параметров, маркированных P1, P2 и P3.
Автоматическая генерация итераций из сценариев Signal Editor и наборов параметров приводит к трем итерациям. Итерации ограничены тремя наборами параметров. Каждая итерация содержит один сценарий Signal Editor и один набор параметров. Сценарий Signal Editor и набор параметров совпадают в том порядке, в котором они перечислены в разделе Signal Editor блока и набора параметров.
Задайте необязательное правило именования для итераций. В Iteration naming rule поле введите правило с помощью:
Имя каждого параметра, который вы хотите использовать в названии, с удаленными пространствами
Подчеркивание или пространство, чтобы разделить каждую настройку
Например, если вы хотите включить имя набора параметров, конфигурации модели и имени файла базовой линии, введите ParameterSet_ConfigurationSet_Baseline
.
Опция раздела | Цель |
---|---|
Сценарий редактора сигналов | Применяется к Inputs разделу теста симуляции, базового уровня или эквивалентности для заданного Signal Editor Scenario. Каждый сценарий Редактор используется для генерации итерации. |
Набор параметров | Применяется к Parameter Overrides разделу теста симуляции, базового уровня или эквивалентности. Каждый набор переопределения параметра используется для генерации итерации. |
Внешний вход | Применяется к Inputs разделу теста симуляции, базового уровня или эквивалентности для заданных наборов External Inputs. Каждый внешний входной набор используется для генерации итерации. |
Конфигурация модели | Применяется к Configuration Setting Overrides разделу теста симуляции, базового уровня или эквивалентности. Каждая итерация использует заданный параметр строения. |
Записанный набор сигналов | Применяется к Logging разделу теста симуляции, базового уровня или эквивалентности. Каждый набор записанных сигналов используется для генерации итерации. |
Основание | Применяется только к базовым типам тестов, в частности к Baseline Criteria разделу базового теста. Каждый набор критериев опорной структуры используется для генерации итерации. |
Сценарий тестовой последовательности | Применяется к Inputs разделу теста симуляции, базового уровня или эквивалентности для заданного Test Sequence Block. Каждый сценарий тестовой последовательности используется для генерации итерации. |
Режимы симуляции | Применяется к разделу Iterations таблицы симуляции или базового теста. Итерация для текущего режима симуляции модели и итерация SIL создаются для друг друга, выбранных в диалоговом окне Автоматическая генерация итераций (Auto Generate Iterations). |
Симуляция 1 или 2 | Применяется только к типам тестов эквивалентности. В верхней части диалогового окна «Автоматическая генерация отчетов» находится меню для Simulation 1 или Simulation 2. Эти разделы соответствуют двум разделам симуляции в тесте эквивалентности. |
Запустить пользовательский набор итераций можно с помощью скрипта в разделе Scripted Iterations. Для примера можно задать наборы параметров или настроить порядок итерации с помощью пользовательской итерации. Итерации со скриптами генерируются во время выполнения, когда тест выполняется.
Скрипт итерации должен содержать определенные компоненты. Самый базовый скрипт итерации содержит три элемента:
Объект итерации, созданный с использованием sltestiteration
.
Настройка итерации, установка с помощью setTestParam
.
Регистрация итерации, добавленная с помощью addIteration
.
Например, этот скрипт создает итерацию, которая запускает один сценарий сигнала из блока Signal Editor.
%% 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
. Можно выполнить итерацию по нескольким элементам, таким как Signal Editor или сценарии тестовой последовательности. Можно итерировать по всем Signal Editor или Test Sequence сценариям в блоке, поместив основной скрипт итерации в цикл:
%% 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'));
Можно использовать предопределенные переменные для записи скриптов итераций. Чтобы увидеть список предопределенных переменных в Диспетчере тестов, разверните раздел Help on creating test iterations. Скрипт итераций вы запишете в поле скрипта в разделе Scripted Iterations. Окно скрипта является функциональной рабочей областью, что означает MATLAB® базовое рабочее пространство не может получить доступ к информации из окна скрипта. Если вы задаете переменные в поле скрипта, то другие рабочие области не могут использовать переменную.
Предопределенные переменные:
sltest_bdroot
- Модель, моделируемая тестовым примером, заданная как строка
sltest_sut
- Тестируемая система, заданная как строка
sltest_isharness
— true
если sltest_bdroot
- модель тестовой обвязки, заданная как логическая
sltest_externalInputs
- Имя внешних входов, заданное как массив ячеек из строк
sltest_parameterSets
- Имя наборов переопределений параметров, заданное как массив ячеек из строк
sltest_configSets
- Имя настройки строения, заданное как массив ячеек из строк
sltest_signalEditorScenarios
- Имя сценариев редактора сигналов, заданное как 2-D массив ячеек из векторов символов.
sltest_signalBuilderGroups
- Имя групп Signal Builder, заданное как 2-D массив ячеек векторов символов.
sltest_loggedSignalSets
- Имя записанных наборов сигналов, заданное как 2-D массив ячеек из векторов символов.
sltest_testSequenceScenarios
- - Имя сценариев тестовой последовательности, заданное как 2-D массив ячеек векторов символов.
sltest_tableIterations
- Объекты итерации, созданные в таблице итераций, заданные как массив ячеек sltest.testmanager.TestIteration
объекты
sltest_testCase
- Текущий объект теста, заданный как sltest.testmanager.TestCase
объект
Можно быстро сгенерировать итерации для теста с помощью шаблонов для Signal Editor сценариев, наборов параметров, внешних входов, конфигураций модели и базовых наборов, если вы используете базовый тест. Шаблоны итерации со скриптами следуют за упорядоченным расположением блокировки и сопряжением настроек тестирования. Дополнительные сведения о блокировке упорядоченного расположения см. в разделе Создание итераций таблиц.
Например, если вы хотите запустить все сценарии редактора сигналов в скриптовой итерации:
Нажмите Iteration Templates.
Выберите настройки теста, через которые необходимо выполнить итерацию. Нажмите OK.
Скрипт генерируется и добавляется в окно скрипта под любыми существующими скриптами.
Чтобы сгенерировать таблицу, которая дает предварительный просмотр итераций, которые выполняются при запуске теста, нажмите Show Iterations.
Скриптовые итерации могут использоваться, чтобы протестировать модель, просматривая набор параметров. Можно использовать этот скрипт, чтобы попробовать другие значения для параметра рабочего пространства модели Iei
и параметр модели UpperSaturationLimit
в sltestCar модели
. Добавьте скрипт в разделе Iterations > Scripted Iterations.
%% 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
После добавления скрипта нажмите Show Iterations. Вы можете увидеть итерации, которые создал скрипт.
Выполнение теста генерирует результат для каждой итерации.
setModelParam
| sltest.testmanager.TestIteration