Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

567 views

Published on

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

Published in: Education
  • Be the first to comment

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

  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

×