Модулі/Системні тести - 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 | Повне підключення (на старті) | Логічний | Вхід | 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/uk - GFDL | July 2026 | OpenSCADA 1+r3070