Search in sources :

Example 91 with JMeterProperty

use of org.apache.jmeter.testelement.property.JMeterProperty in project jmeter by apache.

the class LoopController method getLoops.

public int getLoops() {
    // or when nbLoops is equal to special value INFINITE_LOOP_COUNT
    if (// No evaluated yet
    nbLoops == null || // Last iteration led to nbLoops == 0,
    nbLoops == 0 || // it leads to no further evaluations if we don't evaluate, see BUG 56276
    nbLoops == // Number of iteration is set to infinite
    INFINITE_LOOP_COUNT) {
        try {
            JMeterProperty prop = getProperty(LOOPS);
            nbLoops = Integer.valueOf(prop.getStringValue());
        } catch (NumberFormatException e) {
            nbLoops = 0;
        }
    }
    return nbLoops;
}
Also used : JMeterProperty(org.apache.jmeter.testelement.property.JMeterProperty)

Example 92 with JMeterProperty

use of org.apache.jmeter.testelement.property.JMeterProperty in project jmeter by apache.

the class ReplaceStringWithFunctions method transformValue.

@Override
public JMeterProperty transformValue(JMeterProperty prop) throws InvalidVariableException {
    JMeterProperty newValue = prop;
    getMasterFunction().clear();
    getMasterFunction().setParameters(prop.getStringValue());
    if (getMasterFunction().hasFunction()) {
        newValue = new FunctionProperty(prop.getName(), getMasterFunction().getFunction());
    }
    return newValue;
}
Also used : JMeterProperty(org.apache.jmeter.testelement.property.JMeterProperty) FunctionProperty(org.apache.jmeter.testelement.property.FunctionProperty)

Example 93 with JMeterProperty

use of org.apache.jmeter.testelement.property.JMeterProperty in project jmeter by apache.

the class MultiPropertyConverter method marshal.

/**
 * {@inheritDoc}
 */
@Override
public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingContext context) {
    MultiProperty prop = (MultiProperty) arg0;
    writer.addAttribute(ConversionHelp.ATT_NAME, ConversionHelp.encode(prop.getName()));
    for (JMeterProperty jMeterProperty : prop) {
        writeCompleteItem(jMeterProperty, context, writer);
    }
}
Also used : JMeterProperty(org.apache.jmeter.testelement.property.JMeterProperty) MultiProperty(org.apache.jmeter.testelement.property.MultiProperty)

Example 94 with JMeterProperty

use of org.apache.jmeter.testelement.property.JMeterProperty in project jmeter by apache.

the class TestElementPropertyConverter method unmarshal.

/*
     * TODO - convert to work more like upgrade.properties/NameUpdater.java
     *
     * Special processing is carried out for the Header Class The String
     * property TestElement.name is converted to Header.name for example:
     * <elementProp name="User-Agent"
     * elementType="org.apache.jmeter.protocol.http.control.Header"> <stringProp
     * name="Header.value">Mozilla%2F4.0+%28compatible%3B+MSIE+5.5%3B+Windows+98%29</stringProp>
     * <stringProp name="TestElement.name">User-Agent</stringProp>
     * </elementProp> becomes <elementProp name="User-Agent"
     * elementType="org.apache.jmeter.protocol.http.control.Header"> <stringProp
     * name="Header.value">Mozilla%2F4.0+%28compatible%3B+MSIE+5.5%3B+Windows+98%29</stringProp>
     * <stringProp name="Header.name">User-Agent</stringProp> </elementProp>
     */
