1
votes

J'ai besoin de capturer des orderIds au format tableau à partir de la réponse Jmeter et je veux l'utiliser lors du prochain appel POST

Je ne parviens pas à extraire les orderID au format tableau. orderID 2072764,2072763,2072762,2072761,2072760,2072759,2072758 etc.

str = prev.getResponseDataAsString();
log.info("Previous response is "+str);
var order=str.get(tr);
//log.info(str.get(tr));

J'ai essayé avec l'extracteur d'expression régulière: - /order/(.+?) Échantillonneur BeanShell

<tbody><tr class="row" data-href="/order/2072765">
        <td class="column checkbox"><input type="checkbox" disabled /></td>
        <td class="column wide"></td></tr> <tr class="row" data-href="/order/2072764">
        <td class="column checkbox"><input type="checkbox" /></td>
        <td class="column wide"></td></tr> <tr class="row" data-href="/order/2072763">
        <td class="column checkbox"><input type="checkbox" /></td>
        <td class="column wide"></td></tr> <tr class="row" data-href="/order/2072762">
        <td class="column checkbox"><input type="checkbox" /></td>
        <td class="column wide"></td></tr> <tr class="row" data-href="/order/2072761">
        <td class="column checkbox"><input type="checkbox" /></td>
        <td class="column wide"></td></tr> <tr class="row" data-href="/order/2072760">
        <td class="column checkbox"><input type="checkbox" /></td>
        <td class="column wide"></td></tr> <tr class="row" data-href="/order/2072759">
        <td class="column checkbox"><input type="checkbox" /></td>
        <td class="column wide"></td></tr> <tr class="row" data-href="/order/2072758">
        <td class="column checkbox"><input type="checkbox" /></td>
        <td class="column wide"></td></tr> <tr class="row" data-href="/order/2072757">
        <td class="column checkbox"><input type="checkbox" /></td>
        <td class="column wide"></td></tr><tr></tr></tbody>
        </table>


0 commentaires

3 Réponses :


2
votes

Veuillez vérifier les éléments ci-dessous: -

  1. RegEx pour récupérer toutes les valeurs entrez la description de l'image ici
  2. Post-processeur JSR223 avec le code ci-dessous: -
List<Integer> var_OrderAr = new ArrayList()

for (def i = 1; i <= ${var_Order_matchNr}; i++) {
  var_OrderAr.add(vars.get("var_Order_" + i))
}
log.info "<<<<<<<<<<<<<<<"+var_OrderAr

String formattedString = var_OrderAr.toString()
    .replace("[", "")  //remove the right bracket
    .replace("]", "")  //remove the left bracket

log.info "<<<<<<<<<<<<<<<"+formattedString

vars.putObject("formattedString", formattedString)
  1. Transmettez la variable de tableau créée comme $ {formattedString} dans la deuxième requête entrez la description de l'image ici

J'espère que cela vous aidera.


0 commentaires

0
votes

Je l'ai fait avec le code groovy ci-dessous dans JSR223 PostProcessor

def str = prev.getResponseDataAsString()
log.info("Previous response is "+str);
def pat = /\/order\/(.*)\"/
def mm = str =~ pat
if (mm){
    //log.info("order regex" + mm[0][1]);
    def ss = mm.size()
    def finList = []
    mm.each{
        finList.push('"' + it[1] + '"')
        log.info("id="+it[1])
    }
    def orderIDs = finList.join(",")
    log.info("finVal" + orderIDs)

}


0 commentaires

0
votes
  1. Utilisez Regex comme décrit ci-dessous dans l'image ci-dessous. Regex

  2. Ajouter un échantillonneur de débogage.

  3. Exécutez le script.
  4. Ouvrir l'échantillonneur Debug dans l'arborescence des résultats de View
  5. vous pouvez observer que "order_1_g1" contient le 1er identifiant de commande, "order_2_g1" contient le 2ème identifiant de commande, etc.
  6. Vous pouvez désormais utiliser ces variables partout où vous le souhaitez.

Debugsampler


0 commentaires