def request = response.replaceAll('""', ${DATE_PLUS_10})
String c = ${__timeShift(yyyy-MM-dd,,P10D,)} -
4 Réponses :
N'utilisez pas la syntaxe $ {} dans le script JSR223,
Vous pouvez ajouter un préprocesseur Paramètres utilisateur
Permet à l'utilisateur de spécifier des valeurs pour les variables utilisateur spécifiques aux threads individuels
Ajoutez une variable comme DATE_PLUS_10 avec la valeur:
String c = vars.get("DATE_PLUS_10");
Ensuite, utilisez-la dans le script
${__timeShift(yyyy-MM-dd,,P10D,)}
vous pouvez utiliser une variable globale ou utilisateur et après cela, vous pouvez écrire
def DATE_PLUS_10=vars.get("DATE_PLUS_10")
log.info(DATE_PLUS_10)
def response = "2020-05-01"//prev.getResponseDataAsString()
log.info('Response Initial: ' + response)
def request = response.replaceAll('""', DATE_PLUS_10)
log.info('Response Massaged: ' + request)
Comme mentionné dans la réponse précédente, vous ne pouvez pas utiliser $ {} dans le processeur JSR223.
p>
J'ai essayé ci-dessous ce préprocesseur beanshell.
def mydate =vars.get("FUTUREDATE");
log.info("my date" + mydate)
def response = prev.getResponseDataAsString()
log.info('Response Initial: ' + response)
def request = response.replaceAll('""', mydate)
log.info('Response Massaged: ' + request)
vars.put('request', request)
//vars.putObject('request', 'request');
System.out.println(${request});
Et utilisé le post-processeur JSR
import java.text.SimpleDateFormat;
import java.util.Date;
Date date = new Date();
date.setDate(date.getDate()+10);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
// or: SimpleDateFormat df = new SimpleDateFormat("MM-dd-yyyy");
String formattedDate = df.format(date);
vars.put("FUTUREDATE",formattedDate);
Problème résolu maintenant.
Ne pas intégrer les fonctions ou variables JMeter dans les scripts, vous pouvez utiliser la section "Paramètres" à la place comme:
ou si vous veulent du code Groovy "pur":
def newDate = new Date().plus(10).format('yyyy-MM-dd')
Plus d'informations: