Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РПЗ.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
6.64 Mб
Скачать

6 Тестирование программы

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

Для удобства отладки сервер производит подробное журналирование всех основных событий. Для данной цели используется библиотека с открытым исходным кодом log4j, позволяющая организовать гибкую многоуровневую систему журналирования для программ на языке Java.

6.1 Модульное тестирование

Тестирование отдельных функций сервера производилось с помощью Advanced REST Client (расширение для веб браузера) – средства для создания и выполнения произвольных HTTP запросов. Данная программа позволяет отправлять любые HTTP запросы, а так же просматривать в удобном виде JSON ответы сервера.

6.1.1 Тестирование сервиса авторизации

Для проверки корректности работы сервиса авторизации необходимо выполнить несколько HTTP запросов с различными параметрами и проверить корректность ответа сервера.

Пример параметров запроса представлен на рисунке 6.1.

Рисунок 6.1 – Advanced REST client запрос на авторизацию

Если логин и пароль верны, то ответ от сервера должен иметь следующий формат:

{

"data": {

"login": "admin",

"firstname": "Admin",

"is_admin": true,

"menu": [

{

"caption": "Классы",

"id": 211,

"views": [

{

"caption": "Классы",

"id": 2

},

{

"caption": "Свойства классов",

"id": 6

},

{

"caption": "Методы",

"id": 3

},

{

"caption": "Соединения с БД",

"id": 369

},

{

"caption": "Типы методов",

"id": 26

},

{

"caption": "Группы методов",

"id": 27

},

{

"caption": "Тип данных",

"id": 104

},

{

"caption": "Пакеты",

"id": 1

}

]

}

],

"view_presets": [

{

"id_view": 21,

"caption": "Меню с родителями",

"filter": "[[null,\"parent\",\"is not null\"]]",

"comment": "test preset"

},

{

"id_view": 21,

"caption": "",

"filter": "null",

"sort": "null",

"comment": "первый пресет"

},

],

"settings": {

"key": "2"

}

},

"msg_type": "inf",

"msg": "You logged in."

}

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

Если ввести неверный пароль или несуществующий логин, то сервер вернет сообщение об ошибке в следующем формате:

{

msg_type: "err"

msg: "Неверный логин или пароль."

}

6.1.2 Тестирование сервиса открытия представлений

Сервис открытия представлений /view/open, должен возвращать как метаданные, так и данные для запрашиваемого представления с учетом фильтра, сортировки и разбиения на страницы. Для проверки его работы нужно создать HTTP POST запрос с помощью advanced REST client и сравнить полученный ответ с ожидаемыми данными. Пример запроса на открытие табличного представления показан на рисунке 6.2.

Рисунок 6.2 – Advanced REST client запрос на открытие представления

В случае корректно заданных параметров и отсутствия ошибок сервера будет возвращен JSON ответ в следующем формате:

{

"view": {

"columns": [

{

"alias": "_object_info",

"is_hidden": true,

"header": "Object info",

"type": "JSONObject",

"is_link": false

},

{

"alias": "id",

"is_hidden": false,

"is_calc_field": false,

"field_id": 43,

"header": "ID",

"type": "Integer",

"is_link": false,

"column": 1

},

{

"alias": "name",

"is_hidden": false,

"is_calc_field": false,

"field_id": 44,

"header": "Имя",

"type": "String",

"is_link": false,

"column": 1

},

{

"alias": "parent",

"is_hidden": false,

"is_calc_field": false,

"field_id": 46,

"header": "Родительский пакет",

"type": "String",

"is_link": true,

"link_filter_json": "[[null,\"id\",\"=\",\"this.parent_id\"]]",

"link_view_exp": "{id_view:1}",

"column": 1

}

],

"arrays": {},

"header": {

"caption": "Пакеты",

"class_id": [

1

],

"id_view": 1

},

"methods": [

{

"name": "delete",

"method_id": 184,

"class_id": 1,

"type": "multi",

"method_group": "destructor",

"icon": null,

"views": [

{

"caption": "Удалить пакет",

"id_view": 373,

"view_type": "multi"

}

]

},

{

"name": "edit",

"method_id": 183,

"class_id": 1,

"type": "single",

"method_group": "other",

"icon": null,

"views": [

{

"caption": "Изменить пакет",

"id_view": 372,

"view_type": "single"

}

]

}

],

"preloaded_data": {

"total": 17,

"data": [

[

{

"id": 1,

"display_name": "java"

},

1,

"java",

"java",

null,

null,

null,

1,

"Вт 17 апр 2012 14:23:03 GMT+0000",

"corinf",

1,

"127.0.0.1",

null,

null

],

[...],

...

]

},

"id_tab": 177,

"view_version": 1

},

"msg_type": "inf",

"msg": "View was opened successfully."

}