Всем привет! Выпускаем очередной #дайджест обсуждений за неделю +- (13 января-18 января):
Вопросы, на которые пока нет ответов:
▫️Написание запроса к InfluxDB для отображения RPS как в JMeter. Задача у автора вопроса так и не решилась, получилось RPS/10. ❗️
▫️Как оценить сколько документ весит при открытии в Google Chrome ❓
▫️Вопрос по OpenShift. Если не поднимаются поды OpenShift при исчерпании Limits по памяти, то можно ли поды поставить на паузу пока ресурсы не освободятся? ❓
По Apache.JMeter
1️⃣ Разбор ошибки SocketException: Socket operation on nonsocket: connect., которая есть в JMeter 5.2 и которой нет в JMeter 5.4. Возможно причина в исправлении "Make httpclient4.time_to_live defaults to 60000 to be closer to typical browser behavior", с версии JMeter 5.3 соединение живет не 2 сек, а 60 сек по умолчанию.
2️⃣ Написание запроса к InfluxDB для отображения AggregateReport как в JMeter. Обсудили, что точную таблицу получить не получится. Был предложен вариант с формированием таблицы с помощью JMeterPluginsCMD Command Line Tool
3️⃣ Загрузка файла в Apache.JMeter с названием на кириллице, где изначально имя отображалось как ????????? а для отправки запроса использовалась Body Data. В решении проблемы помогло использование Прокси сервера, и использование вкладки File Upload вместо Body Data.
4️⃣ Использование Throughput Contoller и Throughput Weighted Switch в тестах Apache.JMeter. Обсуждение, когда они помогают, а когда усложняют тест
5️⃣ Как удобно можно хранить groovy файлы используя jmeter-maven-plugin для организации проекта, для обращения к ним в jmx? Описание предлагаемого способа
6️⃣ Накопление списка/массива значений от PostProcessor в JMeter с помощью
8️⃣ Обсудили отправку символов UTF-8 и конкретно умлаутов (диакритические символы) в JMeter. Автор вопроса верно нашел ответ.
9️⃣ Обсуждение того, как собирается отчет при распределенном запуске Apache.JMeter . Если кратко, то статистика аккумулируется master-узлом. А если запускать тест без master-узла, то отчет собирается в InfluxDB
🔟 Способы удаления сущностей, созданных в ходе тестирования
Когда:
- после теста (Tear Down)
- перед следующим тестом (Setup Thread)
- в отдельном скрипте после или перед тестом
Как:
- удалять запросами
- восстановлением из резервной копии
О Gatling:
1️⃣ Замечена ошибка в документации Gatling по установке:
Интересные обсуждения и заметки:
😄 Мемы о тестировании производительности
📈 Разбирались, как посчитать утилизацию CPU в Docker, если на графике 300%
📱 Настройка Charles для iOS-устройства. Проблема была в настройках iOS в разрешении всех прав сертификату
⏱Обсудили инструмент для написания тестов производительности в виде модульных тестов (на участки кода) JMH
📦Сколько kubernetes-ов столько и подходов к подбору количества под и их характеристик. И вот тут начало обсуждения того, кто как это делал или делает
Спасибо, что делитесь опытом!
Вопросы, на которые пока нет ответов:
▫️Написание запроса к InfluxDB для отображения RPS как в JMeter. Задача у автора вопроса так и не решилась, получилось RPS/10. ❗️
▫️Как оценить сколько документ весит при открытии в Google Chrome ❓
▫️Вопрос по OpenShift. Если не поднимаются поды OpenShift при исчерпании Limits по памяти, то можно ли поды поставить на паузу пока ресурсы не освободятся? ❓
По Apache.JMeter
1️⃣ Разбор ошибки SocketException: Socket operation on nonsocket: connect., которая есть в JMeter 5.2 и которой нет в JMeter 5.4. Возможно причина в исправлении "Make httpclient4.time_to_live defaults to 60000 to be closer to typical browser behavior", с версии JMeter 5.3 соединение живет не 2 сек, а 60 сек по умолчанию.
2️⃣ Написание запроса к InfluxDB для отображения AggregateReport как в JMeter. Обсудили, что точную таблицу получить не получится. Был предложен вариант с формированием таблицы с помощью JMeterPluginsCMD Command Line Tool
3️⃣ Загрузка файла в Apache.JMeter с названием на кириллице, где изначально имя отображалось как ????????? а для отправки запроса использовалась Body Data. В решении проблемы помогло использование Прокси сервера, и использование вкладки File Upload вместо Body Data.
4️⃣ Использование Throughput Contoller и Throughput Weighted Switch в тестах Apache.JMeter. Обсуждение, когда они помогают, а когда усложняют тест
5️⃣ Как удобно можно хранить groovy файлы используя jmeter-maven-plugin для организации проекта, для обращения к ним в jmx? Описание предлагаемого способа
6️⃣ Накопление списка/массива значений от PostProcessor в JMeter с помощью
vars.putObject
7️⃣ Вспомнили, что такое шаг нагрузки и как сделать заданное количество транзакций в минуту в JMeter с помощью Flow Control Action и Constant Throughput Timer8️⃣ Обсудили отправку символов UTF-8 и конкретно умлаутов (диакритические символы) в JMeter. Автор вопроса верно нашел ответ.
9️⃣ Обсуждение того, как собирается отчет при распределенном запуске Apache.JMeter . Если кратко, то статистика аккумулируется master-узлом. А если запускать тест без master-узла, то отчет собирается в InfluxDB
🔟 Способы удаления сущностей, созданных в ходе тестирования
Когда:
- после теста (Tear Down)
- перед следующим тестом (Setup Thread)
- в отдельном скрипте после или перед тестом
Как:
- удалять запросами
- восстановлением из резервной копии
О Gatling:
1️⃣ Замечена ошибка в документации Gatling по установке:
Since 3.0, Gatling requires Scala 2.12. Gatling is not compatible with Scala 2.11 nor Scala 2.13.Написано, что нужна Scala 2.12, при этом на странице быстрого старта указано все корректно, что нужна версия Scala 2.13.4 для Gatling 3.5.0:
Merge the following code snippet in your build.sbt fileУдобно смотреть версию scala по файлу build.sbt проекта gatling-sbt-plugin-demo для нужной версии Gatling.
enablePlugins(GatlingPlugin)
scalaVersion := "2.13.4"
scalacOptions := Seq(
"-encoding", "UTF-8", "-target:jvm-1.8",
"-deprecation", "-feature", "-unchecked",
"-language:implicitConversions", "-language:postfixOps")
val gatlingVersion = "3.5.0"
...
Интересные обсуждения и заметки:
😄 Мемы о тестировании производительности
📈 Разбирались, как посчитать утилизацию CPU в Docker, если на графике 300%
📱 Настройка Charles для iOS-устройства. Проблема была в настройках iOS в разрешении всех прав сертификату
⏱Обсудили инструмент для написания тестов производительности в виде модульных тестов (на участки кода) JMH
📦Сколько kubernetes-ов столько и подходов к подбору количества под и их характеристик. И вот тут начало обсуждения того, кто как это делал или делает
Спасибо, что делитесь опытом!
Telegram
Klim in QA — Load & Performance
Страница быстрого старта с Gatling, которую упомянул выше: https://gatling.io/open-source/
Очередной #дайджест обсуждений в чате @qa_load
🔺Рассказ от Степана Фомичева о том, как можно повернуть собеседование в свою сторону. И отвечая на вопрос о нагруженных системах продемонстрировать компетенции.
🔺Интересная задача с Gatling, где @aka_Slip хотел сделать паузу в начале сценария, но получал ошибку компиляции. Причина оказалась в том, что nothingFor доступен только для открытой модели нагрузки.
По опыту скажу, что в версии 3.3.1 сделать паузу вначале сценария не получится никак - ее можно передать, но она игнорируется. И если очень нужно сделать паузу вначале сценария, то можно так:
🔹Для запуска распределенного теста JMeter в режиме Master-Slave Максиму Никифорову понадобилась обычная сеть, запустить тест через VPN с закрытыми портами не удалось. Пусть его опыт поможет другим быстрее запускать распределенные тесты.
🔹Попытка разбора ошибок вида
* javax.net.ssl.SSLException/
🔹Рассказ о том, что функция __UUID (The UUID function returns a pseudo random type 4 Universally Unique IDentifier (UUID)) не подходит, если нужно сформировать UUID v1 со временем и MAC-адресом. И вопрос: как поместить значение в переменную? Ответ был про возможность выполнения
🔹Вопрос про конкурентную запись значений в Property в Apache.JMeter.
Вопрос решился при корректном использовании кавычек, и применении функции
Вообще Property - это HashMap, это не ThreadSafe-структура, и не предназначена для многопоточной записи/обновления/удаления значений. Но читать значения в несколько потоков можно. Для многопоточной записи лучше использовать ConcurrentHashMap, которую можно положить в Property в начале теста, в Setup Thread Group, а потом можно много раз считывать и уже с таким объектом работать многопоточно.
Пример:
//Setup Thread Group: Положить Map в Property
🔹Особенности регулярных выражений в JMeter и PHP/Perl. В частности в JMeter нет поддержки выражений
🔹Обработка ошибочных JSR223 Sampler (с ошибками выполнения/компиляции):
* С JSR223 PostProcessor такие Sampler не отловить - они не выполняются вообще в случае ошибки в Sampler!
* Можно попробовать JSR223 Sampler после текущего Sampler, при включенной опции Continue on error в Thread Group
* Можно выполнять проверку в JSR223 Listener
🔹О невозможнсти отправить метрики в Backend Listener по подзапросам если в Transaction Controller стоит галочка Generate Parent Sampler. Галочку придется снять.
▪️Про новый JVM Profiler от Uber
▪️Как нагрузить сайт на внешнем хостинге?
* через корпоративный прокси
* через внешнего провайдера
* ... вернее всего с нагрузочного агента внутри хостинга
но все очень зависит от целей тестирования
🔹Нерешенная проблема про использование ключей из kstore.jks для JMeter из Docker:
SSLManager:
Non HTTP response message:
🔺Рассказ от Степана Фомичева о том, как можно повернуть собеседование в свою сторону. И отвечая на вопрос о нагруженных системах продемонстрировать компетенции.
🔺Интересная задача с Gatling, где @aka_Slip хотел сделать паузу в начале сценария, но получал ошибку компиляции. Причина оказалась в том, что nothingFor доступен только для открытой модели нагрузки.
По опыту скажу, что в версии 3.3.1 сделать паузу вначале сценария не получится никак - ее можно передать, но она игнорируется. И если очень нужно сделать паузу вначале сценария, то можно так:
pause(DELAY seconds)
в начале каждого сценария. Да, это костыль. Но единственное, что работает.🔹Для запуска распределенного теста JMeter в режиме Master-Slave Максиму Никифорову понадобилась обычная сеть, запустить тест через VPN с закрытыми портами не удалось. Пусть его опыт поможет другим быстрее запускать распределенные тесты.
🔹Попытка разбора ошибок вида
Non HTTP Response Code
:* javax.net.ssl.SSLException/
Couldn't kikstart handshaking
* javax.net.ssl.SSLException/readHandshakeRecord
* javax.net.ssl.SSLException/Connection Reset
Были сделаны разные гипотезы: помогло или нет и в чем была причина - пока вопрос🔹Рассказ о том, что функция __UUID (The UUID function returns a pseudo random type 4 Universally Unique IDentifier (UUID)) не подходит, если нужно сформировать UUID v1 со временем и MAC-адресом. И вопрос: как поместить значение в переменную? Ответ был про возможность выполнения
vars.put
🔹Вопрос про конкурентную запись значений в Property в Apache.JMeter.
Вопрос решился при корректном использовании кавычек, и применении функции
${__P(prop_name)}
взамен кода props.get("prop_name")
.Вообще Property - это HashMap, это не ThreadSafe-структура, и не предназначена для многопоточной записи/обновления/удаления значений. Но читать значения в несколько потоков можно. Для многопоточной записи лучше использовать ConcurrentHashMap, которую можно положить в Property в начале теста, в Setup Thread Group, а потом можно много раз считывать и уже с таким объектом работать многопоточно.
Пример:
//Setup Thread Group: Положить Map в Property
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.LinkedBlockingQueue;
def map = new ConcurrentHashMap<String, String>();
props.put("map", map)
//Thread Group: Обновить значениеimport java.util.concurrent.ConcurrentHashMap;
ConcurrentHashMap map = props.get('map');
def auth_token = vars.get('auth_token');
map.put('token', auth_token);
//Thread Group: Получить значение и положить его в переменнуюimport java.util.concurrent.ConcurrentHashMap;
ConcurrentHashMap map = props.get('map');
def auth_token = map.get('token');
vars.put('auth_token', auth_token);
🔹Подключение к #ActiveMQ🔹Особенности регулярных выражений в JMeter и PHP/Perl. В частности в JMeter нет поддержки выражений
(?<=regexp)
🔸Как закидывать данные из #LoadRunner в #InfluxDB во время теста🔹Обработка ошибочных JSR223 Sampler (с ошибками выполнения/компиляции):
* С JSR223 PostProcessor такие Sampler не отловить - они не выполняются вообще в случае ошибки в Sampler!
* Можно попробовать JSR223 Sampler после текущего Sampler, при включенной опции Continue on error в Thread Group
* Можно выполнять проверку в JSR223 Listener
🔹О невозможнсти отправить метрики в Backend Listener по подзапросам если в Transaction Controller стоит галочка Generate Parent Sampler. Галочку придется снять.
▪️Про новый JVM Profiler от Uber
▪️Как нагрузить сайт на внешнем хостинге?
* через корпоративный прокси
* через внешнего провайдера
* ... вернее всего с нагрузочного агента внутри хостинга
но все очень зависит от целей тестирования
🔹Нерешенная проблема про использование ключей из kstore.jks для JMeter из Docker:
SSLManager:
Problem loading keystore: No key(s) found
и Non HTTP response message:
Received fatal alert: handshake_failure
(запросы не доходят до системы)🔹SampleResult.setIgnore()
не работает для PostProcessor + TransactionController в 5.4. Это дефект, который починят в версии JMeter 5.4.1Telegram
Степа Фомичев in QA — Load & Performance
Кстати, это оффтоп, но был смешной случай недавно, звонила hr и спрашивала, с насколько нагружёнными системами я работал в единицах пользователей, и я минуты через 2 только понял что по привычке ей объясняю почему неправильно измерять нагрузку в пользователях
🔹Иногда, если не удается загрузить jar/класс в JMeter поможет загрузка его из JMX-сценария, через Add directory or jar to classpath в Test Plan.
🔹Причиной постепенного увеличения времени отклика и снижения TPS в тесте стабильности может быть использование If Controller с javascript вместо groovy.
И к нам присоединился @serputko, который дал ценный комментарий по этой проблеме, а ранее упоминался в чате, как автор performance-testing-framework. И также пришла большая группа людей.
🔹Наработки: кастомный JSR223-Listener для отправки ошибок в отдельную таблицу #InfluxDB от Кирилла
🔸Обсуждение возможностей обработки и логирования ошибок в #LoadRunner. Нужно выставлять
🔸И вопросы по закрытию ошибочных транзакций по имени в LoadRunner. И сложные случаи: открытии/закрытии транзакции, которая должна была закрыться при ошибке, но в обработчике ошибки тоже произошла ошибка.
▪️Мониторинг Mosquitto (MQTT брокер от Eclipse Foundation, написанный на C/C++).
Какой-то готовой возможности мониторинга этого сервиса не нашел.
И если бы задался целью его мониторинга, то настроил бы логирование и парсил бы логи.
▪️Вопрос по отображению данных из Linux/systat (CSV, TSV) в Grafana.
🔹Проблема с Cookie в JMeter. Решилась добавлением Cookie Manager вместо ручного парсинга заголовков
▪️Обсуждение моков/заглушек, в которых можно выставить нужные задержки на ответ:
* https://mockoon.com
* https://mock-server.com
▪️Округление до целых чисел в InfluxDB 2 на #Flux
🔹Функции с параметрами с помощью функции Groovy для реализации простых условий. Пример:
🔸Как сделать запуск LoadRunner сценария плавным за счет Rump Up. В картинках и деталях.
🔺Обсуждение вариантов отправки HTTP-запросов с разных IP-адресов
* VPN, разные серверы, много + никакой настройки
* поле IP/Hostname в HTTP Request + настройка сетевой карты на много IP
* использование заголовка X-Forward-For + настройка сервера приложений на прием заголовка
🔺Вопрос по требованиям к времени отклика. Можно ли считать время 1 сек приемлемым? И интересные ответы
🔹Обсуждение родного HTML Report для Apache.JMeter
* считаю его отличным отчетом
* многие считают его плохим и не нужным
▪️Вывод многострочных текстов в #Grafana (v7). Да, такое возможно
▪️Обход Google reCAPTCHA в нагрузочном сценарии с помощью специальных ключей #reCAPTCHA
🔹Причиной постепенного увеличения времени отклика и снижения TPS в тесте стабильности может быть использование If Controller с javascript вместо groovy.
И к нам присоединился @serputko, который дал ценный комментарий по этой проблеме, а ранее упоминался в чате, как автор performance-testing-framework. И также пришла большая группа людей.
🔹Наработки: кастомный JSR223-Listener для отправки ошибок в отдельную таблицу #InfluxDB от Кирилла
🔸Обсуждение возможностей обработки и логирования ошибок в #LoadRunner. Нужно выставлять
lr_continue_on_error
. Использовать try
в LoadRunner/C не получилось.🔸И вопросы по закрытию ошибочных транзакций по имени в LoadRunner. И сложные случаи: открытии/закрытии транзакции, которая должна была закрыться при ошибке, но в обработчике ошибки тоже произошла ошибка.
▪️Мониторинг Mosquitto (MQTT брокер от Eclipse Foundation, написанный на C/C++).
Какой-то готовой возможности мониторинга этого сервиса не нашел.
И если бы задался целью его мониторинга, то настроил бы логирование и парсил бы логи.
▪️Вопрос по отображению данных из Linux/systat (CSV, TSV) в Grafana.
🔹Проблема с Cookie в JMeter. Решилась добавлением Cookie Manager вместо ручного парсинга заголовков
Set-Cookie
.▪️Обсуждение моков/заглушек, в которых можно выставить нужные задержки на ответ:
* https://mockoon.com
* https://mock-server.com
▪️Округление до целых чисел в InfluxDB 2 на #Flux
🔹Функции с параметрами с помощью функции Groovy для реализации простых условий. Пример:
${__groovy(def t = ${test_duration}; t-600 <=0 ? 1 : t-600)▪️Визуализация отчетов Yandex.Tank с InfluxDB и Grafana
🔸Как сделать запуск LoadRunner сценария плавным за счет Rump Up. В картинках и деталях.
🔺Обсуждение вариантов отправки HTTP-запросов с разных IP-адресов
* VPN, разные серверы, много + никакой настройки
* поле IP/Hostname в HTTP Request + настройка сетевой карты на много IP
* использование заголовка X-Forward-For + настройка сервера приложений на прием заголовка
🔺Вопрос по требованиям к времени отклика. Можно ли считать время 1 сек приемлемым? И интересные ответы
🔹Обсуждение родного HTML Report для Apache.JMeter
* считаю его отличным отчетом
* многие считают его плохим и не нужным
▪️Вывод многострочных текстов в #Grafana (v7). Да, такое возможно
▪️Обход Google reCAPTCHA в нагрузочном сценарии с помощью специальных ключей #reCAPTCHA
Telegram
Степа Фомичев in QA — Load & Performance
Попробуйте в test plan добавить jar нужный через add directory or jar to classpath
#дайджест сообщений чата @qa_load
🔺Каким простым инструментом можно подать 150 RPS? ab, k6, wrk, gatling, siege. Я бы и JMeter посмотрел, чтобы не гадать, как анализировать отчёт новой утилиты
🔺 Как для Yandex.Tank заполнить параметр
🔺Как на языке #flux для InfluxDB сделать выборку количества потоков для JMeter и обсуждение самого языка. А выборе между
🔺Как в #Grafana не отображать на графике точки со значением больше
🔹 Ценное замечание по запуску распределенного теста с JMeter, master и агенты должны быть в одной сети.
🔹 Ошибки при открытии jmx-файла, сделанного с нестандартными плагинами JMeter в новом JMeter без плагинов. Такие ошибки - норма. Чтобы их не было можно:
- использовать плагины только с сайта jmeter-plugins.org, тогда их можно будет установить автоматики при открытии JMeter GUI предварительно установив менеджер плагинов;
- хранить архив JMeter со всеми плагинами;
- или использовать jmeter maven plugin и хранить вместе с jmx-файлом pom.xml с описанием нужных зависимостей.
🔹 Запрос, записанный через JMeter Script Recorder, не работает в сценарии, почему так может быть (плюс второе обсуждение на эту же тему):
▫️ код 403: не добавлен HTTP Cookie Manager;
▫️ код 403: нужна аутентификация, ее также надо добавить в сценарии;
▫️ код 403: при записи процесса аутентификации по паролю, пароль записался как ****** или остался пустым, вместо корректного текста пароля;
▫️ код 403: для запроса используется CSRF-токен, который нужно скоррелировать;
▫️ код 500, а иногда 200: запрос нельзя выполнить по другим причинам, например, нельзя удалить объект А, потому что объект Б ссылается на А.
🔹Warning в логе JMeter про NullPointerException - влияет на список последних открытых проектов, появилось в версии 5.4
🔹Консольный запуск JMeter не выполняет запросы, выводит в консоль:
🔹Как в конфигурационном файле #InfluxDB настроить templates для #Graphite Endpoint, чтобы можно было передавать в influxdb три поля: Group, Controller, Request. Можно сделать template на три значения
🔺Вопрос по отправке запросов в сервис внутри #Kubernetes. Я бы также обратил внимание на статью Exposing an External IP Address to Access an Application in a Cluster
🔸Вопрос по JMESpath в Gatling, как получить первый элемент выборки. Ответ получился как в примере
🔸Как задать javaOptions для Gatling через build.sbt
🔹Вопрос по тестированию #WebSocket на .NETCore (#SignalR) с JMeter. В обсуждении обратили внимание на особый символ-разделитель сообщений, который можно задать лишь через функцию __char
🔹Как в JMeter 5.3+ выключить подсветку кода? Ответ - перейти на тему Windows
📣Конференция по тестированию Heisenbug ищет спикеров!
🔺Каким простым инструментом можно подать 150 RPS? ab, k6, wrk, gatling, siege. Я бы и JMeter посмотрел, чтобы не гадать, как анализировать отчёт новой утилиты
🔺 Как для Yandex.Tank заполнить параметр
pandora_cmd
, если бинарник pandora находится в корне проекта❓ Вопрос без ответа. Я бы указал полный путь🔺Как на языке #flux для InfluxDB сделать выборку количества потоков для JMeter и обсуждение самого языка. А выборе между
argegateWindow
с гибким aggregation_interval
и сырыми данными предпочтение у аггрегации, так как Grafana все равно не может отображает на графике больше точек, чем ширина экрана и не отображает время с точностью выше секунды🔺Как в #Grafana не отображать на графике точки со значением больше
Y_max
при выборке из InfluxDB. Был предложен вариант решения на #flux с промежуточной переменной, в которую сохраняется перцентиль от данных и по нему выполняется фильтрация. Был выбран вариант решения с помощью средств Grafana, исходники которой были изменены 🧐 чтобы поле Y-max оси Y поддерживало переменные🔹 Ценное замечание по запуску распределенного теста с JMeter, master и агенты должны быть в одной сети.
🔹 Ошибки при открытии jmx-файла, сделанного с нестандартными плагинами JMeter в новом JMeter без плагинов. Такие ошибки - норма. Чтобы их не было можно:
- использовать плагины только с сайта jmeter-plugins.org, тогда их можно будет установить автоматики при открытии JMeter GUI предварительно установив менеджер плагинов;
- хранить архив JMeter со всеми плагинами;
- или использовать jmeter maven plugin и хранить вместе с jmx-файлом pom.xml с описанием нужных зависимостей.
🔹 Запрос, записанный через JMeter Script Recorder, не работает в сценарии, почему так может быть (плюс второе обсуждение на эту же тему):
▫️ код 403: не добавлен HTTP Cookie Manager;
▫️ код 403: нужна аутентификация, ее также надо добавить в сценарии;
▫️ код 403: при записи процесса аутентификации по паролю, пароль записался как ****** или остался пустым, вместо корректного текста пароля;
▫️ код 403: для запроса используется CSRF-токен, который нужно скоррелировать;
▫️ код 500, а иногда 200: запрос нельзя выполнить по другим причинам, например, нельзя удалить объект А, потому что объект Б ссылается на А.
🔹Warning в логе JMeter про NullPointerException - влияет на список последних открытых проектов, появилось в версии 5.4
🔹Консольный запуск JMeter не выполняет запросы, выводит в консоль:
summary = 0 in 00:00:00 = ******/s Avg:0 Min: 9223372036854775807 Max: -9223372036854775808 Err:0 (0.00%)
. Причина была в том, что скрипт не находил файлы для CSV Dataset Config, расположенные в сетевом каталоге, который монтировался, вероятно, при интерактивной RDP-сессии🔹Как в конфигурационном файле #InfluxDB настроить templates для #Graphite Endpoint, чтобы можно было передавать в influxdb три поля: Group, Controller, Request. Можно сделать template на три значения
*.*.*
а соответствующие теги назвать group.controller.request
. Также был предложен вариант не разделять поля на три - оставить одно поле, в котором будут все три значения разделенные пробелом, и использовать регулярные выражения для фильтрации🔺Вопрос по отправке запросов в сервис внутри #Kubernetes. Я бы также обратил внимание на статью Exposing an External IP Address to Access an Application in a Cluster
🔸Вопрос по JMESpath в Gatling, как получить первый элемент выборки. Ответ получился как в примере
🔸Как задать javaOptions для Gatling через build.sbt
🔹Вопрос по тестированию #WebSocket на .NETCore (#SignalR) с JMeter. В обсуждении обратили внимание на особый символ-разделитель сообщений, который можно задать лишь через функцию __char
🔹Как в JMeter 5.3+ выключить подсветку кода? Ответ - перейти на тему Windows
📣Конференция по тестированию Heisenbug ищет спикеров!
Telegram
Степа Фомичев in QA — Load & Performance
Ребят, всем добрый день. Кто-нибудь знает простой способ нагрузить в 150 рпс http метод без сложных инструментов? Мб что-то консольное. что справится с такой нагрузкой
🔹Почему "User-Defined Cookies" в HTTP Cookie Manager не перетирается при получении ответа от сервера с заголовком Set Cookie, а приводит к появлению двух Cookie (дублирование)? Проблему получилось обойти задав Path для "User-Defined Cookies" не
🔸Gatling OSS может выполнять распределенный тест и Gatling Frontline тоже. Отличие в том, что для Gatling OSS из коробки не поставляется Grafana Dashboard, который отображает результаты распределенного теста, а для Frontline такая отчетность есть. Если k6 (open source версию) получится запустить распределённо, то денег также не потребуют.
🔺Нужно ли загружать статику (шрифты, js, css, картинки) при записи скрипта? Мнения (-) разделились (+): обсуждение очень интересное. Усредненный ответ - да нужно, важно правильно подобрать пропорцию. А в обсуждении отмечено, что если понятие юзер заменить понятием бизнес-сценарий, который состоит из операций, то становится проще. И допустим сценарий, где у пользователя вся статика берется из кеша браузера - запрашивать ее не надо, а есть сценарий, где она скачивается. У сценариев может быть разная интенсивность.
🔹Если в сценарии нужно выполнить три операции с разными интенсивностями 20 RPS, 30 RPS и 40 RPS, то как это сделать?
▫️Для независимых операций - сделать три отдельные Thread Group.
▫️Для зависимых - нужно будет или настроить передачу данных между Thread Group
▫️... или объединить операции в одну Thread Group и использовать Throughput Controller - будет базовая интенсивность 40 RPS, но первая операция будет выполняться с вероятностью 20/40, а вторая 30/40.
❓Что почитать про мониторинг #OpenShift? Вопрос пока без ответа
🔹Запуск JMeter в #Kubernetes - лучше выделить для нагрузочных станций отдельное пространство с taint.
🔺Как управлять нагрузкой на N сервисов? Написать N простых сценариев лучше, чем написать один, но сложный
🔸Вопрос по настройке Monitoring Plugin для Yandex.Tank. Остался без ответа. Описан в документации
🔸Для подачи нагрузки на IBM.MQ в Gatling нужен JMS Plugin
🔸В Gatling нет консольного графика с количеством пользователей, есть только консольный прогресс выполнения
🔹Как задать Working Directory в JMeter? Думаю так:
🔹При работе с Simple Data Writer удобно задать jmeter.save.saveservice.base_prefix =
Это был #дайджест обсуждений в чате @qa_load
/
а более строгий: /co/authenticate
🔹Тестирование потокового видео #WebRTC с JMeter. Посоветовали использовать HLSPlugin и KITE🔸Gatling OSS может выполнять распределенный тест и Gatling Frontline тоже. Отличие в том, что для Gatling OSS из коробки не поставляется Grafana Dashboard, который отображает результаты распределенного теста, а для Frontline такая отчетность есть. Если k6 (open source версию) получится запустить распределённо, то денег также не потребуют.
🔺Нужно ли загружать статику (шрифты, js, css, картинки) при записи скрипта? Мнения (-) разделились (+): обсуждение очень интересное. Усредненный ответ - да нужно, важно правильно подобрать пропорцию. А в обсуждении отмечено, что если понятие юзер заменить понятием бизнес-сценарий, который состоит из операций, то становится проще. И допустим сценарий, где у пользователя вся статика берется из кеша браузера - запрашивать ее не надо, а есть сценарий, где она скачивается. У сценариев может быть разная интенсивность.
🔹Если в сценарии нужно выполнить три операции с разными интенсивностями 20 RPS, 30 RPS и 40 RPS, то как это сделать?
▫️Для независимых операций - сделать три отдельные Thread Group.
▫️Для зависимых - нужно будет или настроить передачу данных между Thread Group
▫️... или объединить операции в одну Thread Group и использовать Throughput Controller - будет базовая интенсивность 40 RPS, но первая операция будет выполняться с вероятностью 20/40, а вторая 30/40.
❓Что почитать про мониторинг #OpenShift? Вопрос пока без ответа
🔹Запуск JMeter в #Kubernetes - лучше выделить для нагрузочных станций отдельное пространство с taint.
🔺Как управлять нагрузкой на N сервисов? Написать N простых сценариев лучше, чем написать один, но сложный
🔸Вопрос по настройке Monitoring Plugin для Yandex.Tank. Остался без ответа. Описан в документации
🔸Для подачи нагрузки на IBM.MQ в Gatling нужен JMS Plugin
🔸В Gatling нет консольного графика с количеством пользователей, есть только консольный прогресс выполнения
🔹Как задать Working Directory в JMeter? Думаю так:
cd /tmp ; /opt/jmeter/bin/jmeter ...
- вот тут рабочим каталогом будет /tmp🔹При работе с Simple Data Writer удобно задать jmeter.save.saveservice.base_prefix =
./
вместо ~/
... пока все, а то что-то очень много сообщенийЭто был #дайджест обсуждений в чате @qa_load
Telegram
Mikhail Sedov in QA — Load & Performance
Добрый день, товарищи!
Подскжите пожалуйста насчет использования cookies в JMeter.
Использую в скрипте "HTTP Cookie Manager" и задаю в поле "User-Defined Cookies" этого компонента cookie "did = none". Затем в ответ на HTTPS запрос получаю команду "SET-COOKIE…
Подскжите пожалуйста насчет использования cookies в JMeter.
Использую в скрипте "HTTP Cookie Manager" и задаю в поле "User-Defined Cookies" этого компонента cookie "did = none". Затем в ответ на HTTPS запрос получаю команду "SET-COOKIE…
Всем привет!
Материалы доклада по мониторингу JVM:
https://polarnik.github.io/JVM-performance-monitoring
Рассказывал про:
- технологии мониторинга
- агенты #jolokia и #jmx_exporter
- JMX/RMI и #JSR-160
- утилиту #jmc
- составление конфигов
- накладные расходы на мониторинг
Материал готовился для митапа Neat Talk 11
Материалы доклада по мониторингу JVM:
https://polarnik.github.io/JVM-performance-monitoring
Рассказывал про:
- технологии мониторинга
- агенты #jolokia и #jmx_exporter
- JMX/RMI и #JSR-160
- утилиту #jmc
- составление конфигов
- накладные расходы на мониторинг
Материал готовился для митапа Neat Talk 11
Приветствую вас, дорогие любители высоких нагрузок!
Мы определились с датами, платформой и темой первого мероприятия в свободной форме.
По результатам голосования - победила тема "Построение тестирования производительности с нуля".
По данной теме мы расскажем:
- Необходимость тестирования производительности на проекте
- Как стартануть проект в продуктовой/аутсорс команде
- Интеграция проекта в процесс рабработки и взаимодействие между участниками проекта
- Какие инструменты использовать
- Конечная точка развития тестирования производительности на проекте
Наши Спикеры:
- Смирнов Вячеслав. Исследователь артефактов НТ из банка ВТБ.
- Кирилл Юрков. Выстраивает НТ с нуля в компании "Самокат".
- Степан Фомичев. Работал перфоманс инженером в аутсорс компании, на данный момент разрабатывает инстурмент НТ Boomq.
- Рогожников Максим. Отвечает за внедрение тестирования производительности в команды разработки продуктов Tinkoff.ru
- Ахальцев Иоанн. Make Performance Great Again, разработка инструмента тестирования производительности Tinkoff Cosmos.
Рассмотрим связанные с темой вопросы из чата:
- Сервисный и продуктовый подход в тестировании производительности
- Обязанности перформанс инженера
- Зоны росты
и многие другие
Обсуждение произойдёт прямо в этом чате 25.03.2021 в 19:00 при помощи нового обновления Telegram и Голосовых чатов 2.0.
Обязательно проверьте, что вы обновили клиенты Telegram, котроый поддерживают новые Голосовые чаты. (Апдейты после 19 марта).
Следите за нашими анонсами!
Мы определились с датами, платформой и темой первого мероприятия в свободной форме.
По результатам голосования - победила тема "Построение тестирования производительности с нуля".
По данной теме мы расскажем:
- Необходимость тестирования производительности на проекте
- Как стартануть проект в продуктовой/аутсорс команде
- Интеграция проекта в процесс рабработки и взаимодействие между участниками проекта
- Какие инструменты использовать
- Конечная точка развития тестирования производительности на проекте
Наши Спикеры:
- Смирнов Вячеслав. Исследователь артефактов НТ из банка ВТБ.
- Кирилл Юрков. Выстраивает НТ с нуля в компании "Самокат".
- Степан Фомичев. Работал перфоманс инженером в аутсорс компании, на данный момент разрабатывает инстурмент НТ Boomq.
- Рогожников Максим. Отвечает за внедрение тестирования производительности в команды разработки продуктов Tinkoff.ru
- Ахальцев Иоанн. Make Performance Great Again, разработка инструмента тестирования производительности Tinkoff Cosmos.
Рассмотрим связанные с темой вопросы из чата:
- Сервисный и продуктовый подход в тестировании производительности
- Обязанности перформанс инженера
- Зоны росты
и многие другие
Обсуждение произойдёт прямо в этом чате 25.03.2021 в 19:00 при помощи нового обновления Telegram и Голосовых чатов 2.0.
Обязательно проверьте, что вы обновили клиенты Telegram, котроый поддерживают новые Голосовые чаты. (Апдейты после 19 марта).
Следите за нашими анонсами!
Запись с диалога. Поговорили о том как разворачивать НТ с нуля и не только.
Тестирование производительности с 0-ля (25 марта 2021 года)
QA — Load & Performance
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 о развитии НТ в проекте и НТ инженеров
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 о развитии НТ в проекте и НТ инженеров
Forwarded from Valeria K.
Коллеги, в следующий вторник Илья Космодемьянский и Андрей Сальников из dataegret.ru будут беседовать в голосовом чате с Алексеем Ваховым, техническим директором UCHi.RU о том, как обеспечить стабильность работы баз данных при активной разработке и о том что происходило в компании когда в Апреле прошлого года количество пользователей платформы, одновременно находящихся на сайте, возросло от 30 000 до 240 000.
Планируется интерактивная сессия в формате посиделок, с вопросами из “зала”. Будем рады ответить на вопросы и послушать ваши истории об организации работы с опенсорсом. Присоединяйтесь! bit.ly/DataEgret_chat
30 марта в 19:00 МСК
Планируется интерактивная сессия в формате посиделок, с вопросами из “зала”. Будем рады ответить на вопросы и послушать ваши истории об организации работы с опенсорсом. Присоединяйтесь! bit.ly/DataEgret_chat
30 марта в 19:00 МСК
Материалы доклада "Мониторинг производительности 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
Смирнов Вячеслав, ВТБ
Готовилось для 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
YouTube
Neat Talks #11
👨💻 3D Влад Авдеев, 3D-дизайнер в Neattech.io (50 мин доклад + 10 мин вопросы)
Расскажет про:
- Что ж это все-таки такое и как я могу это использовать?
- Можешь мне слепить персонажа, чтобы он был с анимациями, материалами, огненным мечом и громил дома с…
Расскажет про:
- Что ж это все-таки такое и как я могу это использовать?
- Можешь мне слепить персонажа, чтобы он был с анимациями, материалами, огненным мечом и громил дома с…
Анонс!
Многие помнят, что чуть больше месяца назад мы записывали здесь пробный выпуск "подкаста" по теме "Построение НТ с нуля" (его можно найти здесь https://www.tgoop.com/qa_load/45851).
Мы собрали фидбэк, постарались его учесть и готовим следующий выпуск после майских праздников (дата будет уточняться), на тему "Рынок НТ, вакансии и требования".
Чтобы сделать выпуск более живым и актуальным, предлагаем вам, как и в прошлый раз, накидать вопросов в секцию Q/A
(а если еще не голосовали за темы, то и там можно выбрать варианты) https://app.sli.do/event/kam0un2a/live/polls.
Многие помнят, что чуть больше месяца назад мы записывали здесь пробный выпуск "подкаста" по теме "Построение НТ с нуля" (его можно найти здесь https://www.tgoop.com/qa_load/45851).
Мы собрали фидбэк, постарались его учесть и готовим следующий выпуск после майских праздников (дата будет уточняться), на тему "Рынок НТ, вакансии и требования".
Чтобы сделать выпуск более живым и актуальным, предлагаем вам, как и в прошлый раз, накидать вопросов в секцию Q/A
(а если еще не голосовали за темы, то и там можно выбрать варианты) https://app.sli.do/event/kam0un2a/live/polls.
Telegram
📢 QA — Load & Performance in QA — Load & Performance
https://dump-ekb.ru/testing-qa
14 мая @gim6626 (Дмитрий Винокуров, Miro) будет выступать на конференции DUMP в Екатеринбурге
с темой:
Путь от одного человека до распределённой команды нагрузочного тестирования
А @ant_nch (Антон Нечеухин, Miro) с темой
Структура QA в крупной компании
который ранее выступал на DUMP с темой
Достоверный нагрузочный тест c учетом непредвиденных нюансов
https://youtu.be/oNdVWREIfoY
Темы интересные
Билет на Online-трансляцию стоит 3500 рублей
14 мая @gim6626 (Дмитрий Винокуров, Miro) будет выступать на конференции DUMP в Екатеринбурге
с темой:
Путь от одного человека до распределённой команды нагрузочного тестирования
А @ant_nch (Антон Нечеухин, Miro) с темой
Структура QA в крупной компании
который ранее выступал на DUMP с темой
Достоверный нагрузочный тест c учетом непредвиденных нюансов
https://youtu.be/oNdVWREIfoY
Темы интересные
Билет на Online-трансляцию стоит 3500 рублей
dump-ekb.ru
DUMP: секция Testing&QA
Концепция, темы докладов, программный комитет и спикеры секции тестировщиков
💥Анонсируем второй выпуск подкаста, теперь темой обсуждения будет "Рынок НТ, от вакансий до собеседований".
На повестке:
- обсудим разницы грейдов,
- поговорим о зарплатах,
- расскажем как сами проводим собеседования
- а еще о жизни нагрузочника вне финтеха и многое другое
Постараемся пригласить коллег от HR и в конце бонусом проведем пробное собеседование рандомному желающему из чата (если такие будут).
Дата подкаста - 19.05.21. Точное время анонсируем используя новый функционал телеграмма - "отложенные войс чаты", в верхней части чата появится временная мета до начала подкаста. Сделаем это заранее, так что не пропустите :)
Формат - как и в прошлый раз войс чат телеграмма, запись выложим.
Ждем всех!
На повестке:
- обсудим разницы грейдов,
- поговорим о зарплатах,
- расскажем как сами проводим собеседования
- а еще о жизни нагрузочника вне финтеха и многое другое
Постараемся пригласить коллег от HR и в конце бонусом проведем пробное собеседование рандомному желающему из чата (если такие будут).
Дата подкаста - 19.05.21. Точное время анонсируем используя новый функционал телеграмма - "отложенные войс чаты", в верхней части чата появится временная мета до начала подкаста. Сделаем это заранее, так что не пропустите :)
Формат - как и в прошлый раз войс чат телеграмма, запись выложим.
Ждем всех!
📢 Load & Performance
💥Анонсируем второй выпуск подкаста, теперь темой обсуждения будет "Рынок НТ, от вакансий до собеседований". На повестке: - обсудим разницы грейдов, - поговорим о зарплатах, - расскажем как сами проводим собеседования - а еще о жизни нагрузочника вне финтеха…
До подкаста осталось меньше 5 часов! Ждем всех сегодня в 18:20 по Москве :)
Рынок НТ от вакансий до собеседований
QA — Load & Performance
Запись сегодняшнего подкаста. Будем рады любому фидбеку. Временные метки постараемся внести в ближайшее время - они появятся в этом сообщении. Всем классных вакансий 🎧
Друзья!
Приглашаем вас на 7-ю ежегодную конференцию по нагрузочному тестированию, которая состоится 16 сентября 2021 года в Москве (оффлайн и онлайн форматы).
Кому будет интересно:
- инженеру в области нагрузочного тестирования,
- разработчику высокопроизводительных приложений,
- руководителю ИТ-департамента,
- менеджеру ИТ-проектов;
Что вы узнаете:
- как решать проблемы высокопроизводительных систем,
- оригинальные технологические подходы к процессу тестирования производительности ИТ-систем,
- новые методики и свежие идеи для повышения отказоустойчивости ИТ-систем,
- успешные практические советы и кейсы,
- современные технологии и новые тенденции нагрузочного тестирования,
- последние новости из этой области от профессионалов и лидеров рынка тестирования,
Регистрируйтесь, мы ждем вас http://perfconf.ru/
Приглашаем вас на 7-ю ежегодную конференцию по нагрузочному тестированию, которая состоится 16 сентября 2021 года в Москве (оффлайн и онлайн форматы).
Кому будет интересно:
- инженеру в области нагрузочного тестирования,
- разработчику высокопроизводительных приложений,
- руководителю ИТ-департамента,
- менеджеру ИТ-проектов;
Что вы узнаете:
- как решать проблемы высокопроизводительных систем,
- оригинальные технологические подходы к процессу тестирования производительности ИТ-систем,
- новые методики и свежие идеи для повышения отказоустойчивости ИТ-систем,
- успешные практические советы и кейсы,
- современные технологии и новые тенденции нагрузочного тестирования,
- последние новости из этой области от профессионалов и лидеров рынка тестирования,
Регистрируйтесь, мы ждем вас http://perfconf.ru/
perfconf.ru
ПерфКонф #11
Не пропустите PerfConf 2025 - ведущую ежегодную конференцию по нагрузочному тестированию. Конференция собирает ведущих экспертов в области нагрузочного тестирования, практик DevOps, аналитики данных и стратегий IT и бизнеса. Расширьте свои знания, наладьте…
Forwarded from Anna Ivanishcheva (Kurilo)
Конференция по тестированию Heisenbug ищет спикеров 🔥
Вам есть о чем рассказать и что обсудить с коллегами по цеху? Тогда вам нужно подать заявку на участие в конференции! Осенний Heisenbug пройдет в гибридном формате: онлайн+офлайн.
Темы, которые будут интересны:
✔️Функциональное тестирование;
✔️Нагрузочное тестирование;
✔️SDET;
✔️DevOps в тестировании.
Но не ограничивайте себя этим списком — вы можете подать заявку с любой темой из области тестирования.
Если все-таки сомневаетесь, то программный комитет всегда готов обсудить актуальность темы и помочь выбрать правильный вектор доклада. Плюс, ребята помогут с прокачкой ваших ораторских навыков, если у вас мало опыта в публичных выступлениях.
👉 Подать заявку и узнать подробности можно на сайте.
❓Вопросы присылайте на почту [email protected]
Вам есть о чем рассказать и что обсудить с коллегами по цеху? Тогда вам нужно подать заявку на участие в конференции! Осенний Heisenbug пройдет в гибридном формате: онлайн+офлайн.
Темы, которые будут интересны:
✔️Функциональное тестирование;
✔️Нагрузочное тестирование;
✔️SDET;
✔️DevOps в тестировании.
Но не ограничивайте себя этим списком — вы можете подать заявку с любой темой из области тестирования.
Если все-таки сомневаетесь, то программный комитет всегда готов обсудить актуальность темы и помочь выбрать правильный вектор доклада. Плюс, ребята помогут с прокачкой ваших ораторских навыков, если у вас мало опыта в публичных выступлениях.
👉 Подать заявку и узнать подробности можно на сайте.
❓Вопросы присылайте на почту [email protected]