Тестирование производительности SFTP-сервера с использованием jMeter - PullRequest
0 голосов
/ 16 марта 2020

Мне нужно выполнить тестирование определенного сценария ios загрузки / выгрузки на SFTP-сервер. Для этого я использую поддержку протокола apache JMeter S SH. Я могу проверить загрузку одного файла для одного пользователя. Я изо всех сил пытаюсь выполнить сценарий ios, такой как Многократная загрузка файла для одного пользователя ИЛИ Многократная загрузка файла для нескольких пользователей с помощью этого плагина. Любая идея, если есть какой-либо другой плагин для достижения этого или любого другого пути?

Пользовательский код сэмплера

import com.jcraft.jsch.*;
import java.io.*;

def jsch = new JSch()
def session = jsch.getSession(${__property(loginUserName)}, ${__property(hostURL)}, ${__property(port)}) 
session.setConfig("StrictHostKeyChecking", "no")
session.setPassword(${__property(loginUserPassword)})
def sftpSession = session.connect()
def channel = session.openChannel("sftp")
channel.connect();
def channelSftp = (ChannelSftp)channel;
log.info("SFTP Connection with host is acquired" + channelSftp)
channelSftp.cd(${__property(sftpDestinationFolder)});
for(i = 0; i <100; i++){
    def f1 = new File(${__property(inputFileLocationOfBigFile)});
    channelSftp.put(new java.io.FileInputStream(f1), f1.getName()+i);
}
session.disconnect()

Работает нормально на GUI режиме сервера apache, но когда работает на поле linux или без заголовка, это дает следующую ошибку.

2020-03-18 03:25:28,918 ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler, message: javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 4: unable to resolve class JSch 
 @ line 4, column 12.
   def jsch = new JSch()
              ^

Script1.groovy: 12: unable to resolve class ChannelSftp 
 @ line 12, column 19.
   def channelSftp = (ChannelSftp)channel;
                     ^

2 errors

javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 4: unable to resolve class JSch 
 @ line 4, column 12.
   def jsch = new JSch()
              ^

Script1.groovy: 12: unable to resolve class ChannelSftp 
 @ line 12, column 19.
   def channelSftp = (ChannelSftp)channel;
                     ^

2 errors

    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.compile(GroovyScriptEngineImpl.java:183) ~[groovy-all-2.4.13.jar:2.4.13]
    at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:215) ~[ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.protocol.java.sampler.JSR223Sampler.sample(JSR223Sampler.java:69) [ApacheJMeter_java.jar:4.0 r1823414]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:490) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:416) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:250) [ApacheJMeter_core.jar:4.0 r1823414]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_241]
Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 4: unable to resolve class JSch 
 @ line 4, column 12.
   def jsch = new JSch()
              ^

Script1.groovy: 12: unable to resolve class ChannelSftp 
 @ line 12, column 19.
   def channelSftp = (ChannelSftp)channel;
                     ^

2 errors

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310) ~[groovy-all-2.4.13.jar:2.4.13]
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:958) ~[groovy-all-2.4.13.jar:2.4.13]
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:605) ~[groovy-all-2.4.13.jar:2.4.13]
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:554) ~[groovy-all-2.4.13.jar:2.4.13]
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298) ~[groovy-all-2.4.13.jar:2.4.13]
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268) ~[groovy-all-2.4.13.jar:2.4.13]
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:254) ~[groovy-all-2.4.13.jar:2.4.13]
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:211) ~[groovy-all-2.4.13.jar:2.4.13]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.getScriptClass(GroovyScriptEngineImpl.java:331) ~[groovy-all-2.4.13.jar:2.4.13]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.compile(GroovyScriptEngineImpl.java:181) ~[groovy-all-2.4.13.jar:2.4.13]
    ... 6 more
2020-03-18 03:25:28,927 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1
2020-03-18 03:25:28,927 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1

Любая помощь, как решить эту проблему?

1 Ответ

0 голосов
/ 16 марта 2020

Вы не можете передавать более одного файла одновременно по одному соединению SFTP, несколько файлов должны быть поставлены в очередь.

Однако вы можете открыть несколько подключений одним пользователем или с разными пользователями, просто убедитесь, что вы правильно параметрировали учетные данные и имена / местоположения файлов.

Например:

...