Я выполняю базовое API-тестирование вызовов CRUD в базе данных. В JMeter у меня есть 1 поток с 3 группами нитей в моем плане тестирования, где я настроил Loops and Counters в каждом потоке. Причиной для счетчиков является сохранение результатов в файл, я хочу добавить префикс файла к значению счетчика.JMeter: Сброс значения счета
Проблема заключается в том, что счетчики никогда не сбрасываются. Так, например:
Where Count = 1 for all groups, I would expect:
Thread Group 1, filename_1.json
Thread Group 2, filename_2.json
Thread Group 3, filename_3.xml
Where Group 1 Count = 3, Group 2 Count = 2, Group 3 Count = 1, I would expect:
Thread Group 1, filename_1.json, filename_2.json, filename_3.json
Thread Group 2, filename_4.json and filename_5.json
Thread Group 3, filename_6.xml
Вместо где Count = 1 для всех групп я получаю результаты, как:
Thread Group 1, filename_11.json
Thread Group 2, filename_14.json
Thread Group 3, filename_18.xml
После долгих поисков и пытается несколько предложений, я до сих пор не получаю то, что я ожидать. Ниже приведен пример того, как настроен план тестирования.
Любые предложения очень ценятся.
Thread Group 1 HTTP Header Manager (application/json) Loop Controller Counter (Start=1, Increment=1, Maximum=100, Num Format=null, Ref Name=LoopCounter1) HTTP Request (CREATE) RegEx (RefName=newRequest, Reg Ex = "id":(.+?)\,"displayName", Template=$1$, Match No.=1, Default=NONE) BeanShell Assertion (Name=newRequest, Param=${__setProperty(newRequest,${newRequest},)}) Save Response to file (File prefix=requestResult_${LoopCounter}, Var Name=newRequestFile) Loop Controller HTTP Request (READ) HTTP Request (UPDATE) HTTP Request (DELETE) Thread Group 2 HTTP Header Manager (application/json) Loop Controller Counter (Start=1, Increment=1, Maximum=100, Num Format=null, Ref Name=LoopCounter2) HTTP Request (CREATE) RegEx (RefName=newContractId, Reg Ex = "id":(.+?)\,"terminationType", Template=$1$, Match No.=1, Default=NONE) BeanShell Assertion (Name=newContractId, Param=${__setProperty(newContractId,${newContractId},)}) Save Response to file (File prefix=contractRecords_${LoopCounter2}, Var Name=newContractFile) Loop Controller HTTP Request (READ) HTTP Request (UPDATE) HTTP Request (DELETE) Thread Group 3 HTTP Header Manager (application/xml) Loop Controller Counter (Start=1, Increment=1, Maximum=100, Num Format=null, Ref Name=LoopCounter3) HTTP Request (CREATE) RegEx (RefName=newPricingId, Reg Ex = "id":(.+?)\,"terminationType", Template=$1$, Match No.=1, Default=NONE) BeanShell Assertion (Name=newPricingId, Param=${__setProperty(newPricingId,${newPricingId},)}) Save Response to file (File prefix=pricingRecords_${LoopCounter3}, Var Name=newPricingFile) Loop Controller HTTP Request (READ) HTTP Request (UPDATE) HTTP Request (DELETE)
UPDATE
я ближе к желаемым результатам. Когда включен «Сброс счетчика на каждой группе потоков», я ожидаю, что Count группы 2 будет сброшен на 0. Однако он продолжается из предыдущего потока. Мне нужно сбросить счетчик в каждой группе потоков. Вот почему:
Thread Group 2 HTTP Header Manager (application/json) Loop Controller Counter (Start=1, Increment=1, Maximum=100, Num Format=null, Ref Name=LoopCounter2) HTTP POST Request (CREATE) ${__FileToString(${payloadArchive}/${__eval(contract_${LoopCounter})}.json,,)}
Как вы можете видеть, я прохожу в другой файл в тело HTTP-запрос с каждой петлей резьбы Группа 2. Каждый .json файл содержит уникальные элементы, основанные на уникальных ограничениях базы данных , Файлы называются «contract_01.json», «contract_02.json», «contract_03.json» и т. Д. Вот почему я хочу, чтобы Thread Group 2 перезапустил свой счетчик.
Вы говорите «у меня 3 потока» в описании, но ваш код подсказывает, что у вас есть 3 группы нитей. Так вы имели в виду, что у вас есть 3 потока в каждой из трех групп нитей? Или сколько потоков существует в каждой группе нитей? Также проверяется «Track Counter Independently для каждого пользователя»? –
Извините, у меня только 1 нить и 3 группы нитей. (_I исправил это в моих указаниях.).Когда включен «Track Counter Independently ....», я ближе к желаемым результатам. Когда включен «Сброс счетчика на каждой группе потоков», я ожидаю, что Count группы 2 будет сброшен на 0. Однако он продолжается из предыдущего потока. Мне нужно сбросить счетчик каждой группы участников, чтобы начать с 0. – David