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: