HOSTNAME sandbox = PROTOCOL http = PORT 23232 = true false admin_login admin = admin_password admindev = , UTF-8 users.csv true false true shareMode.all false user_login,user_password 1 1 true continue 1 false Test Plan Test Plan TF_UC05_Filtration false 1 0 0 4000 1000 false ${HOSTNAME} ${PORT} ${PROTOCOL} / true GET true false Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 ${HOSTNAME} ${PORT} ${PROTOCOL} /login/ true GET true false true next / = true false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 Referer http://sandbox:23232/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /login/ true POST true false false username ${admin_login} = true false password ${admin_password} = true true next / = true false csrfmiddlewaretoken ${CSRF} = true Referer http://sandbox:23232/login/?next=/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin http://sandbox:23232 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Your username and password didn't match. Please try again Assertion.response_data false 20 false QUERY_TOKEN \bname=\'query_encoded\'\svalue='(\w*)\b\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 1 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 false ${HOSTNAME} ${PORT} ${PROTOCOL} / true GET true false Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 ${HOSTNAME} ${PORT} ${PROTOCOL} /login/ true GET true false true next / = true false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 Referer http://sandbox:23232/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 randomChoice ${__Random(0,1,)} = ${__jexl3(${randomChoice} == 1)} false true Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /login/ true POST true false false username ${user_login} = true false password ${user_password} = true true next / = true false csrfmiddlewaretoken ${CSRF} = true Referer http://sandbox:23232/login/?next=/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin http://sandbox:23232 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Your username and password didn't match. Please try again Assertion.response_data false 20 false QUERY_TOKEN \bname=\'query_encoded\'\svalue='(\w*)\b\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 1 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 random_ticket_id_from_page $.data[*].id 0 ${__jexl3(${randomChoice} == 0)} false true localhost 8086 ${PROTOCOL} /query true GET true false false test = true db false select%20*%20from%20sanbox%20limit%201 = true q user_login_db $.results[0].series[0].values[0][1] 1 user_password_db $.results[0].series[0].values[0][2] 1 Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /login/ true POST true false false username ${user_login_db} = true false password ${user_password_db} = true true next / = true false csrfmiddlewaretoken ${CSRF} = true Referer http://sandbox:23232/login/?next=/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin http://sandbox:23232 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Your username and password didn't match. Please try again Assertion.response_data false 20 false QUERY_TOKEN \bname=\'query_encoded\'\svalue='(\w*)\b\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 1 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 random_ticket_id_from_page $.data[*].id 0 false Test Plan Test Plan TF_UC01_AdminLogin Test Plan Test Plan TF_Timer ${HOSTNAME} ${PORT} ${PROTOCOL} /system_settings/ true GET true false Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 ${HOSTNAME} ${PORT} ${PROTOCOL} /admin/auth/user/ true GET true false Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/system_settings/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 ${HOSTNAME} ${PORT} ${PROTOCOL} /admin/auth/user/add/ true GET true false Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/${${admin_login}_login}/auth/user/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /admin/auth/user/add/ true POST true false false csrfmiddlewaretoken ${CSRF} = true false username ${USER_NAME} = true true password1 ${USER_PASSWORD} = true true password2 ${USER_PASSWORD} = true false _save Save = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/${${admin_login}_login}/auth/user/add/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin ${PROTOCOL}://${HOSTNAME}:${PORT} Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 USER_NAME USER_PASSWORD DATE_JOIN_0 DATE_JOIN_1 FIRST_NAME LAST_NAME EMAIL ${__RandomString(6,aeysdtrguno,)} ${__RandomString(8,AESsdtrguno,)} ${__RandomDate(,2025-12-01,2025-12-31,,)} ${__time(HH:mm:ss,)} ${__RandomString(8,1234QWERasdf,)} ${__RandomString(8,1234QWERasdf,)} ${__RandomString(10,abcdefghijklmnopqrstuvwxyz,)}@gmail.com false URL USER_ID ^http:\/\/sandbox:23232\/admin\/auth\/user/(\d*)\/change\/ $1$ false 1 Please correct the error below. ERROR_USER_NOT_CREATED Assertion.response_data false 20 ass ${JMeterThread.last_sample_ok} false true true String csvFile = "users.csv" def userLogin = vars.get("USER_NAME") def userPassword = vars.get("USER_PASSWORD") if(${JMeterThread.last_sample_ok}){ try { File file = new File(csvFile) boolean fileExists = file.exists() FileWriter writer = new FileWriter(file, true) if (!fileExists || file.length() == 0) { writer.write("Login,Password\n") } writer.write(userLogin + "," + userPassword + "\n") writer.close() log.info(userLogin + "," + userPassword + "\n") } catch (Exception e) { log.error("error " + e.getMessage()) } } groovy localhost 8086 ${PROTOCOL} /write?db=test true POST true true false sanbox,login=${USER_NAME} password="${USER_PASSWORD}" = Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /admin/auth/user/${USER_ID}/change/ true POST true false false csrfmiddlewaretoken ${CSRF} = true false username ${USER_NAME} = true false first_name ${FIRST_NAME} = true false last_name ${LAST_NAME} = true false email ${EMAIL} = true false is_active on = true false is_staff on = true false last_login_0 = true false last_login_1 = true false date_joined_0 ${DATE_JOIN_0} = true true date_joined_1 ${DATE_JOIN_1} = true false initial-date_joined_0 ${DATE_JOIN_0} = true true initial-date_joined_1 ${DATE_JOIN_1} = true false _save Save = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/${${admin_login}_login}/auth/user/5/change/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin ${PROTOCOL}://${HOSTNAME}:${PORT} Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 false Test Plan Test Plan TF_UC01_AdminLogin Test Plan Test Plan TF_Timer ${HOSTNAME} ${PORT} ${PROTOCOL} /admin/auth/user/add/ true GET true false Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/${${admin_login}_login}/auth/user/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /admin/auth/user/add/ true POST true false false csrfmiddlewaretoken ${CSRF} = true false username ${USER_NAME} = true true password1 ${__RandomString(8,ASD123fghjk,PASSWORD)} = true true password2 ${PASSWORD} = true false _save Save = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/${${admin_login}_login}/auth/user/add/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin ${PROTOCOL}://${HOSTNAME}:${PORT} Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 USER_NAME USER2a_PASSWORD DATE_JOIN_0 DATE_JOIN_1 FIRST_NAME LAST_NAME EMAIL ${__RandomString(6,aeysdtrguno,)} ${__RandomString(8,AESsdtrguno,)} ${__RandomDate(,2025-12-01,2025-12-31,,)} ${__time(HH:mm:ss,)} ${__RandomString(8,1234QWERasdf,)} ${__RandomString(8,1234QWERasdf,)} ${__RandomString(10,abcdefghijklmnopqrstuvwxyz,)}@gmail.com false URL USER_ID ^http:\/\/sandbox:23232\/admin\/auth\/user/(\d*)\/change\/ $1$ false 1 Please correct the error below. ERROR_USER_NOT_CREATED Assertion.response_data false 20 ass ${JMeterThread.last_sample_ok} false true true String csvFile = "users.csv" def userLogin = vars.get("USER_NAME") def userPassword = vars.get("PASSWORD") if(${JMeterThread.last_sample_ok}){ try { File file = new File(csvFile) boolean fileExists = file.exists() FileWriter writer = new FileWriter(file, true) if (!fileExists || file.length() == 0) { writer.write("Login,Password\n") } writer.write(userLogin + "," + userPassword + "\n") writer.close() log.info(userLogin + "," + userPassword + "\n") } catch (Exception e) { log.error("error " + e.getMessage()) } } groovy localhost 8086 ${PROTOCOL} /write?db=test true POST true true false sanbox,login=${USER_NAME} password="${USER2a_PASSWORD}" = Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /admin/auth/user/${USER_ID}/change/ true POST true false false csrfmiddlewaretoken ${CSRF} = true false username ${USER_NAME} = true false first_name ${FIRST_NAME} = true false last_name ${LAST_NAME} = true false email ${EMAIL} = true false is_active on = true false is_staff on = true false last_login_0 = true false last_login_1 = true false date_joined_0 ${DATE_JOIN_0} = true true date_joined_1 ${DATE_JOIN_1} = true false initial-date_joined_0 ${DATE_JOIN_0} = true true initial-date_joined_1 ${DATE_JOIN_1} = true false _save Save = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/${${admin_login}_login}/auth/user/5/change/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin ${PROTOCOL}://${HOSTNAME}:${PORT} Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 false Test Plan Test Plan TF_UC01_UserLogin Test Plan Test Plan TF_Timer QUEUE TITLE BODY PRIORITY DUE_DATE SUBMITTER_EMAIL ASSIGNED_TO ${__Random(1,2,)} ${__RandomString(6,asdfghjkl,)} ${__RandomString(6,asdfghjkl,)} ${__Random(1,5,)} ${__RandomDate(,2025-12-20,2025-12-31,,)} ${__time(HH:mm:ss,)} ${__RandomString(6,asdfghjkl,)} ${__Random(1,34,)} false ${HOSTNAME} ${PORT} ${PROTOCOL} /tickets/submit/ true GET true false Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /tickets/submit/ true POST true true true false false csrfmiddlewaretoken ${CSRF} = true false queue ${__Random(1,2,)} = true false title ${__RandomString(6,asdfghjkl,)} = true false body ${__RandomString(6,asdfghjkl,)} = true false priority ${__Random(1,5,)} = true false due_date ${__RandomDate(,2025-12-20,2025-12-31,,)} ${__time(HH:mm:ss,)} = true false submitter_email ${__RandomString(10,abcdefghijklmnopqrstuvwxyz,)}@gmail.com = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/submit/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin ${PROTOCOL}://${HOSTNAME}:${PORT} Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 false Test Plan Test Plan TF_UC01_UserLogin Test Plan Test Plan TF_Timer ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 2 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 10 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 records_total $.recordsTotal 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 3 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start ${start_from} = true false length 10 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 true def recordsTotal = vars.get("records_total") int limitOfTicketsOnPage = 10 int countOfPages = recordsTotal.toInteger()/limitOfTicketsOnPage int randomNumber = new Random().nextInt(countOfPages) int startFrom = randomNumber * limitOfTicketsOnPage log.info(String.valueOf(startFrom)) vars.put("start_from", String.valueOf(startFrom)) groovy random_ticket_id_from_page $.data[*].id 0 false Test Plan Test Plan TF_UC01_UserLogin Test Plan Test Plan TF_Timer filter_by_assiged_to assigned_to = assigned_to_unassigned -1 = assigned_to_admin 1 = filter_by_queue queue = queue_django_helpdesk 1 = queue_some_product 2 = filter_by_status status = status_open 1 = status_reopened 2 = status_resolved 3 = status_closed 4 = status_duplicated 5 = filter_by_date_from date_from = filter_by_date_to date_to = filter_by_keyword q = filter_by_knowledgeIbase_item kbitem = kbitem_uncategorized -1 = kbitem_kb_cat1_django_helpdesk 1 = kbitem_kb_cat1_contributing_to_django_helpdesk 2 = kbitem_kb_cat2_something_else 3 = ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /tickets/ true GET true false false sortx created = true false ${filter_by_status} ${status_open} = true false ${filter_by_status} ${status_reopened} = true false ${selected_filter_value} = true ${selected_filter} Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 false QUERY_TOKEN \bname=\'query_encoded\'\svalue='(\w*=)\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 request_headers filter_field &(?!status)(\w+)=(-?\d+) $1$ false 1 false filter_field_parameter &(?!status)(\w+)=(-?\d+) $1$ false 2 groovy true Random rand = new Random() def filters = [ vars.get("filter_by_assiged_to"), vars.get("filter_by_queue"), vars.get("filter_by_keyword"), vars.get("filter_by_knowledgeIbase_item") ] def assignedToValues = [ vars.get("assigned_to_unassigned"), vars.get("assigned_to_admin") ] def queueValues = [ vars.get("queue_django_helpdesk"), vars.get("queue_some_product") ] def kbitemValues = [ vars.get("kbitem_uncategorized"), vars.get("kbitem_kb_cat1_django_helpdesk"), vars.get("kbitem_kb_cat1_contributing_to_django_helpdesk"), vars.get("kbitem_kb_cat2_something_else") ] def selectedFilterValue def selectedFilter = filters[rand.nextInt(filters.size())] switch(selectedFilter) { case "queue": selectedFilterValue = queueValues[rand.nextInt(queueValues.size())] break case "assigned_to": selectedFilterValue = assignedToValues[rand.nextInt(assignedToValues.size())] break case "kbitem": selectedFilterValue = kbitemValues[rand.nextInt(kbitemValues.size())] break default: selectedFilter = "queue" selectedFilterValue = "1" log.warn("something goes wrong") } vars.put("selected_filter", selectedFilter) vars.put("selected_filter_value", selectedFilterValue) ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 1 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /save_query/ POST true false false csrfmiddlewaretoken ${CSRF} = true true query_encoded ${QUERY_TOKEN} = true false title ${__RandomString(8,qazwsxedcrfv,)} = true Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin ${PROTOCOL}://${HOSTNAME}:${PORT} Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 request_headers query_id \bsaved_query=(\d+) $1$ false 1 groovy true vars.put("random_chance", String.valueOf(${__groovy(Math.random())})) ${__groovy(${random_chance} <= 0.1)} false true Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /tickets/ true GET true false false saved_query = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/save_query/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false query_token \bname=\'query_encoded\'\svalue='(\w*=?)\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 ${__groovy(${random_chance} <= 0.1)} false true Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /tickets/ true GET true false false saved_query none = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/save_query/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false query_token \bname=\'query_encoded\'\svalue='(\w*=?)\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 1 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/?sortx=created&queue=1&status=1&status=2&date_from=&date_to=&q= Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 groovy true import groovy.json.JsonSlurper def jsonSlurper = new JsonSlurper() def jsonResponse = jsonSlurper.parseText(prev.getResponseDataAsString()) def filter_field = vars.get("filter_field") def filter_field_parameter = vars.get("filter_field_parameter") switch(filter_field) { case "queue": checkQueueFilter(jsonResponse, filter_field_parameter) break case "assigned_to": checkAssignedToFilter(jsonResponse, filter_field_parameter) break case "kbitem": checkKbitemFilter(jsonResponse, filter_field_parameter) break default: log.warn("Неизвестный фильтр: ${filter_field}") } def checkQueueFilter(result, expectedQueueId) { def expectedId = expectedQueueId as Integer def mismatched = [] result.data.each { item -> if (item.queue.id != expectedId) { AssertionResult.setFailure(true) def errorMsg = "Найдены тикеты с неверным queue.id (ожидался ${expectedId}): " AssertionResult.setFailureMessage(errorMsg) } } if (mismatched.isEmpty()) { log.info("Все ${result.data.size()} тикетов принадлежат очереди ID ${expectedId}") } } def checkAssignedToFilter(result, paramValue) { def expectedValue = paramValue as Integer if (expectedValue == -1) { def assignedTickets = [] result.data.each { item -> if (item.assigned_to != "None" && item.assigned_to != null) { assignedTickets.add("Тикет ${item.id}: assigned_to='${item.assigned_to}'") } } if (assignedTickets.isEmpty()) { log.info(" Все ${result.data.size()} тикетов не назначены (unassigned)") } else { def errorMsg = "Найдены назначенные тикеты: " + assignedTickets.join(", ") AssertionResult.setFailure(true) AssertionResult.setFailureMessage(errorMsg) } } else { log.info("Проверка назначения на пользователя ID ${expectedValue}") } } def checkKbitemFilter(result, paramValue) { def expectedValue = paramValue as Integer if (expectedValue == -1) { def categorizedTickets = [] result.data.each { item -> if (item.kbitem && item.kbitem != "") { categorizedTickets.add("Тикет ${item.id}: kbitem='${item.kbitem}'") } } if (categorizedTickets.isEmpty()) { log.info("Все ${result.data.size()} тикетов без категории базы знаний") } else { def errorMsg = "Найдены тикеты с категорией базы знаний: " + categorizedTickets.join(", ") AssertionResult.setFailure(true) AssertionResult.setFailureMessage(errorMsg) } } else { log.info("Проверка категории базы знаний ID ${expectedValue}") } } false Test Plan Test Plan TF_UC01_UserLogin Test Plan Test Plan TF_Timer ${HOSTNAME} ${PORT} ${PROTOCOL} /tickets/${random_ticket_id_from_page}/ true GET true false Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 has_assigned_to th[class="table-active"] + td false 3 ${__groovy(vars.get("has_assigned_to") == "Unassigned",)} false true Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /tickets/${random_ticket_id_from_page}/ true GET true false false take Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/43/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 false Test Plan Test Plan TF_UC01_UserLogin Test Plan Test Plan TF_Timer ${HOSTNAME} ${PORT} ${PROTOCOL} /tickets/ true GET true false false sortx created = true false date_from = true false date_to = true false q = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 false QUERY_TOKEN \bname=\'query_encoded\'\svalue='(\w*=)\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 1 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/?sortx=created&date_from=&date_to=&q= Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 records_total $.recordsTotal 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 2 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start ${start_from} = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 true def recordsTotal = vars.get("records_total") int limitOfTicketsOnPage = 25 int countOfPages = recordsTotal.toInteger()/limitOfTicketsOnPage int randomNumber = new Random().nextInt(countOfPages) int startFrom = randomNumber * limitOfTicketsOnPage log.info(String.valueOf(startFrom)) vars.put("start_from", String.valueOf(startFrom)) groovy random_ticket_id_from_page $.data[*].id 0 ${HOSTNAME} ${PORT} ${PROTOCOL} /tickets/${random_ticket_id_from_page}/ true GET true false Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/?sortx=created&date_from=&date_to=&q= Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 new_status label[class="radio-inline"]>input value false 0 Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} /tickets/${random_ticket_id_from_page}/update/ true POST true true true false false comment ${__RandomString(8,qazwsxedcrfvtgbyhn,)} = true false new_status ${new_status} = true false csrfmiddlewaretoken ${CSRF} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/60/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin ${PROTOCOL}://${HOSTNAME}:${PORT} Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 false Test Plan Test Plan TF_UC01_UserLogin Test Plan Test Plan TF_Timer filter_by_assiged_to assigned_to = assigned_to_unassigned -1 = assigned_to_admin 1 = filter_by_queue queue = queue_django_helpdesk 1 = queue_some_product 2 = queue_random ${__Random(1,2,)} = filter_by_status status = status_open 1 = status_reopened 2 = status_resolved 3 = status_closed 4 = status_duplicated 5 = status_random ${__Random(1,5,)} = filter_by_date_from date_from = start_from_random ${__RandomDate(,,2026-06-30,,)} = filter_by_date_to date_to = filter_by_date_to ${__RandomDate(,2026-07-01,2026-12-31,,)} = filter_by_keyword q = keyword_random ${__RandomString(6,qazwsxedcrfv,)} = filter_by_knowledgeIbase_item kbitem = kbitem_uncategorized -1 = kbitem_kb_cat1_django_helpdesk 1 = kbitem_kb_cat1_contributing_to_django_helpdesk 2 = kbitem_kb_cat2_something_else 3 = ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /tickets/ true GET true false false sortx created = true false status 5 = true false = true ${filter_by_date_from} false = true ${filter_by_date_to} false = true ${filter_by_keyword} Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 false QUERY_TOKEN \bname=\'query_encoded\'\svalue='(\w*=?)\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 1 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 records_total $.recordsTotal 1 random_ticket_id_from_page $.data[*].id 0 ${__groovy(vars.get("records_total") as Integer != 0)} false true Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} /tickets/update/ true POST true false false csrfmiddlewaretoken ${CSRF} = true false ticketTable_length 25 = true false ticket_id ${random_ticket_id_from_page} = true false action delete = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/?sortx=created&status=5&date_from=&date_to=&q= Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin ${PROTOCOL}://${HOSTNAME}:${PORT} Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 false QUERY_TOKEN \bname=\'query_encoded\'\svalue='(\w*=?)\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 1 = true columns[0][data] id = true columns[0][name] = true columns[0][searchable] true = true columns[0][orderable] false = true columns[0][search][value] = true columns[0][search][regex] false = true columns[1][data] ticket = true columns[1][name] = true columns[1][searchable] true = true columns[1][orderable] true = true columns[1][search][value] = true columns[1][search][regex] false = true columns[2][data] priority = true columns[2][name] = true columns[2][searchable] true = true columns[2][orderable] true = true columns[2][search][value] = true columns[2][search][regex] false = true columns[3][data] queue = true columns[3][name] = true columns[3][searchable] true = true columns[3][orderable] true = true columns[3][search][value] = true columns[3][search][regex] false = true columns[4][data] status = true columns[4][name] = true columns[4][searchable] true = true columns[4][orderable] true = true columns[4][search][value] = true columns[4][search][regex] false = true columns[5][data] created = true columns[5][name] = true columns[5][searchable] true = true columns[5][orderable] true = true columns[5][search][value] = true columns[5][search][regex] false = true columns[6][data] due_date = true columns[6][name] = true columns[6][searchable] true = true columns[6][orderable] true = true columns[6][search][value] = true columns[6][search][regex] false = true columns[7][data] assigned_to = true columns[7][name] = true columns[7][searchable] true = true columns[7][orderable] true = true columns[7][search][value] = true columns[7][search][regex] false = true columns[8][data] submitter = true columns[8][name] = true columns[8][searchable] true = true columns[8][orderable] true = true columns[8][search][value] = true columns[8][search][regex] false = true columns[9][data] time_spent = true columns[9][name] = true columns[9][searchable] true = true columns[9][orderable] true = true columns[9][search][value] = true columns[9][search][regex] false = true columns[10][data] kbitem = true columns[10][name] = true columns[10][searchable] true = true columns[10][orderable] true = true columns[10][search][value] = true columns[10][search][regex] false = true order[0][column] 0 = true order[0][dir] asc = false start 0 = false length 25 = true search[value] = true search[regex] false = false _ ${__time(,)} = Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 true 5000 postgresql jdbc:postgresql://sandbox:23233/postgres org.postgresql.Driver true postgresdev 1 false 10000 DEFAULT 60000 postgres postgresql DO $$ DECLARE ticket_id_to_delete INTEGER; BEGIN -- Получаем и блокируем ID тикета SELECT id INTO ticket_id_to_delete FROM helpdesk_ticket WHERE status = 5 ORDER BY RANDOM() LIMIT 1; IF ticket_id_to_delete IS NOT NULL THEN DELETE FROM helpdesk_ticketchange WHERE followup_id IN ( SELECT id FROM helpdesk_followup WHERE ticket_id = ticket_id_to_delete ); DELETE FROM helpdesk_followup WHERE ticket_id = ticket_id_to_delete; DELETE FROM helpdesk_ticket WHERE id = ticket_id_to_delete; END IF; END $$; Prepared Update Statement Store as String false Test Plan Test Plan TF_UC01_UserLogin Test Plan Test Plan TF_Timer ${HOSTNAME} ${PORT} ${PROTOCOL} utf-8 /tickets/ true GET true false false sortx created = true false = true ${filter_by_date_from} false = true ${filter_by_date_to} false = true ${filter_by_keyword} Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false CSRF \bname=\"csrfmiddlewaretoken\"\svalue=\"(\w{32,64})\" $1$ CSRF ERROR false 1 false QUERY_TOKEN \bname=\'query_encoded\'\svalue='(\w*=)\'/> $1$ QUERY_TOKEN_NOT_FOUND false 1 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 3 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 true import groovy.json.JsonSlurper def jsonSlurper = new JsonSlurper() def jsonResponse = jsonSlurper.parseText(prev.getResponseDataAsString()) def minPriority = jsonResponse.data.collect { it.priority }.min() def minItems = jsonResponse.data.findAll { it.priority == minPriority } log.info("Найдено элементов с минимальным priority (${minPriority}): ${minItems.size()}") if (minItems && minItems.size() > 0) { def randomIndex = new Random().nextInt(minItems.size()) def randomItem = minItems[randomIndex].id vars.put("random_minimum_status", String.valueOf(randomItem)) } groovy Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} /tickets/update/ true POST true false false csrfmiddlewaretoken ${CSRF} = true false ticketTable_length 25 = true false ticket_id ${random_minimum_status} = true false action close = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/?sortx=created&status=5&date_from=&date_to=&q= Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Origin ${PROTOCOL}://${HOSTNAME}:${PORT} Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Upgrade-Insecure-Requests 1 Content-Type application/x-www-form-urlencoded Cache-Control max-age=0 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 ${HOSTNAME} ${PORT} ${PROTOCOL} /datatables_ticket_list/${QUERY_TOKEN} true GET true false false draw 1 = true true columns[0][data] id = true true columns[0][name] = true true columns[0][searchable] true = true true columns[0][orderable] false = true true columns[0][search][value] = true true columns[0][search][regex] false = true true columns[1][data] ticket = true true columns[1][name] = true true columns[1][searchable] true = true true columns[1][orderable] true = true true columns[1][search][value] = true true columns[1][search][regex] false = true true columns[2][data] priority = true true columns[2][name] = true true columns[2][searchable] true = true true columns[2][orderable] true = true true columns[2][search][value] = true true columns[2][search][regex] false = true true columns[3][data] queue = true true columns[3][name] = true true columns[3][searchable] true = true true columns[3][orderable] true = true true columns[3][search][value] = true true columns[3][search][regex] false = true true columns[4][data] status = true true columns[4][name] = true true columns[4][searchable] true = true true columns[4][orderable] true = true true columns[4][search][value] = true true columns[4][search][regex] false = true true columns[5][data] created = true true columns[5][name] = true true columns[5][searchable] true = true true columns[5][orderable] true = true true columns[5][search][value] = true true columns[5][search][regex] false = true true columns[6][data] due_date = true true columns[6][name] = true true columns[6][searchable] true = true true columns[6][orderable] true = true true columns[6][search][value] = true true columns[6][search][regex] false = true true columns[7][data] assigned_to = true true columns[7][name] = true true columns[7][searchable] true = true true columns[7][orderable] true = true true columns[7][search][value] = true true columns[7][search][regex] false = true true columns[8][data] submitter = true true columns[8][name] = true true columns[8][searchable] true = true true columns[8][orderable] true = true true columns[8][search][value] = true true columns[8][search][regex] false = true true columns[9][data] time_spent = true true columns[9][name] = true true columns[9][searchable] true = true true columns[9][orderable] true = true true columns[9][search][value] = true true columns[9][search][regex] false = true true columns[10][data] kbitem = true true columns[10][name] = true true columns[10][searchable] true = true true columns[10][orderable] true = true true columns[10][search][value] = true true columns[10][search][regex] false = true true order[0][column] 0 = true true order[0][dir] asc = true false start 0 = true false length 25 = true true search[value] = true true search[regex] false = true false _ ${__time(,)} = true Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 X-Requested-With XMLHttpRequest Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept application/json, text/javascript, */*; q=0.01 random_ticket_id_from_page $.data[*].id 0 false Test Plan Test Plan TF_UC01_UserLogin Test Plan Test Plan TF_Timer Detected the start of a redirect chain ${HOSTNAME} ${PORT} ${PROTOCOL} /logout/ true GET true false Referer ${PROTOCOL}://${HOSTNAME}:${PORT}/tickets/ Accept-Language ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 Upgrade-Insecure-Requests 1 Accept-Encoding gzip, deflate User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 false Test Plan Test Plan TF_UC01_UserLogin ${__jexl3(${__Random(0,1,)} == 1)} false true Test Plan Test Plan TF_UC04_Pagination Test Plan Test Plan TF_UC03_TicketCreation Test Plan Test Plan TF_UC08_DeleteTicket Test Plan Test Plan TF_UC10_Logout false saveConfig true true true true true true true false true true false false false true false false false true 0 true true true true true true 9000 Pagination (?i).*\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2) true 0 false false true true true false 0 false false influxdbMetricsSender org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender = influxdbUrl http://localhost:8086/write?db=test = application application name = measurement nikitadr = summaryOnly true = samplersRegex .* = percentiles 90;95;99 = testTitle Test name = eventTags = org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient