Соединение с файлом результата

В этом примере вы соединяете требование с файлом результата испытаний, который находится в формате Microsoft® Excel® с помощью Исходящего Редактора Ссылок и API. Состояние верификации в Редакторе Simulink® Requirements™ отражает результаты испытаний. Эти примеры следуют за рабочим процессом для включения внешних результатов испытаний в сводных данных верификации требования. Для получения дополнительной информации смотрите, Включают Результаты Внешних Источников в Состояние Верификации.

Соединение с файлом результата Используя исходящий редактор ссылок

Создайте набор требования под названием counter_req.slreqx в Редакторе Требований и сохраняют его в перезаписываемом месте. Этот набор требования имеет дочерние требования, которые имеют идентификаторы требования и описания. Для получения дополнительной информации о том, как создать наборы требования, смотрите работу с Требованиями в Редакторе Simulink.

Внешний файл результатов является файлом Excel под названием results.xlsx. Состояние верификации в Simulink Requirements обновляется на основе значений ячеек в листе Excel. Уникальный идентификатор в столбце Test идентифицирует каждый результат в столбце Status. Test и метки Status содержатся в строке заголовка.

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

Создайте и укажите тип ссылки

Откройте файл шаблона в matlabroot/toolbox/slrequirements/linktype_examples/linktype_TEMPLATE.m. Выполните эти шаги:

  1. Создайте новый файл MATLAB.

  2. Скопируйте содержимое linktype_TEMPLATE в новый файл. Сохраните файл как linktype_myexcelresults.m.

  3. В linktype_myexcelresults.m:

    1. Замените имя функции linktype_TEMPLATE с linktype_myexcelresults.

    2. Установите linkType.Label как 'Excel Results'.

    3. Установите linkType.Extensions как {'.xlsx'}.

    4. Не прокомментируйте команду для GetResultFcn для того, чтобы использовать его в linktype_myexcelresults и войдите:

      linktype.GetResultFcn = @GetResultFcn;
      ......
      function result = GetResultFcn(link)
          testID = link.destination.id;
          resultFile = link.destination.artifact;
          
          if ~isempty(resultFile) && isfile(resultFile)
              resultTable = readtable(resultFile);
              testRow = strcmp(resultTable.Test,testID);
              status = resultTable.Status(testRow);
              
              if status{1} == "passed"
                  result.status = slreq.verification.Status.Pass;
              elseif status{1} == "failed"
                  result.status = slreq.verification.Status.Fail;
              else
                  result.status = slreq.verification.Status.Unknown;
              end
          else
              result.status = slreq.verification.Status.Unknown;
          end
      end
      Для получения дополнительной информации о GetResultFcn, смотрите Типы Ссылки и Ссылки.

  4. Сохраните linktype_myexcelresults.m.

  5. Укажите тип ссылки. В командной строке, введите:

    rmi register linktype_myexcelresults

    Примечание

    Если команда возвращает предупреждение, то необходимо не указать файл и следовать за шагом 5 снова. Не укажите файл путем ввода:

    rmi unregister linktype_myexcelresults

Создайте ссылку

Выполните эти шаги, чтобы добавить ссылку вручную в Исходящем Редакторе Ссылок:

  1. Откройте редактор требований и в counter_req.slreqx набор требования, щелкните правой кнопкой по дочернему требованию по 1.3 и выберите Open Outgoing Links dialog ....

  2. В диалоговом окне Outgoing Links Editor, во вкладке Requirements, нажимают New.

  3. Введите эти детали, чтобы установить ссылку:

    • Описание: resultcounterSetsValue

    • Тип документа: Excel Results

    • Документ: results.xlsx

    • Местоположение : counterSetsValue

  4. Нажмите OK. Ссылка подсвечена в разделе Links Редактора Требований.

Просмотрите состояние верификации

Обновите состояние верификации в Редакторе Требований. Нажмите кнопку Refresh, чтобы видеть состояние верификации для требований в Редакторе Требований. Это показывает состояние верификации для целого набора требования, который передал или перестал работать.

