Size: a a a

QA — Load & Performance

2021 July 07

KY

Kirill Yurkov in QA — Load & Performance
в ините сделайте все ваши экстракторы. форичами например в одном потоке нагенерируйте себе csv, который потом можно подставить в основнйо скрипт и оттуда брать для каждого юзера уникальную связку данных
источник

KY

Kirill Yurkov in QA — Load & Performance
ладно нет, как-то сложно. вообще не врубаюсь что нужно.
Руслан, напиши хоть псевдокодом что требуется
источник

VG

Viktor Ganeles in QA — Load & Performance
Инит для jmeter  это setup thread group (один раз на тест) или onceOnly controller (один раз на вузера)
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Вот хороший способ. Сделайте так 2 раза. Получится 2 переменные. И сравните два списка. Результат положить в список все равно придется. Поэтому научиться работать с JSR-223 надо
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
А если список большой. Прямо большой, 10 000 значений. То сделайте это хоть руками в Excel. И не включайте это в JMeter
источник

R

Rslr in QA — Load & Performance
Получается есть 3 запроса, в одном лежит список всех айди и названия
во втором названия, айди уже не получаем, но есть время, тут названия обьектов  к которым мы обращались, обращаться можно раз в сутки
в 3 запрос идёт айди обьекта к которому нужно обратиться, нужно не столкнуться с теми, к которым уже обращались сегодня
То есть, нужно сравнить названия обьектов из полученных значения экстракторов 1 запроса и 2-го, если они совпадают, то нужно сделать проверку когда было сделано обращение
Если названия совпадают и дата обращения сегодня - эти обьекты нужно исключить, тк к ним сегодня уже обращались
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
все же
1. Список ID большой? Сколько тысяч объектов?
2. Как часто надо повторять эти запросы - много раз или достаточно 1 раз перед тестом?
3. Есть опыт разработки на Groovy/Java? На каком языке есть опыт разработки? Есть разработчик в команде?
источник

R

Rslr in QA — Load & Performance
Небольшой, примерно 40 айдишников
Постоянно нужно отправлять, то есть как отправились все возможные обращения, меняется токен и уже с новыми айди работаем, снова сравниваем, кидаем в 3 запрос
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
А вот этот участок кода понятен
https://octoperf.com/blog/2017/03/09/how-to-extract-data-from-json-response-using-jmeter/#jsr223-with-groovy

import groovy.json.JsonSlurper

def jsonSlurper = new JsonSlurper();
def response = jsonSlurper.parseText(prev.getResponseDataAsString());
vars.put("firstName", response.members[2].firstName.toString());

он превращает вот такой JSON в одну переменную
https://octoperf.com/blog/2017/03/09/how-to-extract-data-from-json-response-using-jmeter/#regular-expression-extractor
{
"name":"Simpsons family",
"members":[
  {"firstName":"Homer", "lastName":"Simpson"},
  {"firstName":"Marge", "lastName":"Simpson"},
  {"firstName":"Bart", "lastName":"Simpson"}
 ]
}
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Или вот такой код:

import groovy.json.JsonSlurper

def jsonSlurper = new JsonSlurper();
def response = jsonSlurper.parseText(prev.getResponseDataAsString());
vars.putObject("listAll", response);

После второго запроса сделать

import groovy.json.JsonSlurper

def jsonSlurper = new JsonSlurper();
def listExclude = jsonSlurper.parseText(prev.getResponseDataAsString());
def listAll = vars.getObject("listAll")
//TODO: сделать цикл по listAll и если элемента нет в listExclude, то добавить его в listID
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Код из TODO можете написать только вы, так как структура JSON известна только вам. А тут она очень важна.
Тут предполагается использовать два запроса, после которых есть JSR223 PostProcessor, не JSON Extractor
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Если не делать циклов, а из всего списка listAll выбирать лишь одну переменную, то можно чтобы в результате был один ID, первый, который не встречается в listExcude
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
//TODO: сделать цикл по listAll и если элемента нет в listExclude, то
vars.put('id', id)
;
break;
источник

V

Vladimir in QA — Load & Performance
установил инфлюкс локально, чтобы опробовать у себя на тачке, в influx.conf прописал:
[[graphite]]
 enabled = true
 database = "gatlingdb"
   
 templates = [
   "gatling.*.*.*.* measurement.simulation.request.status.field",
   "gatling.*.users.*.* measurement.simulation.measurement.request.field"
 ]

но при повторном запуске сервис графит не запускается, его нет в списках
источник

V

Vladimir in QA — Load & Performance
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Сервис Influxdb завис?
Укажите порт, отличный от порта сервиса graphite/carbon в конфиге InfluxDB.conf,
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
В логе Influxdb нет информации об обработке tcp и udp endpoint, Никаких. Так всегда было, думаю
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
https://github.com/influxdata/influxdb/blob/v1.9.2/services/graphite/service.go#L137
Ошибся, есть логи, если сервис стартанет
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Но при обработке пакетов логи только про ошибки парсинга:
https://github.com/influxdata/influxdb/blob/v1.9.2/services/graphite/service.go#L342-L367
https://github.com/influxdata/influxdb/blob/v1.9.2/services/graphite/service.go#L425-L447

Логов аналогичных протоколу Influx v1 с текстами запросов не будет
источник