Модули/Системные тесты - OpenSCADAWiki

# Модули/Системные тесты

This page is a translated version of the page Modules/SystemTests and the translation is 100% complete.

English • ‎mRussian • ‎Українська

Модуль | Имя | Версия | Лицензия | Источник | Языки | Платформы | Тип | Автор | Описание
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
SystemTests | Тесты OpenSCADA и её модулей | 1.8 | GPL2 | spec_SystemTests.so | en,uk,ru,de | x86,x86_64,ARM | Специальные | Роман Савоченко | Предоставляет группу тестов для OpenSCADA и её модулей.

Модуль содержит набор тестов, предназначенных для тестирования различных подсистем и узлов OpenSCADA. Тесты выполнены в виде функций пользовательского API, следовательно их можно запускать как одноразово, во вкладке "Исполнить" страницы объекта функции, так и из пользовательских процедур, передавая в них нужные аргументы.

Для адресации к тестам можно использовать статический адрес вызова Special.SystemTests.{Test}() или динамический SYS.Special.SystemTests["{Test}"].call(), SYS.Special.SystemTests.{Test}(). Где Test — идентификатор функции в библиотеке.

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

Конфигурационные поля тестов помещаются в секцию модуля "SystemTests" подсистемы "Специальные". Формат конфигурационных полей <prm id="Test Id" on="1" per="10" />
Где:

- id — идентификатор теста;
- on — признак "Тест включен";
- per — период повторения теста (секунд).

Кроме основных атрибутов осуществляется отражение входных параметров функций тестов на одноимённые атрибуты тега "prm". Например, атрибут "name" функции "Param" можно указать в теге "prm".

Допускается указание множества тегов "prm" для одного или разных тестов с одинаковыми или различными параметрами, указывая тем самым на отдельный запуск теста с указанными параметрами. Приведём пример описания всех доступных тестов:

    <?xml version="1.0" encoding="UTF-8" ?>
    <OpenSCADA>
        <station id="DemoStation">
            <node id="sub_Special">
                <node id="mod_SystemTests">
                    <prm id="Param" on="0" per="5" name="LogicLev.experiment.F3"/>
                    <prm id="XML" on="0" per="10" file="/etc/oscada.xml"/>
                    <prm id="Mess" on="0" per="10" categ="" arhtor="DBArch.test3" depth="10"/>
                    <prm id="SOAttach" on="0" per="20" name="../../lib/openscada/daq_LogicLev.so" mode="0" full="1"/>
                    <prm id="Val" on="0" per="1" name="LogicLev.experiment.F3.var" arch_len="5" arch_per="1000000"/>
                    <prm id="Val" on="0" per="1" name="System.AutoDA.CPULoad.load" arch_len="10" arch_per="1000000"/>
                    <prm id="DB" on="0" per="10" type="MySQL" addr="server.diya.org;roman;123456;oscadaTest" table="test" size="1000"/>
                    <prm id="DB" on="0" per="10" type="DBF" addr="./DATA/DBF" table="test.dbf" size="1000"/>
                    <prm id="DB" on="0" per="10" type="SQLite" addr="./DATA/test.db" table="test" size="1000"/>
                    <prm id="DB" on="0" per="10" type="FireBird" addr="server.diya.org:/var/tmp/test.fdb;roman;123456" table="test" size="1000"/>
                    <prm id="TrOut" on="0" per="1" addr="TCP:127.0.0.1:10001" type="Sockets" req="time"/>
                    <prm id="TrOut" on="0" per="1" addr="UDP:127.0.0.1:10001" type="Sockets" req="time"/>
                    <prm id="TrOut" on="0" per="1" addr="UNIX:./oscada" type="Sockets" req="time"/>
                    <prm id="TrOut" on="0" per="1" addr="UDP:127.0.0.1:daytime" type="Sockets" req="time"/>
                    <prm id="SysContrLang" on="0" per="10" path="/Archive/FSArch/mess_StatErrors/%2fprm%2fst"/>
                    <prm id="ValBuf" on="0" per="5"/>
                    <prm id="Archive" on="0" per="30" arch="test1" period="1000000"/>
                    <prm id="Base64Code" on="0" per="10"/>
                </node>
            </node>
      </station>
    </OpenSCADA>

