Почему узел сэмплера возвращается на NULL? Jmeter APIApache

Ответить Пред. темаСлед. тема
Anonymous
 Почему узел сэмплера возвращается на NULL? Jmeter API

Сообщение Anonymous »

Я пытаюсь добавить экстрактора режима в каждый образец, тип контента которого равен тексту/HTML, но мой образец всегда возвращает NULL. Кажется, что тело ответа в порядке и возвращает правильный ответ. Я исследовал ранее, и кажется, что какое -то обновление Jmeter сломало код. Есть советы о том, как я могу снова работать этот код?package org.zkoss.testing.jmeter;

import org.apache.jmeter.config.Argument;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.exceptions.IllegalUserActionException;
import org.apache.jmeter.extractor.RegexExtractor;
import org.apache.jmeter.extractor.gui.RegexExtractorGui;
import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.tree.JMeterTreeModel;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
import org.apache.jmeter.protocol.http.proxy.ProxyControl;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.testelement.TestElement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ZkProxyControl extends ProxyControl {
private static final long serialVersionUID = 2851218983765186150L;

private static String AU_PATH = "ZkProxyControlGui.auPath";

private static final int DEFAULT_PORT = 9999;
private static final String DEFAULT_AU_PATH = "/zkau";
private static final String DEFAULT_EXCLUDED_PATTERN = ".*/zkau/web/.*";
private static final Logger LOG = LoggerFactory.getLogger(ZkProxyControl.class);

public ZkProxyControl() {
super();
this.setPort(DEFAULT_PORT);
this.setAuPath(DEFAULT_AU_PATH);
this.addExcludedPattern(DEFAULT_EXCLUDED_PATTERN);
}

public synchronized void deliverSampler(HTTPSamplerBase sampler,
TestElement[] subConfigs, SampleResult result) {

super.deliverSampler(sampler, subConfigs, result);

final String auPath = getAuPath();

if (result.getContentType().startsWith("text/html")) {// zul page

JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel();
JMeterTreeNode newNode = treeModel.getNodeOf(sampler);
LOG.warn("Sampler node: " + newNode);
try {
//add a RegexExtractor for retrieve the ZK dtid
RegexExtractor extr = new RegexExtractor();
extr.setProperty(TestElement.GUI_CLASS, RegexExtractorGui.class.getName());
extr.setName("Regular Expression Extractor");
extr.setRefName("dtid");
extr.setRegex("dt:\\'(.+?)\\',cu");
extr.setTemplate("$1$");
extr.setDefaultValue("not found");
treeModel.addComponent(extr, newNode);
} catch (IllegalUserActionException e) {
e.printStackTrace();
}
} else if (!auPath.isEmpty()) { // zkau request

String path = sampler.getPath();
int i = path.indexOf("jsessionid");
if (i > -1)
path = path.substring(0, i - 1);

if (path.endsWith(auPath)) {
Arguments args = sampler.getArguments();
Argument arg = args.getArgument(0);
if ("dtid".equals(arg.getName())) {//replace dtid value to a EL variable.
arg.setValue("${dtid}");
}
}
}
}

public String getAuPath() {
return this.getPropertyAsString(AU_PATH);
}

public void setAuPath(String auPath) {
this.setProperty(AU_PATH, auPath, "");
}
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... jmeter-api
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Apache»