Size: a a a

QA — Load & Performance

2020 September 04

A

Alex in QA — Load & Performance
что то я не нашел, есть ссылка?
источник

KY

Kirill Yurkov in QA — Load & Performance
Vladimir
Всем привет! Подскажите, как работет в жиметре JDBC Connect Configuration, а именно auto commit. Как это можно настроить, чтобы например коммит был раз в 10 отправленных запросов? Где про это почитать можно или кто-то сталкивался с подобным?
просто делать 11ым запрос только с коммитом?
источник

V

Vladimir in QA — Load & Performance
Kirill Yurkov
просто делать 11ым запрос только с коммитом?
Да, это сделал. Но если нужно 20 запросов в коммите или значение изменется, то это не подойдёт
источник

KY

Kirill Yurkov in QA — Load & Performance
Alex
что то я не нашел, есть ссылка?
нет, я знаю решение через javaRDP либу и jsr223
источник

KY

Kirill Yurkov in QA — Load & Performance
сам особо не в курсе
источник

KY

Kirill Yurkov in QA — Load & Performance
Vladimir
Да, это сделал. Но если нужно 20 запросов в коммите или значение изменется, то это не подойдёт
тогда и решение делать коммит раз в 10 отправленных запросов не подойдет))
источник

KY

Kirill Yurkov in QA — Load & Performance
короче походу из коробки или плагина для rdp все же нет
источник

V

Vladimir in QA — Load & Performance
В общем суть такая: как заставить какой-либо запрос отправляться раз в определенное количество запросов?
источник

VS

Vladislav Suvorov in QA — Load & Performance
мб делать какой—нибудь счётчик, а нужный запрос закрыть в if controller?
источник

S7

Sam 7 in QA — Load & Performance
Насколько я понял, там любой десятый запрос должен быть с коммитом. Т е для всех запросов в сценарии сделать проверку счетчика и кратности 10 и реализовать для тру с коммитом для фолс без
источник

AK

Anton Kramarev in QA — Load & Performance
Если вы, как я, пытаетесь оптимизировать свои скрипты в гатлинге, то рекомендуется использовать jmesPath вместо привычного jsonPath. Официальный текст говорит нам о минимум двухкратном приросте производительности, а в случае с рекурсивным поиском то и того больше.

Каждый раз я сталкиваюсь с проблемой эктракции рандомного элемента из списка, вероятно вы тоже с ней сталкивались и забивали на дальнейшие попытки, возвращаясь к привычному jsonPath'у. Я вот наконец, победил этот кейс окончательно. Хочу поделиться решением:

пусть json будет для простоты таким:

{
"data": [{
 "id": "237477048",
 "firstName": "Alpha"
}, {
 "id": "361333714",
 "firstName": "Beta",
}, {
 "id": "553093993",
 "firstName": "Gamma",
}]
}


Из него нам надо достать рандомный id

Решение следующее:
// some prior request code
.check(jmesPath("data[*].id").ofType[Seq[Any]].transform((x: Seq[Any]) => {
x(Random.nextInt(x.length)).toString
}).saveAs("userId"))


jmesPath("data[*].id") находит все айдишки и возвращает их в виде строчного представления массива: ["237477048", "361333714", "553093993"]
Чтобы привести его к реальному массиву используем метод .ofType[T] которому надо скормить тип Seq[Any] при чем именно Any, потому что иначе будет ошибка компилляции.
Далее нам нужно трансформировать полученную последовательность и взять из нее рандомное значение, делаем это через .transform метод. И тут главное обязательно указать аргументу x (ну или как вы его назовете) тип такой же как в .ofType, в нашем случае Seq[Any], иначе снова получим ошибку компилляции. Далее в теле функции стандартным подходом изымаем рандомный элемент, производим над ним любые манипуляции, и не забываем привести его тип Any к нужному нам, будь то String или что угодно другое.

Надеюсь кому-то это поможет
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
Anton Kramarev
Если вы, как я, пытаетесь оптимизировать свои скрипты в гатлинге, то рекомендуется использовать jmesPath вместо привычного jsonPath. Официальный текст говорит нам о минимум двухкратном приросте производительности, а в случае с рекурсивным поиском то и того больше.

Каждый раз я сталкиваюсь с проблемой эктракции рандомного элемента из списка, вероятно вы тоже с ней сталкивались и забивали на дальнейшие попытки, возвращаясь к привычному jsonPath'у. Я вот наконец, победил этот кейс окончательно. Хочу поделиться решением:

пусть json будет для простоты таким:

{
"data": [{
 "id": "237477048",
 "firstName": "Alpha"
}, {
 "id": "361333714",
 "firstName": "Beta",
}, {
 "id": "553093993",
 "firstName": "Gamma",
}]
}


Из него нам надо достать рандомный id

Решение следующее:
// some prior request code
.check(jmesPath("data[*].id").ofType[Seq[Any]].transform((x: Seq[Any]) => {
x(Random.nextInt(x.length)).toString
}).saveAs("userId"))


jmesPath("data[*].id") находит все айдишки и возвращает их в виде строчного представления массива: ["237477048", "361333714", "553093993"]
Чтобы привести его к реальному массиву используем метод .ofType[T] которому надо скормить тип Seq[Any] при чем именно Any, потому что иначе будет ошибка компилляции.
Далее нам нужно трансформировать полученную последовательность и взять из нее рандомное значение, делаем это через .transform метод. И тут главное обязательно указать аргументу x (ну или как вы его назовете) тип такой же как в .ofType, в нашем случае Seq[Any], иначе снова получим ошибку компилляции. Далее в теле функции стандартным подходом изымаем рандомный элемент, производим над ним любые манипуляции, и не забываем привести его тип Any к нужному нам, будь то String или что угодно другое.

Надеюсь кому-то это поможет
а зачем так?
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
Returns a List of all the occurrences.

findRandom
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
есть же такая вещь
источник

AK

Anton Kramarev in QA — Load & Performance
У jmesPath нет методов типа findAll или random
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
Anton Kramarev
У jmesPath нет методов типа findAll или random
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
ладно второй вариант
https://gatling.io/docs/current/session/expression_el/
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
"${foo.random()}"        // returns a random element of foo if foo points to an indexed collection
источник

ΙΤ

Ιωάννης Τσεκούρι... in QA — Load & Performance
а в foo само собой хранить все найденные элементы
источник