📢 Load & Performance – Telegram
📢 Load & Performance
878 subscribers
38 photos
3 files
100 links
Избранные материалы о тестировании производительности.
Чат и источник тем: @qa_load
Download Telegram
Forwarded from Viacheslav Smirnov
https://www.luxoft-training.ru/kurs/osnovy_testirovaniya_proizvoditelnosti.html
Еще есть курс от Люксофт, вводный
Forwarded from Sergei Chepkasov
Привет!
Представляю вашему вниманию вечерний пятничный релиз)
1. Библиотека-набор полезных утилит для gatling - "gatling-picatinny" (Picatinny rail — система рельсового крепления, кронштейн, используемый на различных видах стрелкового вооружения)
https://github.com/TinkoffCreditSystems/gatling-picatinny
Позволяет удобно конфигурировать тесты при запуске из CI и локально, писать аннотации с информацией о старте/стопе теста в influxdb, использовать набор готовых фидеров, запускать простой тест из конфига без написания скриптов и многое другое) Смотрите readme и examples в репозитории, постарались подробно все описать.
Идея библиотеки в переиспользовании и шаблонизации типового кода, который приходится писать/копировать в каждом новом проекте, а также в расширении базовых возможностей gatling.
Приглашаю всех желающих заводить issues и контрибутить, планируем и дальше развивать библиотеку.
Если возникают вопросы, то можно писать тут, мне @chepk или @jigarkhwar, по вопросам связанным с модулем profile можно также обращаться к @MaksSieve, вопросы по модулю templates @red_bashmak

2. giter8 шаблон для проекта gatling
https://github.com/TinkoffCreditSystems/gatling-template.g8
Позволяет создавать проект gatling по шаблону (всю структуру проекта, базовые *.scala классы и файлы конфигурации)
Для создания проекта по шаблону достаточно выполнить:
sbt new TinkoffCreditSystems/gatling-template.g8
При запуске попросит ввести название проекта, организации и версии зависимостей.
gatling-picatinny уже подключен
Forwarded from Viacheslav Smirnov
Дополню, чтобы рядышком лежало.
https://github.com/polarnik/gatling-report-example/tree/master/src/test/scala/io/qaload/gatling/reportExample/simulation

Проект с самыми разными профилями нагрузки на #Gatling.
Код снабжен полезными комментариями.

В составе проекта - открытая и закрытая модель нагрузки.
Тестовые_данные_для_нагрузки_Атака_не_клонов_Смирнов_Вячеслав_ВТБ.pdf
9.1 MB
Слайды "Тестовые данные для нагрузки. Атака не клонов" для митапа #9 Общества анонимных тестировщиков.

Спасибо, что пришли на митап. Запись велась, будет позже
Forwarded from Ekaterina Bono
QA-конференция QAASP 2020

16 октября в онлайн формате пройдет большая минская QA-конференция QAASP 2020: Quality Assurance, Automation, Security, Performance, Testing. На нее соберутся эксперты из успешных компаний, чтобы поделиться опытом тестирования не только software, но и hardware.

На конференции в формате онлайн вы сможете послушать доклады и пообщаться о наболевшем по насущным вопросам QA в следующих сферах:
• Ручное тестирование
• Автоматизация тестирования
• Нагрузочное тестирование
• Тестирование безопасности
• Серверное тестирование
• Мобильное тестирование
• Фреймворки и подходы
• Инструменты и тулы
• Usability-тестирование
• Построение процессов и команд в QA
• Управление тестированием
• Карьера в QA и после QA

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

Программа и доступы на сайте: https://qaasp.tech

Когда: 16 октября
Где: Везде, где есть интернет