## 1 Параметр (Param)

Описание: "Тест DAQ параметров. Вычитывает атрибуты и конфигурационные поля параметра.
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |
name | Адрес DAQ параметра | Строка | Вход | System.AutoDA.CPULoad

## 2 Разбор XML (XML)

Описание: Тест разбора файла XML. Разбирает и отображает структуру указанного файла.
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |
file | XML файл | Строка | Вход |

## 3 Сообщения (Mess)

Описание: Тест архива сообщений. Периодически вычитывает новые сообщения из архива, для указанного архиватора.
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |
arhtor | Архиватор | Строка | Вход | FSArch.StatErrors
categ | Шаблон категории сообщения | Строка | Вход |
depth | Глубина сообщения, секунд | Целый | Вход | 10

## 4 Подключение SO (SOAttach)

Описание: Тест подключения/отключения модуля.
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |
name | Путь к модулю | Строка | Вход |
mode | Режим (1-подключение;-1-отключение;0-изменение) | Целый | Вход | 0
full | Полное подключение (при старте) | Bool | Вход | 1

## 5 Атрибут параметра (Val)

Описание: Тест значений атрибута параметра. Выполняет периодический опрос последнего значения указанного атрибута, а также опрос архива на указанную глубину.
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |
name | Путь к атрибуту параметра | Строка | Вход | System.AutoDA.CPULoad.load
arch_len | Глубина получения архивных значений, секунд | Целый | Вход | 10
arch_per | Период получения архивных значений, микросекунды | Целый | Вход | 1000000

## 6 Тест БД (DB)

Описание: Полный тест БД. Выполняет:

- создание/открытие БД;
- создание/открытие таблицы;
- создание множества записей (строк) предопределённой структуры;
- обновление множества записей;
- обновление множества записей по ключу запроса;
- получение и проверка значений множества записей;
- сканирование записей;
- сканирование записей предзагрузкой;
- модификация структуры записи и таблицы;
- удаление записей;
- закрытие/удаление таблицы;
- закрытие/удаление БД.

Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |
type | Тип БД | Строка | Вход | SQLite
addr | Адрес БД | Строка | Вход | ./DATA/test.db
table | Таблица БД | Строка | Вход | test
size | Количество записей | Целый | Вход | 1000

## 7 Транспорт (TrOut)

Описание: Тест выходного и/или входного транспортов. Выполняет тестирование выходного транспорта путём отправки запроса к указанному входному транспорту.
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |
addr | Адрес | Строка | Вход | TCP:127.0.0.1:10001
type | Модуль транспорта | Строка | Вход | Sockets
req | Текст запроса | Строка | Вход |

## 8 Язык управления программой (SysContrLang)

Описание: Тест языка управления программой. Производит запрос элементов языка посредством полного пути. Полный путь к элементу языка имеет вид "/Archive/%2fbd%2fm_per". Полный путь состоит из двух вложенных путей. Первый "/Archive/" это путь к узлу дерева контроля. Второй "/bd/m_per" это путь к конкретному элементу узла.
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |
path | Путь к элементу языка | Строка | Вход | /Archive/BaseArh/mess_StatErrors/%2fprm%2fst

## 9 Буфер значений (ValBuf)

Описание: Тесты буфера значений. Содержит 13 тестов всех аспектов буфера значений (подсистема "Архивы-История").
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |

## 10 Архив значений (Archive)

Описание: Тест размещения в архиве значений. Содержит 7(8) тестов архиватора значений на проверку корректности функционирования последовательного механизма упаковки.
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |
arch | Архив значений | Строка | Вход |
period | Период значений, микросекунды | Целый | Вход | 1000000
archtor | Архиватор | Строка | Вход |

## 11 Base64 кодирование (Base64Code)

Описание: Тесты кодирования Mime Base64 алгоритмом.
Параметры:

Идентификатор | Имя | Тип | Режим | По умолчанию
--- | --- | --- | --- | ---
rez | Результат | Строка | Возврат |

Modules/SystemTests/ru - GFDL | July 2026 | OpenSCADA 1+r3070