Upload
sqalab
View
449
Download
0
Embed Size (px)
Citation preview
Software quality assurance days18 Международная конференция по вопросам качества ПОsqadays.com
Москва. 27–28 ноября 2015
Лайшев ТимурООО «Аплана». Москва, Россия
Шаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптов
О докладчике
Лайшев Тимур
Главный инженер-тестировщик
ООО «Аплана»
Нагрузочное тестирование
SAP ERP, HCM, BAIBM ESB, MDM, ISIM/ISAM, PortalExperian Transact SMСПУТНИК…
Шаблоны проектирования нагрузочных скриптов
Понижение производительности при работе с большими объемами
Шаблоны проектирования нагрузочных скриптов
Таблицы
хранение большого объема связных данных
организация справочников
логирование для последующего использования
Шаблоны проектирования нагрузочных скриптов
Последовательности
Генерация уникальных ID и их производных
Организация получения тестовых данных
15Шаблоны проектирования нагрузочных скриптов
ID Client Data …
1 71 795613 …
2 68 311005 …
3 59 817532 …
… … …
ID Client Data … STATUS
1 71 795613 … 0
2 68 311005 … 0
3 59 817532 … 0
… … … 0
16Шаблоны проектирования нагрузочных скриптов
Поле статуса + блокировка записи
17
SELECT FOR UPDATE #1
Шаблоны проектирования нагрузочных скриптов
ID Client Data … STATUS
1 71 795613 … 1
2 68 311005 … 0
3 59 817532 … 0
… … … 0
18Шаблоны проектирования нагрузочных скриптов
SELECT FOR UPDATE #2
ID Client Data … STATUS
1 71 795613 … 1
2 68 311005 … 1
3 59 817532 … 0
… … … 0
ID Client Data …
1 71 795613 …
2 68 311005 …
3 59 817532 …
… … …
Выбор записи посоответствующемуидентификатору
Получение значенияувеличивающейсяпоследовательности
Использование вспомогательной последовательности
1 2 3
19Шаблоны проектирования нагрузочных скриптов
ID Client Data …
1 71 795613 …
2 68 311005 …
3 59 817532 …
… … …
Выбор записи посоответствующемуидентификатору
Получение значенияувеличивающейсяпоследовательности
Использование вспомогательной последовательности
1 2 3
20Шаблоны проектирования нагрузочных скриптов
ID Client Data …
1 71 795613 …
2 68 311005 …
3 59 817532 …
… … …
Выбор записи посоответствующемуидентификатору
Получение значенияувеличивающейсяпоследовательности
Использование вспомогательной последовательности
1 2 3
21Шаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптов
Создание интерфейса
Использование хранимых процедур
Объединение выборок в курсоры
Шаблоны проектирования нагрузочных скриптов
Преимущества решения
Объем «быстрых» данных ограничен только дисковым пространством
Контроль над связностью, уникальностью и равномерностью
Работа в автоматизированном режиме
Единое хранилище данных с удаленным доступом
Простота переноса
Нет явной привязки к средству НТ
Шаблоны проектирования нагрузочных скриптов
Использование собственного промежуточного контроллера запросов
Шаблоны проектирования нагрузочных скриптов
Проблемы стандартного решения
Время построения сценария пропорционально количеству скриптов
Построение ступенек – настоящая пытка
Чем больше скриптов – тем больше вероятность ошибки
Шаблоны проектирования нагрузочных скриптов
Как составить последовательность?
??????????
Интенсивности операций:
Зеленая – 0,1 оп/cКрасная – 0,3 оп/cГолубая – 0,5 оп/c
Шаблоны проектирования нагрузочных скриптов
Некорректное распределение
Интенсивности операций:
Зеленая – 0,1 оп/cКрасная – 0,3 оп/cГолубая – 0,5 оп/c
Шаблоны проектирования нагрузочных скриптов
1
2
3
4
5
6
7
8
9
10
Периоды выполнения операций
Интенсивности операций:
Зеленая – 0,1Красная – 0,3Голубая – 0,5
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
Если номер секунды кратен периоду – операция должна выполняться в эту секунду.
1
2
3
4
5
6
7
8
9
10
Построение последовательности. Шаг №1
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
1
2
3
4
5
6
7
8
9
10
Построение последовательности. Шаг №2
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
1
2
4
5
6
7
8
9
10
3
Построение последовательности. Шаг №3
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
1
2
10
3
4
Построение последовательности. Шаг №4
5
6
7
8
9
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
1
2
10
3
4
5
Построение последовательности. Шаг №5
6
7
8
9
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
1
2
7
8
9
10
3
4
5
6
Построение последовательности. Шаг №6
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
1
2
8
9
10
3
4
5
6
7
Построение последовательности. Шаг №7
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
1
2
9
10
3
4
5
6
7
8
Построение последовательности. Шаг №8
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
10
8
9
Построение последовательности. Шаг №91
2
3
4
5
6
7 Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
10
9
Построение последовательности. Шаг №10
8
1
2
3
4
5
6
7 Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
Формирование окончательного списка
Период: Зеленая – 10 сКрасная – 3 с Голубая – 2 с
Шаблоны проектирования нагрузочных скриптов
Преимущества решения
Простота построения нагрузочных сценариев
Автоматизированный механизм контроля профиля
Устойчивость к корректировке
Шаблоны проектирования нагрузочных скриптов
Использование наследования при создании нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптов
Переменные родительского класса
Соединения (*.Connection)
Параметры запросов (URL, String, Integer, Date, …)
Параметры ответов (String, Integer, Date, …)
Вспомогательные параметры
Шаблоны проектирования нагрузочных скриптов
Методы родительского класса
Конструктор (инициализация)
Получение выборки тестовых данных
Параметризация запроса
Отправка запроса
Анализ ответа
Логирование
Шаблоны проектирования нагрузочных скриптов
Создание дочернего класса
Переменные: параметры запроса
Методы: анализ ответа
Шаблоны проектирования нагрузочных скриптов
Преимущества решения
Неограниченные возможности по функциональному расширению нагрузочных скриптов
Значительное снижение трудозатрат при доработке (отладке) всего функционала
Высокая скорость разработки тестов при расширении нагрузочного покрытия
Простота переносимости между инструментами НТ
Шаблоны проектирования нагрузочных скриптов
Спасибо за внимание
vk.com/rosencranz
linkedin.com/in/tlayshev