2015-10-06 2 views
0

Сценарий: 5 рабов, 1 мастерская среда JMeter. Проект Jmeter в основном собирает URL-адреса из списка, а пробоотборник JSR223 имеет код веб-драйвера для вызова URL-адреса и измерения общего времени загрузки каждого URL-адреса.Как передать JMeter JSR223 результат функции сэмплера для Master в распределенном тестировании?

Описание проблемы: при выполнении одного пользовательского теста я могу легко вывести значение моей функции в пробоотборнике JSR223 в файл csv и получить результаты. Тем не менее, при выполнении одного и того же теста в распределенной среде каждый узел будет записывать в свой собственный файл csv и будет больно суммировать результаты оттуда. Любая помощь?

Кроме того, я не могу зависеть от агрегатного вычисления в Jmeter master, так как это будет общее время для потока, тогда как моя функция вычисляет точное время рендеринга, и именно это меня интересует и записывает в csv.

< некоторый код> в то время как (javaScriptDriver.executeScript ("возвращение window.xx_NumRequests();", новый объект [0])> 0) {

Thread.sleep(100); 
} 

var endTime = (new Date()).getTime(); 
var millisecondsLoading = endTime - startTime; 
System.out.println(millisecondsLoading); 
f = new FileOutputStream("c:\\Jmeter\\result.csv", true); 
p = new PrintStream(f); 
p.println(report); 
p.println(millisecondsLoading); 
p.close(); 
f.close(); 
driver.quit(); 

Любые идеи, о том, как я могу достичь этот результат агрегации при запуске нескольких подчиненных в моей среде?

Спасибо.

ответ

0

Я бы рекомендовал следующее:

  1. В WebDriver Sampler определяют переменную JMeter, то есть millisecondsLoading как:

    var vars = org.apache.jmeter.threads.JMeterContextService.getContext().getVariables() 
    vars.put('millisecondsLoading',millisecondsLoading) 
    
  2. На всех ведомых машинах добавьте следующую строку в пользователя. свойства файл

    sample_variables=millisecondsLoading 
    

В следующем запуске двигателя JMeter он добавит новый столбец в файл .jtl, который будет содержать значение переменной ${millisecondsLoading}, на главном сервере завершения будет собирать файлы результатов из ведомых устройств, и вы получите необходимый общий результат.

Ссылки: