Не удалось получить отчет о сети (кбит / с), полученный / отправленный в файле результатов JTL в JMETER - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь запустить тестирование производительности передачи файлов по SFTP с использованием jmeter. Сэмплер Jmeter, который я запускаю на поле linux с помощью команды sh jmeter.sh -n -t SinglePart_MultipleUsersTest.jmx -l SinglePart_MultipleUsersTest.jtl &:

SinglePart_MultipleUsersTest.jmx

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

def jsch = new JSch()
def session = jsch.getSession("user1", "xyz", 4000) 
session.setConfig("StrictHostKeyChecking", "no")
session.setPassword("password")
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("/0002/test/upload/r9a1");
for(i = 0; i<100; i++){
    def f1 = new File("/home/dc-user/Files/test_exact5mb.txt");
    channelSftp.put(new java.io.FileInputStream(f1), f1.getName()+i);
}
session.disconnect()

Создает файл .jtl, который я преобразовать в html результат, используя приведенную ниже команду jmeter -g SinglePart_MultipleUsersTest.jtl -o OUTPUT_FOLDER.

HTML результат не показывает результат СЕТИ (КБ / с), полученный / отправленный в таблице в html.

jmeter.properties для результата используются:

#---------------------------------------------------------------------------
# Results file configuration
#---------------------------------------------------------------------------

# This section helps determine how result data will be saved.
# The commented out values are the defaults.

# legitimate values: xml, csv, db.  Only xml and csv are currently supported.
jmeter.save.saveservice.output_format=csv

# The below properties are true when field should be saved; false otherwise
#
# assertion_results_failure_message only affects CSV output
jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
jmeter.save.saveservice.assertion_results=all
#
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
# Only available with HttpClient4
#jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
#jmeter.save.saveservice.responseHeaders=false
#jmeter.save.saveservice.requestHeaders=false
#jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=false
jmeter.save.saveservice.hostname=false
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=false
jmeter.save.saveservice.idle_time=true

Я использую протокол SFTP для передачи. Использование S SH SFTP протокола в качестве плагина jmeter. Я пропускаю некоторые изменения, чтобы добиться этого. Любая помощь в этом?

1 Ответ

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

Вы не видите количество отправленных байтов, потому что я не вижу, где вы вызываете функцию SampleResult.setBytes () .

Для подсчета байтов, отправленных по каналу SFTP, необходимо реализовать SftpProgressMonitor

Пример кода:

import com.jcraft.jsch.ChannelSftp
import com.jcraft.jsch.JSch
import com.jcraft.jsch.SftpProgressMonitor


class Monitor implements SftpProgressMonitor {

    org.apache.jmeter.samplers.SampleResult sampleResult

    public Monitor(org.apache.jmeter.samplers.SampleResult sampleResult) {
        this.sampleResult = sampleResult
    }

    @Override
    void init(int i, String s, String s1, long l) {
    }

    @Override
    boolean count(long l) {
        sampleResult.setBytes(sampleResult.getBytes() + l)
        return true
    }

    @Override
    void end() {
    }
}

def jsch = new JSch()
def session = jsch.getSession("user1", "xyz", 4000)
session.setConfig("StrictHostKeyChecking", "no")
session.setPassword("password")
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("/0002/test/upload/r9a1");
for (i = 0; i < 100; i++) {
    def f1 = new File("/home/dc-user/Files/test_exact5mb.txt");
    channelSftp.put(new java.io.FileInputStream(f1), f1.getName() + i, new Monitor(SampleResult));
}
session.disconnect()

Дополнительная информация: Нагрузочное тестирование серверов FTP и SFTP с использованием JMeter

...