JMeter L'Authentification De Base
Je suis en train jusqu'à dire que la base du processus d'authentification pour un service web à l'aide de JMeter. Mais à chaque fois il jette une erreur 401:non autorisé. J'ai essayé d'utiliser l'en-Tête HTTP manager pour ajouter un en-tête de l'Autorisation et de la valeur. Néanmoins, il ne fonctionne pas. J'ai aussi essayé d'utiliser le HTTP Autorisation du gestionnaire. Toujours pas de chance. Quelqu'un peut-il aider.
- Comme de JMeter 4.0, vous pouvez utiliser Http Gestionnaire d'Autorisation ou JSR223 Préprocesseur comme expliqué ici: octoperf.com/blog/2018/04/24/jmeter-basic-authentication
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé par le débogage et de demandes en provenance de JMeter que le HTTP Autorisation du Gestionnaire de module ne pas encoder le nom d'utilisateur et le mot de passe correctement. Il met un caractère de saut de ligne après le nom d'utilisateur.
Pour exécuter un JMeter test contre un Basic Auth ordinateur d'extrémité protégé, inclure l'en-Tête HTTP Gestionnaire et ajouter le Basic Auth-tête vous-même:
Manuellement L'Encodage Des Informations D'Identification
À partir de MacOS ou Linux:
echo -n "username:password" | base64
À Partir De Windows:
Aller ici et encoder votre "nom d'utilisateur:mot de passe" chaîne
L'ajout de l'en-Tête d'Autorisation
Dans l'en-Tête HTTP Manager, ajouter une entrée avec le nom "Autorisation" et la valeur "de Base [informations d'identification codées à partir de ci-dessus]"
Modifier le 19 août 2017 pour JMeter 3.2:
Essentiellement de contourner une Autorisation de Base, vous devez ajouter les Autorisation - tête avec la valeur de Base en base64(nom d'utilisateur:mot de passe). Le problème est que JMeter n'a pas base64 fonction intégré.
La solution est :
Etape 1 Ajouter BeanShell Préprocesseur (Préprocesseur --> BeanShell Preprocessor)
Etape 2 Ajouter le script suivant pour le Préprocesseur
Etape 3 Ajouter un en-Tête HTTP Gestionnaire de
Etape 4 Ajouter un en-tête d'Autorisation avec la valeur correcte
nom d'en-tête Autorisation
valeur d'en-tête de Base ${base64HeaderValue} (base64HeaderValue variable est initialisée par la BeanShell Preprocessor)
Donc en fin de compte lorsque vous créez une requête http en-tête d'Autorisation sera transmise au serveur avec base64 chaîne
Procédez de la manière suivante:
1/Configurer HTTP Gestionnaire d'Autorisation correctement avec tous les champs requis
2/
Option 1 : à l'Aide de 4 HTTP : (par défaut)
il est possible depuis JMeter 3.2 sans autre configuration à l'aide de Gestionnaire d'autorisations
Option 2 : à l'Aide de HTTP 3.1 : (obsolète)
dans jmeter.propriétés , décommentez:
dans httpclient.paramètres, décommentez:
Assurez-vous de fournir un protocole de l'URL de base, c'est à dire: "http://localhost" au lieu de "localhost"
Comme Ryan T dit, dans l'en-Tête HTTP Manager, ajouter une entrée avec le nom
"Authorization"
et la valeur"Basic [encoded credentials from above]"
mais sans[]
.En référence à la première réponse ci-dessus, le codage incorrect problème que vous mentionnez qui doit être fixe, comme Apache 3.1 ne semblent coder le nom d'utilisateur:mot de passe correctement dans HTTP Auth Gestionnaire de
L'ajout d'une légère variation de @yurko qui utilise le nom d'utilisateur & mot de passe à partir de variables définies par l'Utilisateur. (pour Jmeter avant 3.2)
Si vous obtenez le code de Réponse par 401, puis ajouter "HTTP Autorisation du gestionnaire de configuration" Config Élément
La mise à jour de bons résultats à partir de votre 2013 réponses:
La HTTP4 option fonctionne également sous l'actuelle Jmeter la version 2.13
après l'ajout de l'en-Tête HTTP Gestionnaire de la ligne contenant:
Vérifié sur l'hôte actuel amazon linux ayant reverse proxy d'apache 2.4 tomcat8; tomcat8 reconnu l'identification de l'utilisateur au lieu de les jeter état 401.