Thread Group
-- Sampler
-- BeanShell Listener
import java.net.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.*;
import org.xml.sax.InputSource;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
// получение параметров
has_host = vars.get ("has_host");
<skip>
// SLEEP 5 sec
// Thread.sleep(5000);
//Запрос по http
try {
URL url = new URL("http://"+has_host+":"+has_port+"/"+uri);
URLConnection conn = url.openConnection ();
String result = null;
// Construct data
StringBuffer data = new StringBuffer();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
result = sb.toString();
<skip>
// Парсинг ответа
XPath xpath = XPathFactory.newInstance().newXPath();
InputStream is = new ByteArrayInputStream(result.getBytes());
InputSource inputSource = new InputSource(is);
String DATETIME = xpath.evaluate( "//tram-pam-pam/TIMESTAMP", inputSource);
<skip>
// Запись в файл
FileWriter fw = new FileWriter(admin_server_status_log, true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
pw.println(DATETIME+";");
<skip>
pw.close();
} catch (Exception e) {
<skip>
}
Данный Listener необходимо запускать раз в 5 секунд.
Кто-нибудь знает, можно ли поставить на паузу конкретный тред Listener?
Если выставить Thread.sleep(5000), то на паузу ставится и тред, который отвечает за выполнения других запросов (Sampler) в группе, а они должны выполняться непрерывно.
Можно ли решить данную задачу в рамках BeanShell или уже пора писать плагин для Jmeter?




