2016-05-20 5 views
0

Ich möchte Visual Studio Team Services verwenden, um einen in JMeter in der Cloud geschriebenen Lasttestplan auszuführen. In meinem Test muss ich die Datei hochladen. Ich denke, ich sollte diese Datei an 'unterstützende Dateien' Feld anhängen, aber ich habe keine Ahnung, was der Pfad zu dieser Datei ist. Es gibt Fehlermeldung:Visual Studio Team-Dienste - Load-Tests - JMeter - Pfad zu unterstützenden Dateien

HttpError Non HTTP response code: java.io.FileNotFoundException Agent000 | Thread Group | Upload | Non HTTP response message: test.xml (The system cannot find the file specified)

ich einige Wege versucht haben, die ich in log gefunden, zum Beispiel: E:\approot\JMeterLoadTest\, aber es gibt trotzdem Fehler.

Wie wird der Pfad zur Datei zu "Unterstützende Dateien" hinzugefügt? Hat jemand ähnliches Problem?

+0

Sind Sie einige Sampler wie Beanshell mit der XML-Datei in Ihren Tests zu lesen? –

+0

Nein. 'Test.xml' ist Beispieldatei zum Hochladen, ich lese diese Datei nicht, sende sie einfach per HTTP-Put-Methode. In JMeter verwende ich HTTP-Request-Sampler, auf der Registerkarte Datei-Upload schreibe ich den Pfad zur Datei in meinem lokalen Laufwerk. Und ich muss den Pfad zur Datei wissen, wenn der Test in der Cloud ausgeführt wird. – kotoj

Antwort

0

Sie können "benutzerdefinierte Variablen" definieren und BeanShell verwenden.

<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> 
    <collectionProp name="Arguments.arguments"> 
     <elementProp name="testURL" elementType="Argument"> 
     <stringProp name="Argument.name">testURL</stringProp> 
     <stringProp name="Argument.value">www.datafilehost.com</stringProp> 
     <stringProp name="Argument.metadata">=</stringProp> 
     </elementProp> 
     <elementProp name="testFile" elementType="Argument"> 
     <stringProp name="Argument.name">testFile</stringProp> 
     <stringProp name="Argument.value">upload.txt</stringProp> 
     <stringProp name="Argument.metadata">=</stringProp> 
     </elementProp> 
     <elementProp name="scriptPath" elementType="Argument"> 
     <stringProp name="Argument.name">scriptPath</stringProp> 
     <stringProp name="Argument.value">${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}</stringProp> 
     <stringProp name="Argument.metadata">=</stringProp> 
     </elementProp> 
    </collectionProp> 
    </Arguments> 

und als Sie Datei von Ihrem Basisverzeichnis geladen werden können:

 <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs"> 
     <collectionProp name="HTTPFileArgs.files"> 
      <elementProp name="${scriptPath}${testFile}" elementType="HTTPFileArg"> 
      <stringProp name="File.path">${scriptPath}${testFile}</stringProp> 
      <stringProp name="File.paramname">upfile</stringProp> 
      <stringProp name="File.mimetype">text/plain</stringProp> 
      </elementProp> 
     </collectionProp> 
     </elementProp> 

Voll Beispiel: https://github.com/aliesbelik/jmx/blob/master/so/2015-04-15_file-upload-download.jmx