Скидка 10% по промокоду QALOAD на все типы билетов (настоящие и будущие)
Forwarded from Sergei Chepkasov
Привет!
Релиз новой версии нашей библиотеки для gatling: https://github.com/TinkoffCreditSystems/gatling-picatinny/releases/tag/v0.6.0
Некоторые обновления:
* генерация jwt: добавить json шаблон для payload, добавить в сценарий одну строчку -> на каждой итерации генерируется jwt из шаблона с переменными из фидеров/сессии гатлинга. Актуально для всех у кого замокирована авторизация jwt на тесте.
* regex feeder: генерирует строку по регулярному выражению, дальше можно использовать в сценариях. Актуально для генерации id или других тестовых данных любого формата.
* обновления в модуле profile: теперь можно запускать тесты из yaml конфигурации.
* тест больше не падает при недоступности influxdb, только сообщает об ошибке, стоит учитывать.
Как пользоваться библиотекой можно узнать в ридми: https://github.com/TinkoffCreditSystems/gatling-picatinny/blob/master/README.md
Если создать новый проект из нашего шаблона, то библиотека уже подключена: https://github.com/TinkoffCreditSystems/gatling-template.g8
Вопросы по использованию можно задавать в этом чате или в личке, profile: @MaksSieve, любые вопросы по gatling-picatinny и giter8 шаблону: @chepk @jigarkhwar
Всем хорошего дня)
Привет всем! Все мы в мире нагрузки немного устали от разношерстной терминологии, абстрактной стандартизации и передачи опыта в формате Мастер Джедай -> Падаван.
Поэтому мы решили собрать инициативную группу людей, которая бы начала формирование общей базы знаний по нагрузочному тестированию.
В данную группу очень требуются люди, обладающие этими самыми знаниями в сфере нагрузочного тестирования или близко к ней.
Большая просьба к тем, кто хочет эти знания только получить или просто недостаточно уверен в своих знаниях - не вступать в инициативную группу. Вся база будет общедоступной и мы обязательно будем делать все необходимые анонсы по её реализации и наполнению. С очень большой вероятностью вы сможете дополнять её своими знаниями, но после её формирования.
Ссылка на чат: https://news.1rj.ru/str/LoadKnowledge
Большим плюсом будет если вы, при входе в чат, кратко расскажете о своей работе и опыте. Спасибо!
Forwarded from Viacheslav Kalyokin
Коллеги, привет! Хочу сообщить вам о выпуске новой версии плагина для тестирования AMQP c помощью gatling. GitHub проекта https://github.com/TinkoffCreditSystems/gatling-amqp-plugin. В этой версии (0.0.4) наконец-то появилась поддержка топиков, обновлены версии gatling и rabbit-mq клиента. Изменён ДСЛ для задания пропертей и заголовков сообщений. Возможно кому-то пригодится, будем ждать вашего фидбека. #gatling #amqp #rabbit-mq #gatling3.4
Всем привет!
Обновил пример gatling-скриптов для демонстрации различных моделей нагрузки.

Открытая модель нагрузки
Сценарий:
io.qaload.gatling.reportExample.simulation.OpenModel_IncrementUsersPerSec
* Gatling Grafana Report: Gatling - open model
* openmodel-incrementuserspersec

Обратите внимание, как при открытой модели нагрузки растет количество одновременно работающих сценариев после точки деградации

Закрытая модель нагрузки
Сценарий:
io.qaload.gatling.reportExample.simulation.CloseModel_IncrementConcurrentUsers + trottle
Который рекомендую использовать вместо открытой модели
* Gatling Grafana Report: Gatling - closed model
* closemodel-incrementconcurrentusers

Обратите внимание на ровный по RPS профиль нагрузки, это trottle. И что после точки деградации количество параллельных сценариев (а следовательно потоков в Gatling) не растёт.

Значит Gatling не упадет по Out Of Memory Error под конец теста. А нагрузка та же самая.

По ссылкам доступны отчёты: Grafana и HTML.