/**
 * {@inheritDoc}
 */
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
    try {
        TestElementProperty prop = (TestElementProperty) createCollection(context.getRequiredType());
        prop.setName(ConversionHelp.decode(reader.getAttribute(ConversionHelp.ATT_NAME)));
        String element = reader.getAttribute(ConversionHelp.ATT_ELEMENT_TYPE);
        boolean isHeader = HEADER_CLASSNAME.equals(element);
        // Always decode
        prop.setObjectValue(mapper().realClass(element).getDeclaredConstructor().newInstance());
        TestElement te = (TestElement) prop.getObjectValue();
        // No need to check version, just process the attributes if present
        ConversionHelp.restoreSpecialProperties(te, reader);
        while (reader.hasMoreChildren()) {
            reader.moveDown();
            JMeterProperty subProp = (JMeterProperty) readBareItem(reader, context, prop);
            if (subProp != null) {
                // could be null if it has been deleted via NameUpdater
                if (isHeader) {
                    String name = subProp.getName();
                    if (TestElement.NAME.equals(name)) {
                        // $NON-NLS-1$
                        subProp.setName("Header.name");
                    // Must be same as Header.HNAME - but that is built
                    // later
                    }
                }
                prop.addProperty(subProp);
            }
            reader.moveUp();
        }
        return prop;
    } catch (IllegalArgumentException | ReflectiveOperationException | SecurityException e) {
        log.error("Couldn't unmarshall TestElementProperty", e);
        // $NON-NLS-1$
        return new TestElementProperty("ERROR", new ConfigTestElement());
    }
}
Also used : JMeterProperty(org.apache.jmeter.testelement.property.JMeterProperty) TestElementProperty(org.apache.jmeter.testelement.property.TestElementProperty) ConfigTestElement(org.apache.jmeter.config.ConfigTestElement) TestElement(org.apache.jmeter.testelement.TestElement) ConfigTestElement(org.apache.jmeter.config.ConfigTestElement)

Example 95 with JMeterProperty

use of org.apache.jmeter.testelement.property.JMeterProperty in project jmeter by apache.

the class TestElementPropertyConverter method marshal.

/**
 * {@inheritDoc}
 */
@Override
public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingContext context) {
    TestElementProperty prop = (TestElementProperty) arg0;
    writer.addAttribute(ConversionHelp.ATT_NAME, ConversionHelp.encode(prop.getName()));
    Class<?> clazz = prop.getObjectValue().getClass();
    writer.addAttribute(ConversionHelp.ATT_ELEMENT_TYPE, mapper().serializedClass(clazz));
    TestElement te = (TestElement) prop.getObjectValue();
    ConversionHelp.saveSpecialProperties(te, writer);
    for (JMeterProperty jmp : prop) {
        // Skip special properties if required
        if (!ConversionHelp.isSpecialProperty(jmp.getName())) {
            // Don't save empty comments
            if (!(TestElement.COMMENTS.equals(jmp.getName()) && jmp.getStringValue().isEmpty())) {
                writeCompleteItem(jmp, context, writer);
            }
        }
    }
// TODO clazz is probably always the same as testclass
}
Also used : JMeterProperty(org.apache.jmeter.testelement.property.JMeterProperty) TestElementProperty(org.apache.jmeter.testelement.property.TestElementProperty) ConfigTestElement(org.apache.jmeter.config.ConfigTestElement) TestElement(org.apache.jmeter.testelement.TestElement)

Aggregations

JMeterProperty (org.apache.jmeter.testelement.property.JMeterProperty)126 CollectionProperty (org.apache.jmeter.testelement.property.CollectionProperty)30 NullProperty (org.apache.jmeter.testelement.property.NullProperty)26 Test (org.junit.Test)26 StringProperty (org.apache.jmeter.testelement.property.StringProperty)24 ArrayList (java.util.ArrayList)17 Argument (org.apache.jmeter.config.Argument)13 PropertyIterator (org.apache.jmeter.testelement.property.PropertyIterator)13 Arguments (org.apache.jmeter.config.Arguments)11 File (java.io.File)9 HTTPArgument (org.apache.jmeter.protocol.http.util.HTTPArgument)9 HTTPFileArg (org.apache.jmeter.protocol.http.util.HTTPFileArg)8 TestElement (org.apache.jmeter.testelement.TestElement)8 ConfigTestElement (org.apache.jmeter.config.ConfigTestElement)6 Test (org.junit.jupiter.api.Test)6 IOException (java.io.IOException)5 List (java.util.List)5 TestElementProperty (org.apache.jmeter.testelement.property.TestElementProperty)5 ByteArrayOutputStream (java.io.ByteArrayOutputStream)4 MalformedURLException (java.net.MalformedURLException)4