820
Избранные материалы о тестировании производительности. Чат и источник тем: @qa_load
Hello performance lovers!
Hello Grafana Lovers!
счетчики производительности с серверов тоже дадим в формате csv
И если после этого предполагается активная работа с Pandas, и метрик много, то это один сценарий.
Если с Excel, Google Tables, чтобы графики построить, а метрик мало, это второй сценарий.
Если с Excel, Google Tables, чтобы таблички отсортировать просто, то третий.
По каждому пункту можно или потратить N времени на обсуждение и потом M времени на реализацию. Или 0 времени на обсуждение, а потом 10xM на реализацию. И так и так получается не мало.
Стоимость работ я тут опущу, как ведутся переговоры по стоимости на фрилансе, мне просто неведомо. N времени на обсуждение уйдет не просто так, чтобы и стоимость согласовать
Аудитория была доброжелательная. Я волновался, так как мало готовился. А меня подбадривали - ты что как Гарольд, расслабься, это квартирник. Среди присутствующих не было нагрузочников или они не дали о себе знать при знакомстве, поэтому выбрал желтые стикеры для рассказа, они больше про общие истории
Тестирование, когда на рабочем месте нет интернета, тонкости работы с вложениями почты и флешками.
Работа на субподряде, сочинение отчетов и сделки с совестью
Работа в одиночку и важность поддержки
Нужны ли нагрузочные тесты вообще, и если ли они у кого-то
Что ждет команда от нагрузочника, когда все тормозит, а чего точно не ждет
Что имеет в виду пользователь, когда пишет, что у него что-то тормозит, и как важно уточнить все детали, позвонить, написать, прийти или приехать в гости
Рассказал про необычное тестирование очень асинхронного процесса банковских переводов со счета на счет в другом банке, важность трассировки запросов в таких системах
И что не получал выигрыша, если отдавал приоритет работе и проекту, а не здоровью, семье и делам дома
И послушал истории аудитории, про работу на заводах, согласование 800-т страничных распечаток кода программ и что происходит, когда система держит 50 rps, а должна держать 1000:
Если забыть о проблеме, то ее не существует (с)
Аудитории понравилось, мне тоже. Такой вот был доклад, без единой строчки кода на JMeter, k6, Java, но про нагрузку
Доклад про Performance as a service в Самокат можно послушать 29 сентября в рамках очередного Samokat_tech meetup. Приходите - буду рад всех видеть. /channel/samokat_tech/115
Читать полностью…
Как настроить поступление данных из jmeter в influxdb?
Тест запускается из jenkins в нескольких экземплярах
1) TAG_AGENT
Если агенты запускаются, как отдельные агенты, без мастер-слейв,
то важно разделить данные с помощью тегов.
Добавить тег с именем агента в результаты, чтобы они не перемешивались.
https://jmeter.apache.org/usermanual/component_reference.html#Backend_Listener
TAG_WhatEverYouWant
You can add as many custom tags as you want. For each of them, create a new line and prefix its name by "TAG_"
Например
TAG_AGENT
Значение - можно такое ${__machineName}https://jmeter.apache.org/usermanual/functions.html#__machineName
2) TAG_BUILD_ID
И нужен идентификатор запуска из jenkins, чтобы не перемешивать все запуски между собой
https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables
BUILD_ID
The current build ID, identical to BUILD_NUMBER for builds created in Jenkins versions 1.597+
Например такой тег, тоже добавляется новой строкой в BackendListener:
TAG_BUILD_ID
Значение
${__P(BUILD_ID)}
BUILD_ID прокидывается из переменных окружения в тест JMeter, как property.jmeter.properties
Суть такая - сохранять метрики каждую секунду теста не стоит, будет много метрик.QUEUE_SIZE = 5000 (по умолчанию) - такое значение нас устраивает его хватаетbackend_metrics_window_mode=timedА вот тест делает (с одного агента) уже 200 запросов в сек и мы настраиваем отправку раз в 60 сек.
backend_influxdb.send_interval=60 # было 5
backend_metrics_large_window=5000 # это устраивает нас > 3000
QUEUE_SIZE = 12000 (увеличиваем)4) Сумма по BUILD_ID = сумма сумм по AGENT
backend_metrics_window_mode=timed
backend_influxdb.send_interval=60 # было 5
backend_metrics_large_window=12000 # было 5000
Вот и видео подъехало про #k6 и #gatling https://www.youtube.com/watch?v=YtZbHhG6EXs
Преза и полезные ссылки:https://www.notion.so/DUMP-EKB-2022-4fe0fe70c35c44238687659f81e893ea
Материалы доклада
Профилирование #JVM в #Kubernetes
Запись:
https://youtu.be/JzOlHADAnpA
(на качестве 480p картинка не очень хорошая, на остальных настройках хорошая)
Слайды:
https://polarnik.github.io/JVM-profiling-in-Kubernetes/
Для красивого просмотра слайдов нужно скачать и установить шрифт Roboto:
https://fonts.google.com/specimen/Roboto
Описание доклада
В тему доклада было обсуждение в подкасте Битовая каска (29 апр. 2021 г):
Профилирование приложений: https://youtu.be/hUW7-pTOlaI
Коллеги, предлагаю наш вариант модуля, упрощающего работу со "СЦЕНАРИЯМИ" тестов Jmeter.
Чем он хорош:
При запуске теста достаточно указать параметры ступеней вашего теста в процентах профиля:
- Начни с нагрузки в 100%, потом шагай ступеньками по 10%
А параметры, нужные для подачи нагрузки по ВСЕМ операциям, входящим в сценарий, будут рассчитаны автоматически.
Так как в сценарии обычно много тред-групп (работающих с разной интенсивностью), настройки каждой тред-группы могут отличаться.
С нашим модулем изменять настройки КАЖДОЙ тредгруппы больше не потребуется.
Подробное описание по ссылке:
https://github.com/ganeles/JmeterSmartScenario
Всем привет! Есть новости для тех, кто раздумывает посетить конференцию по нагрузке в Москве, 16 сентября этого года.
Начну с хорошей. Для участников сообщества скидка на билеты будет 50%. Надо быть физическим лицом, и ввести промокод
50% от 12 000 = 6 000 рублей за offline билет
Таких промокодов пока 10 только, поэтому если
▫️16 сентября будет свободное время
▫️и будет возможность быть в Москве
▫️и есть 6000 рублей на билет
то пройдите опрос ниже.
В понедельник раздадим промокоды среди тех, что выбрал вариант "Мне будет нужен промокод на скидку"
+1 к дипломатии, +10 к потенциальным участникам
ссылка на голосование:
/channel/qa_load/55797
Ссылка на саму конфу:
https://perfconf.ru/
Конференция по тестированию Heisenbug ищет спикеров 🔥
Вам есть о чем рассказать и что обсудить с коллегами по цеху? Тогда вам нужно подать заявку на участие в конференции! Осенний Heisenbug пройдет в гибридном формате: онлайн+офлайн.
Темы, которые будут интересны:
✔️Функциональное тестирование;
✔️Нагрузочное тестирование;
✔️SDET;
✔️DevOps в тестировании.
Но не ограничивайте себя этим списком — вы можете подать заявку с любой темой из области тестирования.
Если все-таки сомневаетесь, то программный комитет всегда готов обсудить актуальность темы и помочь выбрать правильный вектор доклада. Плюс, ребята помогут с прокачкой ваших ораторских навыков, если у вас мало опыта в публичных выступлениях.
👉 Подать заявку и узнать подробности можно на сайте.
❓Вопросы присылайте на почту program@heisenbug.ru
Запись сегодняшнего подкаста. Будем рады любому фидбеку. Временные метки постараемся внести в ближайшее время - они появятся в этом сообщении. Всем классных вакансий 🎧
Читать полностью…
До подкаста осталось меньше 5 часов! Ждем всех сегодня в 18:20 по Москве :)
Читать полностью…
https://dump-ekb.ru/testing-qa
14 мая @gim6626 (Дмитрий Винокуров, Miro) будет выступать на конференции DUMP в Екатеринбурге
с темой:
Путь от одного человека до распределённой команды нагрузочного тестирования
А @ant_nch (Антон Нечеухин, Miro) с темой
Структура QA в крупной компании
который ранее выступал на DUMP с темой
Достоверный нагрузочный тест c учетом непредвиденных нюансов
https://youtu.be/oNdVWREIfoY
Темы интересные
Билет на Online-трансляцию стоит 3500 рублей
Материалы доклада "Мониторинг производительности JVM"
Смирнов Вячеслав, ВТБ
Готовилось для Neat Talks 11 (18.03.2021)
Видео: https://youtu.be/31XdtPJ_v5Y?t=3205
Слайды: https://polarnik.github.io/JVM-performance-monitoring/
Если какой-то слайд не отображается, обновите страницу, это HTML-документ
Слайды одним pdf-документом: https://drive.google.com/file/d/1PMisWJ_DkEjRn0V6JDFjbAOfR4qs0l1M/view?usp=sharing
1:56 знакомство
5:10 отличия аутсорса, аутстаффа и продуктовой разработки
18:27 почему аутстафф а не найм
22:35 НТ можно внедрить в планирование релизов
25:15 НТ тянет за собой культуру разработки вообще
26:35 о заинтересованности в НТ
29:00 об обосновании необходимости и возможности НТ
34:40 связи автоматизации АТ и НТ
36:42 принципы и инструменты НТ
46:24 с чего начать тестирование
59:37 как оценить успешность нагрузки
1:02:42 как быть с методикой
1:05:40 как интегрировать НТ в разработку
1:14:55 долгое НТ стоит выносить в отдельный пайплайн
1:17:30 о тестировании с помощью микробенчмарков
1:20:55 конечная точка развития НТ
1:22:10 об автоматизации построения отчётов
1:29:02 о более тесном взаимодействии с продуктом
1:30:34 рутина автоматизирована
1:32:40 вопросы чата
1:32:47 опыт и советы насчёт НТ микросервисов
1:38:16 как автоматизировать отчёт
1:40:10 ещё раз про тестирование микросервисов
1:40:50 ещё раз, во что развивать НТ
1:44:15 о тестировании на проде
1:46:04 о развитии НТ в проекте и НТ инженеров
Оживлю немного канал заметкой о том, как можно сымитировать подачу нагрузки с разных IP-адресов для JMeter и не только. Тут речь про HTTP
Далее копия сообщения /channel/qa_load/96296/125780
А есть ли в системе балансировщик нагрузки или proxy, который и принимает подключения от клиентов? Nginx, haproxy, ...
Если балансировщик/прокси есть, то за ним один backend-сервер или несколько?
Если несколько серверов на стороне сервера приложений, то балансировщик как выполняет балансировку - по ip-address (реальному адресу или заголовку X-Forwarded-For и/или X-Real-IP), по sticky session (cookie), просто рандомом (round robin)
Если выполняет по ip-address (или по X-Forwarded-For заголовку от клиента с адресом), то есть ли ограничения на подключения от балансировщика до одного сервера приложений? Они меньше чем 5000 подключений?
Если ограничения меньше 5000 подключений, то будет возможность просто их увеличить, не навредив серверу?
Было 50 подключений к серверу, а все остальные ждали в очереди в течение 60 секунд, а теперь будет 5000.Или увеличить таймаут, что может навредить самому тесту (тест будет не тестировать, а ждать)
Было 50 подключений к серверу, а все остальные ждали в очереди в течение 60 секунд, а теперь будут ждать 600 секунд.
set_real_ip_fromсервера nginx добавляется ip-адрес нагрузочной станции с Apache.JMeter и nginx начинает думать, что Apache.JMeter это не клиент, а тоже балансировщик, вышестоящий балансировщик, через который приходят запросы реальных клиентов
set_real_ip_from 192.168.0.100;
set_real_ip_from 192.168.0.0/24;
set_real_ip_from ::1;
set_real_ip_from 127.0.0.1;
option forwardfor
Request::setTrustedProxies(array('192.168.0.100', '192.168.0.0/24', '::1', '127.0.0.1'));
play.http.forwarded.trustedProxies=["192.168.0.100", "192.168.0.0/24", "::1", "127.0.0.1"]
server.tomcat.remote-ip-header=x-forwarded-for
server.tomcat.protocol-header=x-forwarded-proto
server.tomcat.internalProxies="192\.168\.0\.100"
By default, 10/8, 192.168/16, 169.254/16, 127/8, 100.64/10, 172.16/12, and ::1 are allowed.У параметра internalProxies приоритет выше, чем у trustedProxies:
X-Forwarded-For
X-Real-IP
44.77.111.${__jexl3( ${__threadNum} % 200 )}
Читать полностью…
https://freelance.habr.com/tasks/514195
Необходимо протестировать веб-портал интернет-магазина.
Нагрузочное тестирование сценария заказа для 10 000 пользователей. Нужен опыт проведения такого тестирования.
Будет нужно распределение нагрузки, разные точки нагрузки (сервера).
Сценарий будет предоставлен, нужно будет записать скрипт, параметризировать, заполнить шаблон отчета который дадим. Тестовые данные мы подготовим, счетчики производительности с серверов тоже дадим в формате csv
———
Зашел как-то разговор, можно ли заниматься нагрузкой, не на основной работе? Мне было сложно оценить, я бы сам не смог спланировать такой график. Половина времени в нагрузке занимает общение. Это очень общительная работа, потому что она нетиповая, нешаблонная. А делать нетиповую работу на условном фрилансе очень сложно
Нашел для примера задачу на тестирование производительности (такая была только одна). На ее примере попробую представить, возможно ли ее сделать.
Необходимо протестировать веб-портал интернет-магазина.
С одной стороны, веб-портал это контентная часть проекта. И в качестве результатов тестирования может понадобится анализ с помощью webpagetest.org, pagespeed, ... И рекомендации, касательно кеширования, оптимизации на стороне верстки или касательно размеров изображений. Без работы с которыми можно и не начинать нагрузку на API-часть. Но может иметься в виду тестирование и API и отдачи статики и самой статики, всего.
Нагрузочное тестирование сценария заказа для 10 000 пользователей.
Если речь про скорость выполнения 10 000 итераций сценария заказа, то задача одна.
Если в сценарии подразумевается и вход, поиск, просмотр каждого товара, работа с корзиной, выход, задача другая. Более сложные сценарии, более сложны в отладке, это как с атомарностью тестов. В плохих случаях, до самого заказа можно не дойти из-за нестабильности предыдущих шагов.
Если тут имеется в виду 10 000 одновременных подключений, и разные другие технические а не бизнесовые характеристики, то задача третья. После такой задачи будет, возможно, обсуждение в чате qa_load, что инструмент {название} не тянет нагрузку, что делать, помогите. И будут ответы, что тут имелось в виду, не 10к подключений, а 10к итераций. 10к итераций за время, которое нужно установить или за определенное время.
Нужен опыт проведения такого тестирования.
Значит, как первый проект такое взять не получится. Это задача для человека с опытом, портфолио.
Будет нужно распределение нагрузки, разные точки нагрузки (сервера).
Если тут емеется в виду, что нагрузка будет подаваться из разных точек, то сделать такой тест будет дорого; если речь про сотни адресов.
Если имеется в виду, что будут нагружены все серверы магазина, а не только какой-то один IP-адрес, то надо будет разобраться с тем, как устроена балансировка нагрузки.
Сценарий будет предоставлен, нужно будет записать скрипт, параметризировать
Это, понятная часть работы. Но она зависит от того, что имеется в виду под
Нагрузочное тестирование сценария заказа для 10 000 пользователей.
и
Тестовые данные мы подготовим
Если имеется в виду, что будут даны 10 000 токенов пользователей, а также будет дана выгрузка названий и идентификаторов товаров, чтобы было проще делать эмуляцию наполнения корзины, то у задачи сложность на меньшее количество времени.
Если будут не токены, а логины и пароли в количестве 10 000 штук, то сложность выше.
Если будут даны, не идентификаторы и названия товаров, а только названия, то еще выше.
Вариантов много
заполнить шаблон отчета который дадим
Лично для меня этот этап всегда долгий. В простом случае - система нагрузку держит, вот ссылки на детали. Но если система нагрузку не держит, то анализ почему, результаты 5-ти, 10-ти итераций, фиксация сделанных оптимизаций, фиксация результатов оптимизаций.
Всем привет! После активации функции подчатов в чатике по нагрузке, данный канал был автоматически отвязан от него. И тепепрь он сам по себе. Подумал, что можно его оживить. В канале все еще есть 8 администраторов, 8 людей, которые могут писать что-то интересное
Был в субботу 27 мая на IT-квартирнике в Ереване, вышел на замену человеку, который заболел перед мероприятием. Здоровья этому человеку
Квартирник это такой формат, где может быть несколько ведущих и не очень большая аудитория. Ведущий более подходящее слово, чем спикер. Так как все общаются, аудитория активно участвует и развивает дискуссию на заданную тему.
У меня был день на подготовку, поэтому выбрал тему "Стихийное тестирование производительности", сделал в miro.com один слайд в формате квартирника, сайт unsplash.com помог с подборкой фонов, добавил на слайд заметок с историями под разную аудиторию. Добавил пару ссылок и QR-кодов на форму обратной связи да слайды через qrcoder.ru и пошел
Ссылка на слайд вот тут
тут по моему докладу статью на хабр вкрутили, там как раз про фантастическую сущность PerfOps. буду рад комментариям)
https://habr.com/ru/company/oleg-bunin/blog/682746/
Вот Google Chrome имеет встроенные метрики. Часто приложения мобильные кроссплатформенны за счёт того, что они работают в виджете Google Chrome. И все метрики могут уже у вас быть
https://developer.android.com/guide/webapps/managing-webview
Если у вас Unity то метрики производительности тоже будут
Проверьте это - какая технология в основе лежит
Что я дальше делал. Поискал бы общеиспользуемые метрики для конкретной технологии
Названия метрик можно взять в
Руководствах:
https://firebase.google.com/docs/perf-mon/screen-traces?platform=ios
https://developer.android.com/topic/performance/measuring-performance
Google Lighthouse
https://developer.chrome.com/docs/lighthouse/overview/
Page Speed:
https://web.dev/measure/
В информации о форматах файлов:
https://en.wikipedia.org/wiki/JPEG_2000
https://en.wikipedia.org/wiki/WebP
https://en.wikipedia.org/wiki/Category:Portable_Network_Graphics
Например, у вас PNG это изображение не отображается пока оно полностью не загрузится. Ваши пользователи видят, что отображение долгое. Может быть это загрузка долгая. А она долгая потому что nginx который отдает фотографии не настроен - нет заголовков для кеширования
это можно проверить в fiddler, charlesProxy, proxyman
Или он настроен, но CDN для региона Малайзия используется из Ирландии - и причина где-то там
Или Fiddler, Charles покажут что изображение просто огромное - 5 МБайт фото на iPhone 30 c гигакамерой. Тогда придумайте как делать Preview этого фото и как его скачивать - разделите. Или просто пожмите все, как сделали в vk с потерями возможно.
Если все не так. То вам можно профилировать
https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview
и замерять отрисовку по косвенным признакам - длительности работы Render-потоков. Может будет не точно, но тоже ок
https://developer.android.com/reference/kotlin/androidx/benchmark/macro/FrameTimingMetric
по frameCpuTimeMs
Программа конференции по тестированию Heisenbug готова!
За три дня вы сможете посмотреть 23 доклада и поучаствовать в 6 воркшопах.
В программе есть доклад о нагрузочном тестировании.
Виктор Ганелес, Кирилл Юрков — «Антипаттерны тестирования производительности»
В тестировании производительности есть свои особенности, которые можно назвать паттернами. Паттерны могут быть очень специфичными для прикладной задачи, а еще их можно перечислять вечно. Именно поэтому авторы расскажут о том, какие бывают антипаттерны и где они таковыми являются, а где нет.
Посмотреть всю программу, и купить билет можно на сайте.
Вы еще успеваете купить Personal Standard билет со скидкой по промокоду qaload2021JRGpc
@gim6626 написал на Хабре большую статью (почти методичку) о личном опыте и опыте Miro в развитии направления нагрузочного тестирования - https://habr.com/ru/company/miro/blog/573338/. Основное внимание уделено именно общей методологии НТ, а не техническим деталям отдельных инструментов. Статья будет полезна в первую очередь новичкам, так как там пошагово расписаны все этапы от формулировки требований до составления отчёта с приведением конкретных примеров из практики компании, в том числе по автоматизации. Опытным инженерам статья тоже может быть интересна как пример того, как устроено НТ в другой компании.
Читать полностью…
Доброе утро! Сегодня и завтра 8-9 июля пройдет PG Day'21 Russia. Участие бесплатное. Начало в 10:00 МСК, трансляцию можно посмотреть на YouTube. Для общения со спикерами и другими участниками подключайтесь к Slack каналу конференции.
Читать полностью…
Материалы доклада
Профилирование #JVM в #Kubernetes
https://heisenbug-piter.ru/2021/spb/talks/7xxou7lmwvn6xnfrx4atnd/
Слайды доступны на странице доклада.
Или так: https://polarnik.github.io/JVM-profiling-in-Kubernetes/
В тему доклада было обсуждение в подкасте Битовая каска (29 апр. 2021 г):
Профилирование приложений: https://youtu.be/hUW7-pTOlaI
Друзья!
Приглашаем вас на 7-ю ежегодную конференцию по нагрузочному тестированию, которая состоится 16 сентября 2021 года в Москве (оффлайн и онлайн форматы).
Кому будет интересно:
- инженеру в области нагрузочного тестирования,
- разработчику высокопроизводительных приложений,
- руководителю ИТ-департамента,
- менеджеру ИТ-проектов;
Что вы узнаете:
- как решать проблемы высокопроизводительных систем,
- оригинальные технологические подходы к процессу тестирования производительности ИТ-систем,
- новые методики и свежие идеи для повышения отказоустойчивости ИТ-систем,
- успешные практические советы и кейсы,
- современные технологии и новые тенденции нагрузочного тестирования,
- последние новости из этой области от профессионалов и лидеров рынка тестирования,
Регистрируйтесь, мы ждем вас http://perfconf.ru/
💥Анонсируем второй выпуск подкаста, теперь темой обсуждения будет "Рынок НТ, от вакансий до собеседований".
На повестке:
- обсудим разницы грейдов,
- поговорим о зарплатах,
- расскажем как сами проводим собеседования
- а еще о жизни нагрузочника вне финтеха и многое другое
Постараемся пригласить коллег от HR и в конце бонусом проведем пробное собеседование рандомному желающему из чата (если такие будут).
Дата подкаста - 19.05.21. Точное время анонсируем используя новый функционал телеграмма - "отложенные войс чаты", в верхней части чата появится временная мета до начала подкаста. Сделаем это заранее, так что не пропустите :)
Формат - как и в прошлый раз войс чат телеграмма, запись выложим.
Ждем всех!
Анонс!
Многие помнят, что чуть больше месяца назад мы записывали здесь пробный выпуск "подкаста" по теме "Построение НТ с нуля" (его можно найти здесь /channel/qa_load/45851).
Мы собрали фидбэк, постарались его учесть и готовим следующий выпуск после майских праздников (дата будет уточняться), на тему "Рынок НТ, вакансии и требования".
Чтобы сделать выпуск более живым и актуальным, предлагаем вам, как и в прошлый раз, накидать вопросов в секцию Q/A
(а если еще не голосовали за темы, то и там можно выбрать варианты) https://app.sli.do/event/kam0un2a/live/polls.
Коллеги, в следующий вторник Илья Космодемьянский и Андрей Сальников из dataegret.ru будут беседовать в голосовом чате с Алексеем Ваховым, техническим директором UCHi.RU о том, как обеспечить стабильность работы баз данных при активной разработке и о том что происходило в компании когда в Апреле прошлого года количество пользователей платформы, одновременно находящихся на сайте, возросло от 30 000 до 240 000.
Планируется интерактивная сессия в формате посиделок, с вопросами из “зала”. Будем рады ответить на вопросы и послушать ваши истории об организации работы с опенсорсом. Присоединяйтесь! bit.ly/DataEgret_chat
30 марта в 19:00 МСК
Запись с диалога. Поговорили о том как разворачивать НТ с нуля и не только.
Читать полностью…