2015-06-02 2 views
3

Для тестирования нагрузки я хочу рандомизировать свои тестовые значения, прежде чем запускать тест в jmeter. Для этого я хочу использовать этот сценарий bash:run sh script in jmeter

#! /bin/bash 
cat data.dsv | shuf > randomdata.dsv 

Это должно быть выполнено в jmeter. Я попытался с помощью BeanShell Sampler с помощью этой команды (я использую эту команду, чтобы всегда найти правильный paht в файл независимо от того, на какой машине я хочу, чтобы выполнить его):

execute(${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}random.sh) 

, но я всегда получаю сообщение об ошибке :

ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval In file: inline evaluation of: ``execute(/home/user/git/path/'' Encountered "(/" at line 1, column 8. 

Любые идеи Что делать или есть какая-то лучшая практика Я еще не нашел?

+0

Является ли это 'execute (/ home/user/git/path' фрагмент из скриптов инициализации оболочки вашего компьютера или что-то в этом роде? –

ответ

5

Я предлагаю идти на OS Process Sampler вместо этого, она должна быть проще в использовании, что-то вроде:

OS Process Sampler Example Configuration

В отношении Beanshell подхода, нет необходимости нам __Beanshell функция в пробоотборник Beanshell, кроме того, экземпляр интерпретатора Beanshell создается каждый раз, когда вы вызываете функцию, вызывающую служебную нагрузку. Вы можете просто поместить код в область «Скрипт» Sampler как

import org.apache.jmeter.services.FileServer; 

StringBuilder command = new StringBuilder(); 
FileServer fileServer = FileServer.getFileServer(); 
command.append(fileServer.getBaseDir()); 
command.append(System.getProperty("file.separator")); 
command.append("random.sh"); 
Process process = Runtime.getRuntime().exec(command.toString()); 
int returnValue = process.waitFor(); 
return String.valueOf(returnValue); 

См How to use BeanShell: JMeter's favorite built-in component руководство для получения информации о Beanshell сценариев в JMeter.

+0

Благодарим вас за ваши предложения, но с этими ссылками (я также попробовал пробный процесс OS Process Sampler) Я, к сожалению, не смог завершить то, что хочу. Я действительно не знаю, почему, по-видимому, нет простого примера для этого случая. Я пытаюсь сделать что-то очень странное здесь? – KingKoelsch

+1

Возможно, вам нужно будет предоставить полный путь интерпретатору оболочки и полному путь к вашему скрипту в образце процесса OS, например '/ bin/bash/opt/jmeter/bin/random.sh', он должен сделать трюк для вас. Пожалуйста, дайте мне знать, если я должен обновить ответ с помощью скриншота OS Process Sampler –

+0

Спасибо за внимание! Я был бы очень признателен, если бы вы могли показать мне скриншот OS Process Sampler. – KingKoelsch