Репозиторий:
https://github.com/polarnik/gatling-report-example
Forwarded from Sergei Chepkasov
Всем привет!
Провели воркшоп на гейзенбаге по тестированию производительности с gatling и gitlab, для воркшопа подготовлено множество материалов, которые могут помочь в самостоятельном изучении этих инструментов.
Все материалы доступны в публичном репозитории: https://gitlab.com/tinkoffperfworkshop
Первую часть воркшопа можно повторить самостоятельно по шагам из шпаргалки: https://gitlab.com/tinkoffperfworkshop/part-1/cheat-sheet
Во второй части созданы отдельные репозитории, в них также есть ридми с инструкциями: https://gitlab.com/tinkoffperfworkshop/part-2

Что есть интересного:
1. Разворачиваем окружение для тестов локально в контейнерах: influxdb, vector, loki, prometheus, cadvisor, portainer, grafana, gitlab-runner
2. Создаем скрипты gatling для различных протоколов: http, jdbc, grpc
3. Создаем CI джобы для gitlab
4. Подключаем агент в gitlab.com
5. Проводим и мониторим тесты
TestTrend meetup
2 декабря 2020 года

Программа митапа:
1️⃣ Владимир Плизга, ЦФТ, “И мне ничего за это не будет.” Как внедрять тестовое поведение в чистовой код?
Рассказ с примерами, демoнстацией и сравнением
- AspectJ
- Byteman
- jMint
🗝 про Side Effect Injection
🖼 Слайды к докладу

2️⃣ Артём Козленко, ЦФТ, Атомарность в UI-тестах
Рассказ с примерами и демонстрацией того, как можно
- упростить тесты и ускорить их
- использовать Mock-и для этого
- сделать тесты более стабильными
🗝 про Целевую проверку

3️⃣ Вячеслав Смирнов, ВТБ, Три этапа поиска максимальной производительности
Рассказ с примерами реализации и схемами работы:
- Прогревающего теста
- Теста MaxPerf
- Теста стабильности
🗝 про применение таймеров для разных тестов в Apache.JMeter и Gatling
🖼 Слайды к докладу

🎥 Запись: https://youtu.be/rCHJ7iQr6To
Где есть и сами доклады и ответы на вопросы.
Часть ответов на вопросы осталась за кадром в чате: https://news.1rj.ru/str/testtrend_cft/884

Мне очень понравилось. Участникам тоже. Отзывы классные
Не так давно вышел новый jmeter 5.4. Добавили GraphQL Sampler и новый InfluxDBClient, который пишет "raw" results. Для тех кому интересно вот release notes и ссылочка на скачивание:
https://jmeter.apache.org/changes.html
https://jmeter.apache.org/download_jmeter.cgi
Forwarded from Viktor Ganeles
Ребята, я тут выступил на конфе от OTUS
Рассказываю, как мы поэтапно оптимизировали систему

https://m.youtube.com/watch?v=FU3zTrRqMys&t=11700s

Я начинаюсь в 03:15:00
Всем привет!
Обзор того, как мы делились опытом и помогали друг другу за две недели. #дайджест

Максим Евлентьев долго пытался получить в Grafana значения Percentile, такие как JMeter HTML Report, ему помогали все:
▫️ Попробовали backend_influxdb.send_interval=1
▫️ Строили гипотезы как считается статистика
▫️ Функции last("pct99.0"), mean("pct99.0"), percentile("pct99.0",99), percentile("mean",99) не дали нужной точности, минимальная погрешность - 20% у mean("pct99.0")
Пришли к необходимости использования сырых данных:
▫️ использовать Novatech-плагин, что шлет сырые данные
▫️ JMeter 5.4, который может писать сырые данные
▫️ Telegraf как Proxy для надежности вставки сырых данных
❗️Но помните - сырые данные замедляют InfluxDB, альтернативы сырым данным:
▫️ Clickhouse и InfluxDB Сontinious Querie для аггрегации сырых данных
▫️ Наоборот увеличить шаг отправки данных с 1с до 30с для точности и простоты аггрегаций


