2017-07-15 5 views
0

J'essaie de me connecter the-internet.herokuapp.com/basic_auth en utilisant admin: admin comme informations d'identification. J'utilise Jmeter v3.0 et j'ai ajouté le gestionnaire d'autorisation HTTP, gestionnaire de cookies et ajouté le nom et la valeur dans le gestionnaire d'en-tête comme indiqué dans l'image, mais je reçois toujours 401 réponse non autorisée.Comment faire face à 401 Réponse non autorisée i Jmeter V3.0 ou moins?

J'ai essayé la même chose dans un système différent avec Jmeter v3.1 et son fonctionnement.

Est-ce que quelqu'un sait comment résoudre le problème avec Jmeter v3.0 ou inférieur?

enter image description here

Répondre

0

Je ne peux pas reproduire votre problème en utilisant JMeter 3.0 et seulement ayant HTTP Authorization Manager ajouté en dehors de la requête HTTP:

enter image description here

Voici une Test Plan complète juste au cas où:

<?xml version="1.0" encoding="UTF-8"?> 
<jmeterTestPlan version="1.2" properties="2.9" jmeter="3.0 r1743807"> 
<hashTree> 
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> 
    <stringProp name="TestPlan.comments"></stringProp> 
    <boolProp name="TestPlan.functional_mode">false</boolProp> 
    <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> 
    <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> 
     <collectionProp name="Arguments.arguments"/> 
    </elementProp> 
    <stringProp name="TestPlan.user_define_classpath"></stringProp> 
    </TestPlan> 
    <hashTree> 
    <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> 
     <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> 
     <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> 
     <boolProp name="LoopController.continue_forever">false</boolProp> 
     <stringProp name="LoopController.loops">1</stringProp> 
     </elementProp> 
     <stringProp name="ThreadGroup.num_threads">1</stringProp> 
     <stringProp name="ThreadGroup.ramp_time">1</stringProp> 
     <longProp name="ThreadGroup.start_time">1500191430000</longProp> 
     <longProp name="ThreadGroup.end_time">1500191430000</longProp> 
     <boolProp name="ThreadGroup.scheduler">false</boolProp> 
     <stringProp name="ThreadGroup.duration"></stringProp> 
     <stringProp name="ThreadGroup.delay"></stringProp> 
    </ThreadGroup> 
    <hashTree> 
     <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> 
     <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> 
      <collectionProp name="Arguments.arguments"/> 
     </elementProp> 
     <stringProp name="HTTPSampler.domain">the-internet.herokuapp.com</stringProp> 
     <stringProp name="HTTPSampler.port"></stringProp> 
     <stringProp name="HTTPSampler.connect_timeout"></stringProp> 
     <stringProp name="HTTPSampler.response_timeout"></stringProp> 
     <stringProp name="HTTPSampler.protocol"></stringProp> 
     <stringProp name="HTTPSampler.contentEncoding"></stringProp> 
     <stringProp name="HTTPSampler.path">/basic_auth</stringProp> 
     <stringProp name="HTTPSampler.method">GET</stringProp> 
     <boolProp name="HTTPSampler.follow_redirects">true</boolProp> 
     <boolProp name="HTTPSampler.auto_redirects">false</boolProp> 
     <boolProp name="HTTPSampler.use_keepalive">true</boolProp> 
     <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> 
     <boolProp name="HTTPSampler.monitor">false</boolProp> 
     <stringProp name="HTTPSampler.embedded_url_re"></stringProp> 
     </HTTPSamplerProxy> 
     <hashTree> 
     <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> 
      <collectionProp name="AuthManager.auth_list"> 
      <elementProp name="" elementType="Authorization"> 
       <stringProp name="Authorization.url"></stringProp> 
       <stringProp name="Authorization.username">admin</stringProp> 
       <stringProp name="Authorization.password">admin</stringProp> 
       <stringProp name="Authorization.domain"></stringProp> 
       <stringProp name="Authorization.realm"></stringProp> 
      </elementProp> 
      </collectionProp> 
     </AuthManager> 
     <hashTree/> 
     </hashTree> 
     <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> 
     <boolProp name="ResultCollector.error_logging">false</boolProp> 
     <objProp> 
      <name>saveConfig</name> 
      <value class="SampleSaveConfiguration"> 
      <time>true</time> 
      <latency>true</latency> 
      <timestamp>true</timestamp> 
      <success>true</success> 
      <label>true</label> 
      <code>true</code> 
      <message>true</message> 
      <threadName>true</threadName> 
      <dataType>true</dataType> 
      <encoding>false</encoding> 
      <assertions>true</assertions> 
      <subresults>true</subresults> 
      <responseData>false</responseData> 
      <samplerData>false</samplerData> 
      <xml>false</xml> 
      <fieldNames>true</fieldNames> 
      <responseHeaders>false</responseHeaders> 
      <requestHeaders>false</requestHeaders> 
      <responseDataOnError>false</responseDataOnError> 
      <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> 
      <assertionsResultsToSave>0</assertionsResultsToSave> 
      <bytes>true</bytes> 
      <threadCounts>true</threadCounts> 
      <idleTime>true</idleTime> 
      </value> 
     </objProp> 
     <stringProp name="filename"></stringProp> 
     </ResultCollector> 
     <hashTree/> 
    </hashTree> 
    </hashTree> 
</hashTree> 
</jmeterTestPlan> 

Je recommanderais de supprimer votre Authorization il ader du gestionnaire d'en-tête HTTP juste au cas où.

Voir l'article How to Use HTTP Basic Authentication in JMeter pour plus de détails sur le contournement de l'authentification de base dans les tests JMeter.


Il est hightly recommandé d'utiliser les dernières versions JMeter si possible que les versions plus récentes viennent normalement avec des corrections de bugs, des améliorations de performances et de toutes nouvelles fonctionnalités d'envisager de la mise à niveau vers JMeter 3.2 (ou tout ce qui est la dernière version disponible au JMeter Downloads page)

+0

Merci pour votre réponse Dmitri. J'ai supprimé l'en-tête Autorisation du gestionnaire d'en-tête HTTP et utilisé le gestionnaire d'autorisation HTTP. ci-dessous sont les détails de mon gestionnaire d'autorisation. url = "the-internet.herokuapp.com/basic_auth" \t nom d'utilisateur "admin" mot de passe "admin" \t \t \t mehcnism "BASIC_DIGEST" sont les détails corrects. –