Je voudrais lancer le test de charge de l'une des actions POST dans mon application web. Le problème est que l'action peut être terminée uniquement si elle reçoit une adresse e-mail unique dans les données POST. Je généré script WCAT avec quelques milliers demande chacun avec e-mail unique, comme:Randomisation de test de charge: comment configurer WCAT pour utiliser un scénario différent pour chaque client virtuel?
transaction
{
id = "1";
weight = 1;
request
{
verb = POST; postdata = "Email=test546546546546%40loadtest.com&...";
setheader { name="Content-Length"; value="...";
}
// more requests like that
}
Mon fichier de paramètres UBR est comme:
settings
{
counters
{
interval = 10;
counter = "Processor(_Total)\\% Processor Time";
counter = "Processor(_Total)\\% Privileged Time";
counter = "Processor(_Total)\\% User Time";
counter = "Processor(_Total)\\Interrupts/sec";
}
clientfile = "<above-wcat-script>";
server = "<host name>";
clients = 3;
virtualclients = 100;
}
Quand je lance le test 3x100 = 300 clients commence à envoyer des demandes, mais ils le font dans le même ordre, donc la première requête du premier client est traitée, et les 299 requêtes suivantes des autres clients ne sont plus uniques. Ensuite, la deuxième requête d'un client est traitée et 299 demandes identiques provenant d'autres clients ne sont pas uniques. J'ai besoin d'un moyen de randomiser les demandes ou de les exécuter dans un ordre différent ou de mettre en place des scripts de scénario distincts pour chaque client virtuel afin que chaque requête porte une adresse e-mail unique. Est-il possible de faire ça avec WCAT? Ou peut-être qu'il existe un autre outil qui peut faire un tel test?
c'est exactement ce que je cherchais. – PanJanek
L'utilisation de rand(), clientindex() et vclientindex a également fait l'affaire, avec une petite modification; les nombres dans rand() devraient être des chaînes comme ceci 'rand ("100000", "1000000")'. Pour une raison quelconque, il m'a fallu une heure pour comprendre cela. –
@DJvanWyk, merci d'avoir remarqué les guillemets manquants dans la fonction rand(). J'ai corrigé l'erreur dans ma réponse. –