Size: a a a

2020 December 12

VS

Vladimir S in LoadLand
Anton Adsky
регистрация != авторизация. Тест сайта госуслуг. Открыть главную, залогинится, найти услугу
А там разве нет никакой защиты от подобного ддоса? Не боитесь учётку потерять?
источник

AA

Anton Adsky in LoadLand
Ну мне пока-что просто скрипт надо написать, что-бы логин проходило
источник

VK

Vitaliy Kudryashov in LoadLand
Вообще и них есть песочница для всего этого, не знаю только на каких условиях
источник
2020 December 14

SG

Savva Genchevskiy in LoadLand
Всем привет, подскажите есть ли способ в Гатлинге 3.4 выводить в лог файла только зафеленые (КО) реквесты?
источник

SG

Savva Genchevskiy in LoadLand
стандартная конфигурация логбека как сказано в документации
    <logger name="io.gatling.http.ahc" level="DEBUG" />
    <logger name="io.gatling.http.response" level="DEBUG" />

   <root level="WARN">
       <appender-ref ref="CONSOLE" />
       <appender-ref ref="FILE" />
   </root>
не работает
источник

СЧ

Сергей Чепкасов... in LoadLand
Savva Genchevskiy
Всем привет, подскажите есть ли способ в Гатлинге 3.4 выводить в лог файла только зафеленые (КО) реквесты?
В 3.4.1 баг с выводом post запросов в лог, исправили в версии 3.4.2.
Пример рабочей конфигурации логов: https://github.com/TinkoffCreditSystems/gatling-template.g8/blob/master/src/main/g8/src/test/resources/logback.xml
Можно убрать условия, сделано для удобства при запуске из CI
источник

SG

Savva Genchevskiy in LoadLand
@chepk Отдельное спасибо)👍👍👍🥳🥳🥳
Для Гатлинга 3.4.2 - получается вот рабочая схема, чтобы выводить в лог инфо по реквестам и выводить реквесты которые KO

logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
       <encoder>
           <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
           <immediateFlush>false</immediateFlush>
       </encoder>
   </appender>

   <appender name="FILE" class="ch.qos.logback.core.FileAppender">
       <file>src/gatling/resources/gatling.log</file>
       <append>true</append>
       <encoder>
           <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
       </encoder>
   </appender>

    <logger name="io.gatling.http.ahc" level="DEBUG" />
    <logger name="io.gatling.http.response" level="DEBUG" />
    <logger name="io.gatling.http.engine.response.DefaultStatsProcessor" level="DEBUG"/>
   
   <root level="ERROR">
       <appender-ref ref="CONSOLE" />
       <appender-ref ref="FILE" />
   </root>

</configuration>
источник

СЧ

Сергей Чепкасов... in LoadLand
Savva Genchevskiy
@chepk Отдельное спасибо)👍👍👍🥳🥳🥳
Для Гатлинга 3.4.2 - получается вот рабочая схема, чтобы выводить в лог инфо по реквестам и выводить реквесты которые KO

logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
       <encoder>
           <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
           <immediateFlush>false</immediateFlush>
       </encoder>
   </appender>

   <appender name="FILE" class="ch.qos.logback.core.FileAppender">
       <file>src/gatling/resources/gatling.log</file>
       <append>true</append>
       <encoder>
           <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
       </encoder>
   </appender>

    <logger name="io.gatling.http.ahc" level="DEBUG" />
    <logger name="io.gatling.http.response" level="DEBUG" />
    <logger name="io.gatling.http.engine.response.DefaultStatsProcessor" level="DEBUG"/>
   
   <root level="ERROR">
       <appender-ref ref="CONSOLE" />
       <appender-ref ref="FILE" />
   </root>

</configuration>
👍 но если хочется писать лог под нагрузкой, то стоит прикрутить AsyncAppender, по ссылке выше можно посмотреть как. Он будет меньше аффектить производительность генератора, хотя при большом числе ошибок может начать тротлить
http://logback.qos.ch/manual/appenders.html#AsyncAppender
источник

SG

Savva Genchevskiy in LoadLand
@chepk окей, возьму на заметку. С этим вроде проблем не будет, потому что я все равно делаю exit code 1 если реквест фейлится и он стопает весь тест
источник

СЧ

