Швейцарский нож тестировщика или JMeter не только для нагрузки

1.

Швейцарский нож
тестировщика или JMeter
не только для нагрузки
Махетов Сергей

2.

Обо мне
В области разработки ПО > 10 лет, тестирование > 5 лет.
Тестирование как бизнес-приложения(Web, API, desktop), так и
инфраструктурные решения(Интеграции через HTTP, JMS, JDBC,
Kafka…)
Основной стек – Java(Scala)/JMeter, Gatling, Postman
2

3.

О чем поговорим
Базовое описание Apache JMeter
Создание функционального теста
Дополнительные возможности
Описание других сценариев использования
Работа в команде
3

4.

Что такое Apache JMeter
Open Source application designed to load test
applications and measure performance. By The Apache
Software Foundation
5

5.

Внешний вид
6

6.

Компоненты JMeter
Logic
Controller
Config
Element
Test plan
Listener
Setup TR
Thread Group
Teardown TR
Pre-Processor
Sampler
Postprocessor
Assertion
7

7.

Тест цепочки отправки логов
8

8.

Тест цепочки отправки логов
Client
Adapter
Kafka
Sink
ES
9

9.

Thread group
10

10.

Sampler
11

11.

Sampler
12

12.

Отправка лог-записи
13

13.

Отправка лог-записи
14

14.

Просмотр результата отправки
15

15.

Просмотр результата отправки
16

16.

Просмотр результата отправки
17

17.

Чтение лог-записи из ES
18

18.

Проверка текста в ответе
19

19.

Проверка текста в ответе
20

20.

Дублирование запросов
21

21.

Дублирование запросов
22

22.

Pre-processor для подстановки времени
23

23.

Текущее время в переменной
24

24.

Добавление переменной и функции
25

25.

Переменная в запросе лог-записи
26

26.

Подстановка значения переменной и функции
27

27.

Ошибка при запросе лог-записи
28

28.

Добавление таймаута
29

29.

Тест пройден!
30

30.

Ошибка в цепочке
31

31.

Офсеты Kafka
32

32.

Проверка увеличения офсета Kafka
33

33.

Получение офсета
34

34.

Сохранение текущего офсета
35

35.

Сравнение офсетов до отправки и после
36

36.

Ошибка осталась
37

37.

Плагины
38

38.

SSH Protocol Support
39

39.

SSH Sampler
40

40.

Команда проверки статуса
41

41.

Ошибка приложения
42

42.

Настройки для разных стендов
43

43.

Настройки для разных стендов
44

44.

Logic Controllers
45

45.

Проверка нескольких хостов
46

46.

ForEach контроллер
47

47.

ForEach контроллер
48

48.

ForEach контроллер
49

49.

Реальный пример теста
50

50.

Несколько экземпляров
51

51.

Что еще делаем JMeter
Mock
сервисов
Мониторинг
Запуск
Java кода
Запуск
в CI
Тесты
из Swagger/Openapi
52

52.

Mock-сервер c WireMock
53

53.

Mock-сервер c WireMock
54

54.

Мониторинг с Zabbix
55

55.

Мониторинг с Zabbix
56

56.

CI
./jmeter.sh -n -t ELKTest.jmx \
-l reports/$(date -d "today" +"%%Y%%m%%d_%%H%%M%%S").log \
-e -o reports/$(date -d "today" +"%%Y%%m%%d_%%H%%M%%S")
57

57.

CI
58

58.

CI
59

59.

CI
60

60.

CI
61

61.

Запуск кода
Fat jar
62

62.

Запуск кода
63

63.

Swagger/Openapi
64

64.

Swagger/Openapi
65

65.

Swagger/Openapi
66

66.

Swagger/Openapi
67

67.

Swagger/Openapi
68

68.

Swagger/Openapi
69

69.

Еще используем для работы с
Чтением-записью
файлов
JDBC
JMS/AMQP
70

70.

Еще классные особенности
Кроссплатформенность
Установка
Быстрый
копированием
старт
71

71.

Запуск конкретного сценария
72

72.

Запуск конкретного сценария
73

73.

Повторное использование блоков
Test Fragment
74

74.

Повторное использование блоков
75

75.

Повторное использование блоков
76

76.

Повторное использование блоков
77

77.

Повторное использование блоков
78

78.

Командная работа
~ 262 jmx
~ 5337 Test cases (xml)
Описанная структура тестов
Регламент создания новых и изменения текущих тестов
Инструкции для запуска
79

79.

Минусы и проблемы
Сценарий – xml файл
При работе с GIT сложно мержить изменения
Переменные – строки
Неудобно работать с бинарными http протоколами
Иногда требуется понимание JVM
Нельзя отменить изменения ctrl-z
Scala в JSR223 работает плохо

80

80.

Границы применимости и выбор
инструмента
Слишком громоздкий для некоторых
задач
Вклад в изучение
Может быть хуже специализированных
инструментов
Гибкость в некоторых моментах хуже,
чем у кода
81

81.

Спасибо за внимание!
Остались вопросы?
Махетов Сергей
E-mail: [email protected]
Telegram: @Mahetovs
https://tech.kontur.ru/
82
English     Русский Правила