Протестируйте итерации

Можно запустить тот же тест с различными данными или конфигурациями модели при помощи итераций теста. Итерации могут использовать отличающийся:

  • Параметры.

  • Внешние входные параметры.

  • Конфигурации модели.

  • Сценарии Signal Editor.

  • Группы Signal Builder.

  • Базовые данные.

Настройте итерации в разделе Iterations теста. Можно использовать табличные итерации или заданные сценарием итерации. Если тест собирает покрытие с помощью Simulink® Coverage™, те же настройки покрытия применяются ко всем итерациям в тесте.

Используете ли вы таблицу или заданные сценарием итерации, вы видите итерации в тесте путем нажатия кнопки Show Iterations.

Создайте табличные итерации

Table Iterations обеспечивает быстрый способ добавить основанные на итерациях элементы в вашем или тесте модели. Чтобы создать итерации с таблицей, сначала сделайте соответствующие столбцы видимыми:

  1. Расширьте раздел Iterations > Table Iterations.

  2. В таблице добавьте или удалите столбцы путем нажатия кнопки и выбора элементов в списке. Например, чтобы отобразить параметр и конфигурации модели, выберите элементы Configuration Set и Parameter Set.

Добавьте итерации вручную

  1. Чтобы вручную добавить итерации, нажмите Add. Таблица показывает новую строку итерации.

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

Сгенерируйте табличные итерации

Можно также автоматически сгенерировать итерации из данных в тесте и модели:

  1. Нажмите кнопку Auto Generate.

  2. Выберите элементы, чтобы сгенерировать итерации.

    Если вы выбираете несколько элементов, итерации создаются в последовательных соединениях. Например:

    • Модель sldemo_autotrans имеет блок Signal Builder с четырьмя группами сигнала, пометил S1, S2, S3 и S4.

    • Тест имеет три набора параметров, пометил P1, P2 и P3.

    • Автоматически генерирующие итерации от групп Signal Builder и наборов параметров приводят к трем итерациям. Итерации ограничиваются этими тремя наборами параметров. Каждая итерация содержит одну группу Signal Builder и один набор параметров. Группа Signal Builder и набор параметров являются соответствующими в порядке, что они перечислены в блоке Signal Builder и разделе набора параметров.

    Signal Builder, parameter, and iteration blocks.

  3. Задайте дополнительное правило именования для итераций. В поле Iteration naming rule введите использование правила:

    • Имя каждой установки вас хочет использовать на имя с удаленными пробелами

    • Подчеркивание или пробел, чтобы разделить каждую установку

    Например, если вы хотите включать имя набора параметров, конфигурации модели и базового имени файла, введите ParameterSet_ConfigurationSet_Baseline.

Разделите опциюЦель

Группа Signal Builder

Применяется к разделу Inputs симуляции, базовой линии или эквивалентного теста, для заданного Signal Builder Group. Каждая группа Signal Builder используется, чтобы сгенерировать итерацию.

Сценарий Редактора сигнала

Применяется к разделу Inputs симуляции, базовой линии или эквивалентного теста, для заданного Signal Editor Scenario. Каждый сценарий Редактора Сигнала используется, чтобы сгенерировать итерацию.

Набор параметров

Применяется к разделу Parameter Overrides симуляции, базовой линии или эквивалентного теста. Каждый набор переопределения параметра используется, чтобы сгенерировать итерацию.

Внешний вход

Применяется к разделу Inputs симуляции, базовой линии или эквивалентного теста, для заданных наборов External Inputs. Каждый внешний входной набор используется, чтобы сгенерировать итерацию.

Конфигурация модели

Применяется к разделу Configuration Setting Overrides симуляции, базовой линии или эквивалентного теста. Каждая итерация использует заданный параметр конфигурации.

BaseLine

Применяется только к базовым типам теста, в частности к разделу Baseline Criteria базового теста. Каждый базовый набор критериев используется, чтобы сгенерировать итерацию.

Симуляция 1 или 2

Применяется только к эквивалентным типам теста. Наверху диалогового окна Auto Generate Reports существует меню для Simulation 1 или Simulation 2. Эти разделы соответствуют двум разделам симуляции в эквивалентном тесте.

Создайте итерации в виде сценария

Можно запустить пользовательский набор итераций с помощью скрипта в разделе Scripted Iterations. Например, можно задать наборы параметров или настроить порядок итерации при помощи пользовательской итерации. Итерации в виде сценария сгенерированы во время выполнения, когда тест выполняется.

Компоненты скрипта итерации

Скрипт итерации должен содержать определенные компоненты. Самый основной скрипт итерации содержит три элемента:

  1. Объект итерации, созданное использование sltestiteration.

  2. Установка итерации, набор с помощью setTestParam.

  3. Регистрация итерации, добавленное использование addIteration.

Например, этот скрипт создает итерацию, которая запускает одну группу сигнала от блока Signal Builder.

%% Iterate Using a Signal Builder Group
 
% Set up a new iteration object
testItr = sltestiteration;

