O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Software quality assurance days
18 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 27–28 ноября 2015...
Шаблоны проектирования нагрузочных скриптов
О докладчике
Лайшев Тимур
Главный инженер-тестировщик
ООО «Аплана»
Нагрузочное...
Шаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптов
Использование кастомных решений
Шаблоны проектирования нагрузочных скриптов
Гибкость решения
Шаблоны проектирования нагрузочных скриптов
Срыв сроков проекта
Шаблоны проектирования нагрузочных скриптов
Перенос тестовых данных
в СУБД
Шаблоны проектирования нагрузочных скриптов
Понижение производительности при работе с
большими объемами
Шаблоны проектирования нагрузочных скриптов
Очистка файлов от уже использованных
данных
Шаблоны проектирования нагрузочных скриптов
Отсутствие контроля над связностью данных
Шаблоны проектирования нагрузочных скриптов
Неравномерное использование записей внутри
набора
Шаблоны проектирования нагрузочных скриптов
Объекты БД как источники тестовых данных
Шаблоны проектирования нагрузочных скриптов
Таблицы
хранение большого объема связных
данных
организация справочников
логир...
Шаблоны проектирования нагрузочных скриптов
Последовательности
Генерация уникальных ID и их
производных
Организация получения тестовых данных
15Шаблоны проектирования нагрузочных скриптов
ID Client Data …
1 71 795613 …
2 68 31...
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 … ...
18Шаблоны проектирования нагрузочных скриптов
SELECT FOR UPDATE #2
ID Client Data … STATUS
1 71 795613 … 1
2 68 311005 … 1...
ID Client Data …
1 71 795613 …
2 68 311005 …
3 59 817532 …
… … …
Выбор записи по
соответствующему
идентификатору
Получение...
ID Client Data …
1 71 795613 …
2 68 311005 …
3 59 817532 …
… … …
Выбор записи по
соответствующему
идентификатору
Получение...
ID Client Data …
1 71 795613 …
2 68 311005 …
3 59 817532 …
… … …
Выбор записи по
соответствующему
идентификатору
Получение...
Шаблоны проектирования нагрузочных скриптов
Ускоряемся: создание индексов
Шаблоны проектирования нагрузочных скриптов
Создание интерфейса
Использование хранимых процедур
Объединение выборок в курс...
Шаблоны проектирования нагрузочных скриптов
Преимущества решения
Объем «быстрых» данных ограничен только дисковым
простран...
Шаблоны проектирования нагрузочных скриптов
Расширение набора данных по ходу теста
Шаблоны проектирования нагрузочных скриптов
Использование собственного
промежуточного контроллера
запросов
Шаблоны проектирования нагрузочных скриптов
Сложные сценарии нагрузки
Шаблоны проектирования нагрузочных скриптов
Проблемы стандартного решения
Время построения сценария
пропорционально количе...
Шаблоны проектирования нагрузочных скриптов
Что такое контроллер?
Тестируемая
система
Шаблоны проектирования нагрузочных скриптов
Собственный промежуточный контроллер
Шаблоны проектирования нагрузочных скриптов
Как составить последовательность?
?
?
?
?
?
?
?
?
?
?
Интенсивности операций:
...
Шаблоны проектирования нагрузочных скриптов
Некорректное распределение
Интенсивности операций:
Зеленая – 0,1 оп/c
Красная ...
Шаблоны проектирования нагрузочных скриптов
1
2
3
4
5
6
7
8
9
10
Периоды выполнения операций
Период:
Зеленая – 10 с
Красна...
Шаблоны проектирования нагрузочных скриптов
Если номер секунды
кратен периоду – операция
должна выполняться в эту
секунду....
Шаблоны проектирования нагрузочных скриптов
1
2
3
4
5
6
7
8
9
10
Построение последовательности. Шаг №2
Период:
Зеленая – 1...
Шаблоны проектирования нагрузочных скриптов
1
2
4
5
6
7
8
9
10
3
Построение последовательности. Шаг №3
Период:
Зеленая – 1...
Шаблоны проектирования нагрузочных скриптов
1
2
10
3
4
Построение последовательности. Шаг №4
5
6
7
8
9
Период:
Зеленая – 1...
Шаблоны проектирования нагрузочных скриптов
1
2
10
3
4
5
Построение последовательности. Шаг №5
6
7
8
9
Период:
Зеленая – 1...
Шаблоны проектирования нагрузочных скриптов
1
2
7
8
9
10
3
4
5
6
Построение последовательности. Шаг №6
Период:
Зеленая – 1...
Шаблоны проектирования нагрузочных скриптов
1
2
8
9
10
3
4
5
6
7
Построение последовательности. Шаг №7
Период:
Зеленая – 1...
Шаблоны проектирования нагрузочных скриптов
1
2
9
10
3
4
5
6
7
8
Построение последовательности. Шаг №8
Период:
Зеленая – 1...
Шаблоны проектирования нагрузочных скриптов
10
8
9
Построение последовательности. Шаг №9
1
2
3
4
5
6
7 Период:
Зеленая – 1...
Шаблоны проектирования нагрузочных скриптов
10
9
Построение последовательности. Шаг №10
8
1
2
3
4
5
6
7 Период:
Зеленая – ...
Шаблоны проектирования нагрузочных скриптов
Формирование окончательного списка
Период:
Зеленая – 10 с
Красная – 3 с
Голуба...
Шаблоны проектирования нагрузочных скриптов
Увеличение уровня нагрузки
Тестируемая
система
Шаблоны проектирования нагрузочных скриптов
Увеличение уровня нагрузки
Тестируемая
система
Шаблоны проектирования нагрузочных скриптов
Увеличение уровня нагрузки
Тестируемая
система
Шаблоны проектирования нагрузочных скриптов
Увеличение уровня нагрузки
Тестируемая
система
Шаблоны проектирования нагрузочных скриптов
Увеличение уровня нагрузки
Тестируемая
система
Шаблоны проектирования нагрузочных скриптов
Увеличение уровня нагрузки
Тестируемая
система
Шаблоны проектирования нагрузочных скриптов
Преимущества решения
Простота построения нагрузочных сценариев
Автоматизирован...
Шаблоны проектирования нагрузочных скриптов
Использование наследования при
создании нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптов
Когда много однотипных скриптов
Шаблоны проектирования нагрузочных скриптов
В чем суть наследования?
Шаблоны проектирования нагрузочных скриптов
Создание родительского класса
Переменные
Методы
Шаблоны проектирования нагрузочных скриптов
Переменные родительского класса
Соединения (*.Connection)
Параметры запросов (...
Шаблоны проектирования нагрузочных скриптов
Методы родительского класса
Конструктор (инициализация)
Получение выборки тест...
Шаблоны проектирования нагрузочных скриптов
Создание дочернего класса
Переменные: параметры запроса
Методы: анализ ответа
Шаблоны проектирования нагрузочных скриптов
Преимущества решения
Неограниченные возможности по функциональному
расширению ...
Шаблоны проектирования нагрузочных скриптов
Использование шаблонов не всегда
оптимально
Шаблоны проектирования нагрузочных скриптов
В ряде случаев оно упрощает жизнь
Шаблоны проектирования нагрузочных скриптов
А иногда это единственный способ
выполнить задачу
Шаблоны проектирования нагрузочных скриптов
Спасибо за внимание
tlayshev@aplana.com
vk.com/rosencranz
linkedin.com/in/tlay...
Próximos SlideShares
Carregando em…5
×

Шаблоны проектирования нагрузочных скриптов

716 visualizações

Publicada em

Доклад Тимура Лайшева на конференции SQA Days-18, 27-28 ноября 2015 г., Москва
www.sqadays.com

Publicada em: Educação
  • Entre para ver os comentários

Шаблоны проектирования нагрузочных скриптов

  1. 1. Software quality assurance days 18 Международная конференция по вопросам качества ПО sqadays.com Москва. 27–28 ноября 2015 Лайшев Тимур ООО «Аплана». Москва, Россия Шаблоны проектирования нагрузочных скриптов
  2. 2. Шаблоны проектирования нагрузочных скриптов О докладчике Лайшев Тимур Главный инженер-тестировщик ООО «Аплана» Нагрузочное тестирование SAP ERP, HCM, BA IBM ESB, MDM, ISIM/ISAM, Portal Experian Transact SM СПУТНИК …
  3. 3. Шаблоны проектирования нагрузочных скриптов Шаблоны проектирования нагрузочных скриптов
  4. 4. Шаблоны проектирования нагрузочных скриптов Использование кастомных решений
  5. 5. Шаблоны проектирования нагрузочных скриптов Гибкость решения
  6. 6. Шаблоны проектирования нагрузочных скриптов Срыв сроков проекта
  7. 7. Шаблоны проектирования нагрузочных скриптов Перенос тестовых данных в СУБД
  8. 8. Шаблоны проектирования нагрузочных скриптов Понижение производительности при работе с большими объемами
  9. 9. Шаблоны проектирования нагрузочных скриптов Очистка файлов от уже использованных данных
  10. 10. Шаблоны проектирования нагрузочных скриптов Отсутствие контроля над связностью данных
  11. 11. Шаблоны проектирования нагрузочных скриптов Неравномерное использование записей внутри набора
  12. 12. Шаблоны проектирования нагрузочных скриптов Объекты БД как источники тестовых данных
  13. 13. Шаблоны проектирования нагрузочных скриптов Таблицы хранение большого объема связных данных организация справочников логирование для последующего использования
  14. 14. Шаблоны проектирования нагрузочных скриптов Последовательности Генерация уникальных ID и их производных
  15. 15. Организация получения тестовых данных 15Шаблоны проектирования нагрузочных скриптов ID Client Data … 1 71 795613 … 2 68 311005 … 3 59 817532 … … … …
  16. 16. ID Client Data … STATUS 1 71 795613 … 0 2 68 311005 … 0 3 59 817532 … 0 … … … 0 16Шаблоны проектирования нагрузочных скриптов Поле статуса + блокировка записи
  17. 17. 17 SELECT FOR UPDATE #1 Шаблоны проектирования нагрузочных скриптов ID Client Data … STATUS 1 71 795613 … 1 2 68 311005 … 0 3 59 817532 … 0 … … … 0
  18. 18. 18Шаблоны проектирования нагрузочных скриптов SELECT FOR UPDATE #2 ID Client Data … STATUS 1 71 795613 … 1 2 68 311005 … 1 3 59 817532 … 0 … … … 0
  19. 19. ID Client Data … 1 71 795613 … 2 68 311005 … 3 59 817532 … … … … Выбор записи по соответствующему идентификатору Получение значения увеличивающейся последовательности Использование вспомогательной последовательности 1 2 3 19Шаблоны проектирования нагрузочных скриптов
  20. 20. ID Client Data … 1 71 795613 … 2 68 311005 … 3 59 817532 … … … … Выбор записи по соответствующему идентификатору Получение значения увеличивающейся последовательности Использование вспомогательной последовательности 1 2 3 20Шаблоны проектирования нагрузочных скриптов
  21. 21. ID Client Data … 1 71 795613 … 2 68 311005 … 3 59 817532 … … … … Выбор записи по соответствующему идентификатору Получение значения увеличивающейся последовательности Использование вспомогательной последовательности 1 2 3 21Шаблоны проектирования нагрузочных скриптов
  22. 22. Шаблоны проектирования нагрузочных скриптов Ускоряемся: создание индексов
  23. 23. Шаблоны проектирования нагрузочных скриптов Создание интерфейса Использование хранимых процедур Объединение выборок в курсоры
  24. 24. Шаблоны проектирования нагрузочных скриптов Преимущества решения Объем «быстрых» данных ограничен только дисковым пространством Контроль над связностью, уникальностью и равномерностью Работа в автоматизированном режиме Единое хранилище данных с удаленным доступом Простота переноса Нет явной привязки к средству НТ
  25. 25. Шаблоны проектирования нагрузочных скриптов Расширение набора данных по ходу теста
  26. 26. Шаблоны проектирования нагрузочных скриптов Использование собственного промежуточного контроллера запросов
  27. 27. Шаблоны проектирования нагрузочных скриптов Сложные сценарии нагрузки
  28. 28. Шаблоны проектирования нагрузочных скриптов Проблемы стандартного решения Время построения сценария пропорционально количеству скриптов Построение ступенек – настоящая пытка Чем больше скриптов – тем больше вероятность ошибки
  29. 29. Шаблоны проектирования нагрузочных скриптов Что такое контроллер? Тестируемая система
  30. 30. Шаблоны проектирования нагрузочных скриптов Собственный промежуточный контроллер
  31. 31. Шаблоны проектирования нагрузочных скриптов Как составить последовательность? ? ? ? ? ? ? ? ? ? ? Интенсивности операций: Зеленая – 0,1 оп/c Красная – 0,3 оп/c Голубая – 0,5 оп/c
  32. 32. Шаблоны проектирования нагрузочных скриптов Некорректное распределение Интенсивности операций: Зеленая – 0,1 оп/c Красная – 0,3 оп/c Голубая – 0,5 оп/c
  33. 33. Шаблоны проектирования нагрузочных скриптов 1 2 3 4 5 6 7 8 9 10 Периоды выполнения операций Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  34. 34. Шаблоны проектирования нагрузочных скриптов Если номер секунды кратен периоду – операция должна выполняться в эту секунду. 1 2 3 4 5 6 7 8 9 10 Построение последовательности. Шаг №1 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  35. 35. Шаблоны проектирования нагрузочных скриптов 1 2 3 4 5 6 7 8 9 10 Построение последовательности. Шаг №2 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  36. 36. Шаблоны проектирования нагрузочных скриптов 1 2 4 5 6 7 8 9 10 3 Построение последовательности. Шаг №3 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  37. 37. Шаблоны проектирования нагрузочных скриптов 1 2 10 3 4 Построение последовательности. Шаг №4 5 6 7 8 9 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  38. 38. Шаблоны проектирования нагрузочных скриптов 1 2 10 3 4 5 Построение последовательности. Шаг №5 6 7 8 9 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  39. 39. Шаблоны проектирования нагрузочных скриптов 1 2 7 8 9 10 3 4 5 6 Построение последовательности. Шаг №6 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  40. 40. Шаблоны проектирования нагрузочных скриптов 1 2 8 9 10 3 4 5 6 7 Построение последовательности. Шаг №7 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  41. 41. Шаблоны проектирования нагрузочных скриптов 1 2 9 10 3 4 5 6 7 8 Построение последовательности. Шаг №8 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  42. 42. Шаблоны проектирования нагрузочных скриптов 10 8 9 Построение последовательности. Шаг №9 1 2 3 4 5 6 7 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  43. 43. Шаблоны проектирования нагрузочных скриптов 10 9 Построение последовательности. Шаг №10 8 1 2 3 4 5 6 7 Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  44. 44. Шаблоны проектирования нагрузочных скриптов Формирование окончательного списка Период: Зеленая – 10 с Красная – 3 с Голубая – 2 с
  45. 45. Шаблоны проектирования нагрузочных скриптов Увеличение уровня нагрузки Тестируемая система
  46. 46. Шаблоны проектирования нагрузочных скриптов Увеличение уровня нагрузки Тестируемая система
  47. 47. Шаблоны проектирования нагрузочных скриптов Увеличение уровня нагрузки Тестируемая система
  48. 48. Шаблоны проектирования нагрузочных скриптов Увеличение уровня нагрузки Тестируемая система
  49. 49. Шаблоны проектирования нагрузочных скриптов Увеличение уровня нагрузки Тестируемая система
  50. 50. Шаблоны проектирования нагрузочных скриптов Увеличение уровня нагрузки Тестируемая система
  51. 51. Шаблоны проектирования нагрузочных скриптов Преимущества решения Простота построения нагрузочных сценариев Автоматизированный механизм контроля профиля Устойчивость к корректировке
  52. 52. Шаблоны проектирования нагрузочных скриптов Использование наследования при создании нагрузочных скриптов
  53. 53. Шаблоны проектирования нагрузочных скриптов Когда много однотипных скриптов
  54. 54. Шаблоны проектирования нагрузочных скриптов В чем суть наследования?
  55. 55. Шаблоны проектирования нагрузочных скриптов Создание родительского класса Переменные Методы
  56. 56. Шаблоны проектирования нагрузочных скриптов Переменные родительского класса Соединения (*.Connection) Параметры запросов (URL, String, Integer, Date, …) Параметры ответов (String, Integer, Date, …) Вспомогательные параметры
  57. 57. Шаблоны проектирования нагрузочных скриптов Методы родительского класса Конструктор (инициализация) Получение выборки тестовых данных Параметризация запроса Отправка запроса Анализ ответа Логирование
  58. 58. Шаблоны проектирования нагрузочных скриптов Создание дочернего класса Переменные: параметры запроса Методы: анализ ответа
  59. 59. Шаблоны проектирования нагрузочных скриптов Преимущества решения Неограниченные возможности по функциональному расширению нагрузочных скриптов Значительное снижение трудозатрат при доработке (отладке) всего функционала Высокая скорость разработки тестов при расширении нагрузочного покрытия Простота переносимости между инструментами НТ
  60. 60. Шаблоны проектирования нагрузочных скриптов Использование шаблонов не всегда оптимально
  61. 61. Шаблоны проектирования нагрузочных скриптов В ряде случаев оно упрощает жизнь
  62. 62. Шаблоны проектирования нагрузочных скриптов А иногда это единственный способ выполнить задачу
  63. 63. Шаблоны проектирования нагрузочных скриптов Спасибо за внимание tlayshev@aplana.com vk.com/rosencranz linkedin.com/in/tlayshev

×