Size: a a a

QA — Load & Performance

2020 October 12

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
убрал, результат тот же
источник

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
я так делал уже когда сомневался:)
источник

AF

Artem Fedorov in QA — Load & Performance
может убрать код из функции?
источник

AF

Artem Fedorov in QA — Load & Performance
а то jmeter ее и не вызывает скорее всего
источник

KY

Kirill Yurkov in QA — Load & Performance
тогда вот тебе еще одна секретная функция "log.info(string)" - эта волшебная конструкция позволит тебе понять дошел туда вообще jmeter или нет
источник

KY

Kirill Yurkov in QA — Load & Performance
поставь сразу после функции log.info("superteser")
источник

KY

Kirill Yurkov in QA — Load & Performance
если в логах увидишь эту запись, то туда оно доходит и проблема в чем то еще
источник

KY

Kirill Yurkov in QA — Load & Performance
если нет, то Артём вероятно прав и про функция не вызывается
источник

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
да, судя по всему Артем прав
источник

СФ

Степа Фомичев... in QA — Load & Performance
NoEndOutcry💡🔋🚓 Mikstyraspb(L16+9)
Коллеги, помогите советом куда копать, гуглинг не помог, чтение доки по биншеллу не помогло. Написан скрипт который берет файл, меняет одну строчку внутри и имя, и дальше я хочу что бы он мне это пихал в переменные(имя и контет полученный после изменения) что бы дальше отправить его по назначению. ПОка что у меня получилось странное, все вроде работает, но например имя полученное в результате работы скрипта, не хочет передаваться в переменную. Нагрузочник я начинающий, на жаве писать вообще не обучен толком.
Пришли текстом код, пожалуйста
источник

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
Степа Фомичев
Пришли текстом код, пожалуйста
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

 String xmlfile() { // salt = 000000000005
   try {
   String salt = new String(  (long) (Math.random() * 900000000000L) + 100000000000L);
     Path path = Paths.get ("${file}");
     String fileName = path.getFileName().toString().split(".")[0];
     String content = new String(Files.readAllBytes(path));
     String replacement = "TRN_TST-5034018076-82602_TST-1215144519-82600_20200618_70772a04-0265-8deb-b56b-" + salt;
   
     vars.put("filenames", replacement);
     
     String modifiedContent = content.replace(fileName, replacement);
     PrintWriter out = new PrintWriter(replacement+".xml");
     out.print(modifiedContent);
     return replacement+".xml";
   }
     catch (IOException e){
       e.printStackTrace();
       }

 }
источник

ab

artem belikov in QA — Load & Performance
Вообще, первая проблема - у тебя скорее всего синтаксическая ошибка в коде. У тебя функция возвращает строку, но при обработке исключения возврата нет
источник

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
хмм. сейчас голова уже варит медленновато, пошел смотреть, спасибо
источник

СФ

Степа Фомичев... in QA — Load & Performance
NoEndOutcry💡🔋🚓 Mikstyraspb(L16+9)
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

 String xmlfile() { // salt = 000000000005
   try {
   String salt = new String(  (long) (Math.random() * 900000000000L) + 100000000000L);
     Path path = Paths.get ("${file}");
     String fileName = path.getFileName().toString().split(".")[0];
     String content = new String(Files.readAllBytes(path));
     String replacement = "TRN_TST-5034018076-82602_TST-1215144519-82600_20200618_70772a04-0265-8deb-b56b-" + salt;
   
     vars.put("filenames", replacement);
     
     String modifiedContent = content.replace(fileName, replacement);
     PrintWriter out = new PrintWriter(replacement+".xml");
     out.print(modifiedContent);
     return replacement+".xml";
   }
     catch (IOException e){
       e.printStackTrace();
       }

 }
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

String xmlFile() { // salt = 000000000005
 try {
   String salt = String.valueOf((long) (Math.random() * 900000000000L) + 100000000000L);
   Path path = Paths.get ("${file}");
   String fileName = path.getFileName().toString().split("\\.")[0];
   String content = new String(Files.readAllBytes(path));
   String replacement = "TRN_TST-5034018076-82602_TST-1215144519-82600_20200618_70772a04-0265-8deb-b56b-" + salt;
   
   vars.put("filenames", replacement);
     
   String modifiedContent = content.replace(fileName, replacement) + ".xml";
   
   log.info(modifiedContent);

   return replacement + ".xml";
 } catch (IOException ex) {
   log.info("Something went wrong");
   ex.printStackTrace();
 }
}

String replacement = xmlFile();

log.info("Result of function xmlFile: " + replacement);
источник

СФ

Степа Фомичев... in QA — Load & Performance
Вот ваш работающий скрипт
источник

СФ

Степа Фомичев... in QA — Load & Performance
В чем были проблемы:
1) Функция, в которой в переменную подсовывается значение не вызывалась
2) конструктора у класса String с аргументом long не существует.
3) split() принимает регулярное выражение, а не символы. "." в синтаксисе regexp означает "любой символ", чтобы делить строку по точке, нужно ее экранировать.
источник

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
Степа Фомичев
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

String xmlFile() { // salt = 000000000005
 try {
   String salt = String.valueOf((long) (Math.random() * 900000000000L) + 100000000000L);
   Path path = Paths.get ("${file}");
   String fileName = path.getFileName().toString().split("\\.")[0];
   String content = new String(Files.readAllBytes(path));
   String replacement = "TRN_TST-5034018076-82602_TST-1215144519-82600_20200618_70772a04-0265-8deb-b56b-" + salt;
   
   vars.put("filenames", replacement);
     
   String modifiedContent = content.replace(fileName, replacement) + ".xml";
   
   log.info(modifiedContent);

   return replacement + ".xml";
 } catch (IOException ex) {
   log.info("Something went wrong");
   ex.printStackTrace();
 }
}

String replacement = xmlFile();

log.info("Result of function xmlFile: " + replacement);
в таком варианте он не запустился, ругается на синтаксис, скажите пожалуйста, это под JSR223 или биншелл? я немного уже запутался
источник

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
Response message:org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval  Sourced file: inline evaluation of: ``import java.io.IOException; import java.io.PrintWriter; import java.nio.file.Fil . . . '' Token Parsing Error: Lexical error at line 11, column 61.  Encountered: "." (46), after : "\"\\"
источник

NM

NoEndOutcry💡🔋🚓 Mikst... in QA — Load & Performance
Степа Фомичев
В чем были проблемы:
1) Функция, в которой в переменную подсовывается значение не вызывалась
2) конструктора у класса String с аргументом long не существует.
3) split() принимает регулярное выражение, а не символы. "." в синтаксисе regexp означает "любой символ", чтобы делить строку по точке, нужно ее экранировать.
от жешь. спасибо огромное за детальный разбор.
источник

СФ

Степа Фомичев... in QA — Load & Performance
Совет на будущее - не пишите код в jmeter, особенно если не очень хорошо знакомы с языком, скачайте себе intellij idea community, отлаживайте код там
источник