📊 Обсудили сравнение двух запусков тестов :
▫️ Проект influxdb-timeshift-proxy
▫️ Просто настройку Query Option / Time Shift в Grafana
▫️ Язык Flux + функцию timeshift
▫️ Хранилище ClickHouse + timeshift
▫️ Плагин MetaQuery для Grafana имеет функцию TimeShift
▫️ По сырым CSV-данным и заливкой сырых логов SendLogToInfluxDB (от Степана)
▫️ По сырым данным заливаемым с jsr223-listner-ом
▫️ Roman указал на проект autohome-compareQueries-datasource который работает с Grafana 6.5.3
▫️ Простой вариант с MergeResults + стандартный html отчёт + готовый скрипт для Jenkins
▫️ Предложен проект carrier-io, в котором есть Grafana-доска со сравнением


😀 Шутили


Разработки:
🆕 Sergey Bronnikov реализовал свой perfmon-agent на языке C. Если кому нужно - обращайтесь к @ligurio
🆕 Степан реализовал SendLogToInfluxDB для отправки JTL/CSV логов JMeter в InfluxDB

Доклады:
🎥 Виктор выступил с докладом "Пример оптимизации производительности в 32 раза"

Gatling:
▫️Отладка HTTP-запросов в Gatling логированием и через проксирование в Fiddler
▫️Разделение Gatling-статистики по двум системам:
▫️по двум базам данным InfluxDB через разные порты
▫️ по двум разным серверам InfluxDB
JMeter:
▫️обсуждали как на связке Grafana + InfluxDB сделать отчеты для JMeter такие же как в Yandex.Tank, Кирилл предложил свой jmeterReports.
▫️поняли, что плагин jp@gc - Transactions per Second учитывает подзапросы, и значения TPS получаются выше, чем в Summary Report / Throughput для TOTAL
▫️получали дату из интервала через ${__RandomDate(,2020-12-09,2021-12-09,,)}
▫️настройка профиля нагрузки со стандартной Thread Group
▫️скачивание огромного ответа на SQL-запрос с OS Process Sampler
▫️подбирали количество потоков в JMeter для увеличения TPS
▫️выбирали сайт и способ для поиска пределов JMeter
▫️выясняли причины Response code:Non HTTP response code: org.apache.http.conn.HttpHostConnectException
▫️заливали Connect Time из сырых JTL/CSV-логов JMeter в InfluxDB c помощью проекта SendLogToInfluxDB
▫️игнорировали ошибку NullPointerException: null при использовании openJDK 15.0.1 и JMeter 5.3, 5.4 на MacOS, которая исправилась с переходом на AdoptOpenJDK
▫️осваивали работу с HTTP(S) Test Script Recorder, Fiddler, Proxyman и конверторами для записи скриптов
▫️убирали ошибку java.lang.OutOfMemoryError: Metaspace in thread удалением -XX:MaxMetaspaceSize=256m из параметров запуска и профилировали JMeter c JProfiler, Java Flight Recorder и AsyncProfiler
▫️меняли Xmx Xms без правки jmeter.bat
▫️беуспешно пытались сделать дробный малый RPS с ThroughputShapingTimer (это невозможно, тут нужен Constant Throughput Timer)
▫️удивлялись, что в JMeter есть Autosave и отмена редактирования Ctrl+Z

Также интересные обсуждения:
1️⃣ Выстраивание коммуникации на проекте НТ, советы бывалых
2️⃣ Рассчет количества WebSocket-подключений с одной станции AWS
3️⃣ Расчет модели нагрузки, поиск ПЧ (пиковый час)
4️⃣ Разбор AWR для Oracle
5️⃣ Спор нужна ли загрузка статики?
Она не влияет на backend в некоторых системах
Она может загружать сеть и диск
Может отдаваться самим беком и даже приводить к OutOfMemory
Может быть не настроено клиентское кеширование на сервере и статика - узкое место