Сергей Чепкасов... in LoadLand
Savva Genchevskiy
@chepk окей, возьму на заметку. С этим вроде проблем не будет, потому что я все равно делаю exit code 1 если реквест фейлится и он стопает весь тест
Может, конечно, специфичный случай, но в гатлинге есть разные варианты без system exit, например, exitBlockOnFail и там дальше в доке
https://gatling.io/docs/current/general/scenario/#exitblockonfail
источник

SG

Savva Genchevskiy in LoadLand
@chepk C exitBlockOnFail тут сложнее, т.к.  обычном лоад тест-сценарии я эмулирую нагрузку через закрытую модель
rampConcurrentUsers и constantConcurrentUsers
а там если срабатывает exitBlockOnFail или exitHereIfFailed то один пользователь стопается, и на его место снова скейлится другой...
Вообще я как понял в гатлинге не такого механизма - когда на ошибку можно остановить полностью всю симуляцию и всех юзеров

Если есть способы так сделать, то буду благодарен за подсказку) потому что я сейчас использую что-то вроде вот такого

.exec(myHttpRequest()).exec(exitSimulationOnFailure)


def exitSimulationOnFailure = {
   exec((session: io.gatling.core.session.Session) => {
     if(session.status == KO) {
       FailOverScenario.exitFlag.set(true)
     }
     session
   })
 }


failOverScenario.inject(constantUsersPerSec(1).during(maxDurationSeconds seconds)

Оно типо мониторит каждую секунду если флаг типо стал true - значит есть один KO реквест и он делает после этого exit code-1, потом я просто генерю репорт из результатов
источник

СЧ

Сергей Чепкасов... in LoadLand
Savva Genchevskiy
@chepk C exitBlockOnFail тут сложнее, т.к.  обычном лоад тест-сценарии я эмулирую нагрузку через закрытую модель
rampConcurrentUsers и constantConcurrentUsers
а там если срабатывает exitBlockOnFail или exitHereIfFailed то один пользователь стопается, и на его место снова скейлится другой...
Вообще я как понял в гатлинге не такого механизма - когда на ошибку можно остановить полностью всю симуляцию и всех юзеров

Если есть способы так сделать, то буду благодарен за подсказку) потому что я сейчас использую что-то вроде вот такого

.exec(myHttpRequest()).exec(exitSimulationOnFailure)


def exitSimulationOnFailure = {
   exec((session: io.gatling.core.session.Session) => {
     if(session.status == KO) {
       FailOverScenario.exitFlag.set(true)
     }
     session
   })
 }


failOverScenario.inject(constantUsersPerSec(1).during(maxDurationSeconds seconds)

Оно типо мониторит каждую секунду если флаг типо стал true - значит есть один KO реквест и он делает после этого exit code-1, потом я просто генерю репорт из результатов
Понял) автостопов в гатлинге пока нет, с этим не смогу подсказать. Тоже свое решение будем делать скоро
источник

SG

Savva Genchevskiy in LoadLand
@chepk 👍 если что с радостью протестирую)
источник

ΙΤ

Ιωάννης Τσεκούρι... in LoadLand
Savva Genchevskiy
@chepk 👍 если что с радостью протестирую)
не уверен что мы сможем это в открытый доступ выложить (
источник

ΙΤ

Ιωάννης Τσεκούρι... in LoadLand
скорее всего будет очень завязано на нашу инфру и процессы
источник

SG

Savva Genchevskiy in LoadLand
поняттно, а есть какой-то способ расширить simulation setUp()
чтобы он сам мог стопать и делать exitCode-1 и сам генерить репорт после этого, чтобы не было костылей?
источник

ΙΤ

Ιωάννης Τσεκούρι... in LoadLand
Savva Genchevskiy
поняттно, а есть какой-то способ расширить simulation setUp()
чтобы он сам мог стопать и делать exitCode-1 и сам генерить репорт после этого, чтобы не было костылей?
сходу не скажу, но кажется что нет.
из вариантов только - писать свой плагин, который будет заниматься запуском тестов гатлинга
источник
2020 December 15

M

Master in LoadLand
Arbeitеn Siе mit Kryptowährung?
Neue beispiellose privаte Sоftware📈📉

http://dimondx.pw/
источник
2020 December 16

LY

Lev Yarushin in LoadLand
@fourwingedsun несите огнемёт
источник

AP

AmII PmII in LoadLand
источник