Требования для counterSetsValue полностью проверяются. Здесь, состояние верификации показывает, что из трех тестов, один тест передал.

Соединение с файлом результата Используя API

Создайте набор требования под названием counter_req.slreqx в Редакторе Требований и сохраняют его в перезаписываемом месте. Этот набор требования имеет дочерние требования, которые имеют идентификаторы требования и описания. Для получения дополнительной информации о том, как создать наборы требования, смотрите работу с Требованиями в Редакторе Simulink.

Внешний файл результатов является файлом Excel под названием results.xlsx. Состояние верификации в Simulink Requirements обновляется на основе значений ячеек в листе Excel. Уникальный идентификатор в столбце Test идентифицирует каждый результат в столбце Status. Test и метки Status содержатся в строке заголовка.

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

Создайте и укажите тип ссылки

Откройте файл шаблона в matlabroot/toolbox/slrequirements/linktype_examples/linktype_TEMPLATE.m. Выполните эти шаги:

  1. Создайте новый файл MATLAB.

  2. Скопируйте содержимое linktype_TEMPLATE в новый файл. Сохраните файл как linktype_myexcelresults.m.

  3. В linktype_myexcelresults.m:

    1. Замените имя функции linktype_TEMPLATE с linktype_myexcelresults.

    2. Установите linkType.Label как 'Excel Results'.

    3. Установите linkType.Extensions как {'.xlsx'}.

    4. Не прокомментируйте команду для GetResultFcn для того, чтобы использовать его в linktype_myexcelresults и войдите:

      linktype.GetResultFcn = @GetResultFcn;
      ......
      function result = GetResultFcn(link)
          testID = link.destination.id;
          resultFile = link.destination.artifact;
          
          if ~isempty(resultFile) && isfile(resultFile)
              resultTable = readtable(resultFile);
              testRow = strcmp(resultTable.Test,testID);
              status = resultTable.Status(testRow);
              
              if status{1} == "passed"
                  result.status = slreq.verification.Status.Pass;
              elseif status{1} == "failed"
                  result.status = slreq.verification.Status.Fail;
              else
                  result.status = slreq.verification.Status.Unknown;
              end
          else
              result.status = slreq.verification.Status.Unknown;
          end
      end
      Для получения дополнительной информации о GetResultFcn, смотрите Типы Ссылки и Ссылки.

  4. Сохраните linktype_myexcelresults.m.

  5. Укажите тип ссылки. В командной строке, введите:

    rmi register linktype_myexcelresults

    Примечание

    Если команда возвращает предупреждение, то необходимо не указать файл и следовать за шагом 5 снова. Не укажите файл путем ввода:

    rmi unregister linktype_myexcelresults

Создайте ссылку

Выполните эти шаги, чтобы создать ссылку:

  1. От командной строки MATLAB®, введите:

    externalSource.id = 'counterSetsValue';
    externalSource.artifact = 'results.xlsx';
    externalSource.domain = 'linktype_myexcelresults';

  2. Найдите требование связанным со ссылкой путем ввода:

    requirement = reqSet.find('Type', 'Requirement', 'SID', 4);

  3. Создайте ссылку путем ввода:

    link = slreq.createLink(requirement, externalSource);
    Это создает ссылку как тест counterSetsValue для требования SID. В Редакторе Требований ссылка появляется в разделе Links> Confirmed By.

Просмотрите состояние верификации

Обновите состояние верификации для набора требования. В командной строке MATLAB введите:

reqSet.updateVerificationStatus
Выберите состояние верификации для требования путем ввода:
status = reqSet.getVerificationStatus
Это показывает состояние верификации для целого набора требования, который передал или перестал работать. Нажмите на Refresh , чтобы видеть состояние верификации для требований в Редакторе Требований.

Требования для counterSetsValue полностью проверяются. Здесь, состояние верификации показывает, что из трех тестов, один тест передал.

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