% Set iteration setting using Signal Builder group
setTestParam(testItr,'SignalBuilderGroup',...
   sltest_signalBuilderGroups{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 Builder. Можно выполнить итерации по всем группам Signal Builder в блоке путем помещения основного скрипта итерации в цикл:

%% Iterate Over All Signal Builder Groups
 
% Determine the number of possible iterations
numSteps = length(sltest_signalBuilderGroups);
 
% Create each iteration
for k = 1 : numSteps
    % Set up a new iteration object
    testItr = sltestiteration;
 
    % Set iteration settings
    setTestParam(testItr,'SignalBuilderGroup',sltest_signalBuilderGroups{k});
 
    % Add the iteration to run in this test case
    % You can pass in an optional iteration name
    addIteration(sltest_testCase,testItr);
end

Предварительно определенные переменные

Можно использовать предварительно определенные переменные, чтобы записать скрипты итераций. Чтобы видеть список предварительно определенных переменных в менеджере по Тесту, расширьте раздел Help on creating test iterations. Вы написали скрипт итераций в поле скрипта в разделе Scripted Iterations. Поле скрипта является функциональной рабочей областью, что означает, что базовое рабочее пространство MATLAB® не может получить доступ к информации от поля скрипта. Если вы задаете переменные в поле скрипта, то другие рабочие области не могут использовать переменную.

Предварительно определенные переменные:

  • sltest_bdroot — Модель симулирована тестом, заданным как строка

  • sltest_sut — Система Под Тестом, заданным как строка

  • sltest_isharness TRUE если sltest_bdroot модель тестовой обвязки, заданная как логическое

  • sltest_externalInputs — Имя внешних входных параметров, заданных как массив ячеек строк

  • sltest_parameterSets — Имя параметра заменяет наборы, заданные как массив ячеек строк

  • sltest_configSets — Имя параметров конфигурации, заданных как массив ячеек строк

  • sltest_tableIterations — Объекты итерации создаются в таблице итераций, заданной как массив ячеек sltest.testmanager.TestIteration объекты

  • sltest_testCase — Текущий объект теста, заданный как sltest.testmanager.TestCase объект

Шаблоны итерации в виде сценария

Можно быстро сгенерировать итерации для шаблонов использования теста для групп Signal Builder, наборов параметров, внешних входных параметров, конфигураций модели и исходных наборов, если вы используете базовый тест. Шаблоны итерации в виде сценария следуют за жестко регламентированным упорядоченным расположением и соединением тестовых настроек. Для получения дополнительной информации о жестко регламентированном упорядоченном расположении, смотрите, Создают Табличные Итерации.

Например, если вы хотите запустить все группы Signal Builder в итерации в виде сценария:

  1. Нажмите Iteration Templates.

  2. Выберите настройки теста, которых вы хотите выполнить итерации через. Нажмите OK.

    Скрипт сгенерирован и добавлен к полю скрипта ниже любых существующих скриптов.

  3. Чтобы сгенерировать таблицу, которая дает предварительный просмотр итераций, которые выполняются, когда вы запускаете тест, нажмите Show Iterations.

Соберите базовые данные от итераций

В этом примере показано, как создать базовый тест путем собирания данных от теста с табличными итерациями. Вы создаете итерации из сценариев Редактора Сигнала в модели. Прежде, чем запустить пример, перейдите к перезаписываемой папке на пути MATLAB®.

1. Откройте модель. В командной строке войти

Model = 'sltestCar';
open_system(Model);

2. Откройте менеджера по Тесту и создайте тестовый файл. В командной строке введите sltestmgr

3. В менеджере по Тесту нажмите Test File from Model от Нового выпадающего списка.

4. Задайте тестовый файл.

  1. Введите sltestCar как Модель.

  2. Введите имя тестового файла или полный путь в Месте.

  3. Выберите Baseline как тестовый тип.

5. Выберите тест. Расширьте тестовый файл и выберите sltestCar/Inputs тест.

6. Выберите сигналы для базовых данных:

  1. В разделе Simulation Outputs нажмите Add.

  2. В холсте модели выберите output torque предупредите и в диалоговом окне Подключения, установите флажок для того сигнала. Выберите vehicle speed предупредите и установите его флажок в диалоговом окне.

  3. В Тесте менеджер передает диалоговое окно, нажимает Done.

  4. Сигналы появляются в таблице Logged Signals.

7. Просмотрите итерации для теста:

Расширьте Итерации и Табличные разделы Итераций. Итерации для выбранного теста автоматически появляются. Итерации соответствуют четырем сценариям Редактора Сигнала.

8. Соберите базовые данные для итераций:

  1. В разделе Baseline Criteria кликните по стреле рядом с Получением.

  2. Выберите MAT как Формат файла.

  3. Задайте местоположение, чтобы сохранить базовые файлы данных в поле File.

  4. Выберите Capture Baselines for Iterations.

  5. Нажмите Capture.

Модель симулирует для всех сценариев Редактора Сигнала. Базовые данные для output_torque и vehicle_speed получены в четырех файлах MAT. Кроме того, каждый базовый набор данных добавляется к своим соответствующим итерациям в таблице.

Развернитесь через набор параметров

Итерации в виде сценария могут использоваться, чтобы протестировать модель путем развертки через набор параметров. Можно использовать этот скрипт, чтобы попробовать различные значения за параметр рабочего пространства модели 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. Вы видите итерации, которые создал скрипт.

Details of iterations, including parameter names and values, and workspace and model parameter overrides.

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

Iteration results hierarchy

Смотрите также

|

Похожие темы