JMeter - выполнить команду через telnet с использованием beanshell - PullRequest
3 голосов
/ 06 декабря 2011

Я пытаюсь написать сэмплер jmeter в beanshell для выполнения команды интерфейса memcached telnet, в частности flush_all. Это необходимо для очистки кэша после каждого теста, поскольку это приводит к быстрому сбою тестов.

У меня есть следующий код:

import org.apache.commons.net.telnet.TelnetClient;

TelnetClient telnet = new TelnetClient();
telnet.connect( "memcachedServer.dev", 11211 );

//InputStream in = telnet.getInputStream(); 
PrintStream out = new PrintStream( telnet.getOutputStream() );

out.println("flush_all\r");
out.println("quit\r");

telnet.disconnect();

Кажется, что выполняется без проблем, но кэш не очищается. Я пробовал код с и без "\ r", но ни один из способов не работает.

Кто-нибудь знает, что не так?

Спасибо, Адриан

Ответы [ 2 ]

1 голос
/ 13 февраля 2016

Любая причина не использовать TCP Sampler ?

  1. Добавьте TCP Sampler в свой план тестирования (где вам нужно очистить кеш)
  2. Настройка хоста и порта
  3. Поместите следующие строки в область «Текст для отправки»:

    flush_all${CR}${LF}
    quit${CR}${LF}
    
  4. Добавить Beanshell PreProcessor как дочерний элемент TCP Sampler
  5. Поместите следующий код в область «Сценарий» препроцессора:

    vars.put("LF",URLDecoder.decode("%0D", "ASCII"));
    vars.put("CR",URLDecoder.decode("%0A", "ASCII")); 
    

См. Как отправить управляющие символы с помощью JMeter TCP Sampler? руководство для получения более подробной информации.

0 голосов
/ 10 февраля 2016

создание сценариев / эмуляция терминала может быть проблематичным.Ваш код выполняется и печатает команду "flush_all", но кажется, что команда enter / newline не обрабатывается.

Есть 2 варианта, которые могут работать для вас

Вотстатья о том, как отправить возврат каретки по телнету.

Как отправить возврат каретки через telnet?

Или, возможно, вам повезет больше с плагином jmeter SSH, который, я думаю, встроен в дополнительные библиотекино если нет, я могу отправить вам ссылку.это позволит вам войти в систему и выполнить команду в данном каталоге, это просто и довольно чисто

...