首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于jMeter的SFTP服务器性能测试

基于jMeter的SFTP服务器性能测试
EN

Stack Overflow用户
提问于 2020-03-16 13:20:44
回答 1查看 2.2K关注 0票数 0

我需要在SFTP服务器上对某些上传/下载场景进行测试。为此,我使用apache JMeter插件SSH协议支持。我可以测试一个单一的文件上传一个用户。我很难执行这样的场景,如单用户多文件上传或多个用户使用此插件上传多个文件。有任何想法,如果有任何其他插件,以实现这一或任何替代方式?

自定义取样码

代码语言:javascript
复制
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()

在apache服务器的GUI模式下工作很好,但是在linux盒或无头方式上运行时,会出现以下错误。

代码语言:javascript
复制
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

对如何解决这个问题有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-16 13:31:50

您不能通过单个SFTP连接一次传递多个文件,需要排队等待多个文件。

但是,您可以通过单个用户或与不同用户打开多个连接,只需确保正确地参数化凭据和文件名/位置。

例如:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60706788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档