0

J'ai une source de données pour le test de charge. l'appel de service Web doit être entièrement terminé, puis le même enregistrement de source de données peut être réutilisé. mais mon problème est de savoir comment je sais que cet enregistrement de données est utilisé. comment puis-je contrôler cela dans mon test de charge VS?comment éviter un appel de service Web en double en même temps dans le test de charge VS

+0

Pouvez-vous [modifier] la question pour fournir plus de contexte? Quels sont les détails du test et pourquoi/comment les enregistrements sont-ils réutilisés? Ma recommandation normale pour éviter l'utilisation simultanée en double si une entrée de source de données doit avoir beaucoup plus de lignes de source de données que le nombre d'utilisateurs virtuels. Au moins deux fois plus et de préférence beaucoup plus. – AdrianHHH

+0

dans mon test, je ne peux plus générer beaucoup plus de sources de données. Je dois utiliser les utilisateurs limités. mes données contiennent des données comme utilisateur et mot de passe, chaque appel de service Web utilise l'utilisateur et le mot de passe. s'il y a deux appels de service Web identiques, le serveur renvoie un message d'erreur. mais je ne veux pas que cette situation se produise. Je souhaite qu'il y ait un plugin, je peux vérifier si maintenant un thread utilise cet utilisateur et le mot de passe, si oui, je vais l'attendre fin, sinon, envoyer l'appel de service web. Y at-il un exemple pour aider à surveiller le fil que je peux utiliser? Merci – Geri

Répondre

0

Il n'existe pas de prise en charge intégrée de la synchronisation de l'utilisation des valeurs de source de données entre les utilisateurs virtuels.

Une possibilité consiste à mettre la demande de connexion dans une boucle qui continue à essayer jusqu'à ce qu'il réussisse. La demande de connexion et la boucle pourrait être structuré comme suit:

loop "Context parameter exists", Check for existence == false 
    Issue the login request 
     Extraction rule: "Extract text" 
      Search for text such as "Login successful" 
      With Required == false 
endloop 

La boucle est réglée sur continue à boucle tandis que le paramètre de contexte (CP) n'existe pas. Il peut être judicieux de définir un nombre maximum d'itérations de la boucle (peut-être 10) juste au cas où le serveur ne fonctionne pas. Cela garantira que le test s'arrête finalement.

La demande de connexion est envoyée et une règle d'extraction recherche du texte qui indique une connexion réussie. Si ce texte est trouvé, alors quelque chose est écrit dans le CP. Si la connexion a échoué alors, car le Required == false, le CP n'est pas créé. D'où la boucle circule à nouveau.

La demande de connexion devrait probablement avoir un temps de réflexion différent de zéro pour donner aux autres utilisateurs virtuels le temps de terminer leur utilisation des données. Vous pouvez même avoir un plugin PostRequest qui met le temps de réflexion à zéro si la connexion a réussi. (Remarque, je pense qu'un plugin PostRequest peut modifier le temps de réflexion mais vous devrez vérifier que cela fonctionne.)

Comprendre les performances du test sera un peu plus complexe car la durée totale du test inclura l'échec tentatives de connexion.