Search in sources :

Example 76 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())) {
                writeItem(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)

Example 77 with JMeterProperty

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

the class TestElementConverter method marshal.

/** {@inheritDoc} */
@Override
public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingContext context) {
    TestElement el = (TestElement) arg0;
    ConversionHelp.saveSpecialProperties(el, writer);
    PropertyIterator iter = el.propertyIterator();
    while (iter.hasNext()) {
        JMeterProperty jmp = iter.next();
        // Skip special properties if required
        if (!ConversionHelp.isSpecialProperty(jmp.getName())) {
            // Don't save empty comments - except for the TestPlan (to maintain compatibility)
            if (!(TestElement.COMMENTS.equals(jmp.getName()) && jmp.getStringValue().length() == 0 && !el.getClass().equals(TestPlan.class))) {
                writeItem(jmp, context, writer);
            }
        }
    }
}
Also used : JMeterProperty(org.apache.jmeter.testelement.property.JMeterProperty) PropertyIterator(org.apache.jmeter.testelement.property.PropertyIterator) TestElement(org.apache.jmeter.testelement.TestElement)

Example 78 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).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) readItem(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 (InstantiationException | IllegalAccessException 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 79 with JMeterProperty

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

the class AbstractTestElement method recoverRunningVersion.

/**
     * {@inheritDoc}
     */
@Override
public void recoverRunningVersion() {
    Iterator<Map.Entry<String, JMeterProperty>> iter = propMap.entrySet().iterator();
    while (iter.hasNext()) {
        Map.Entry<String, JMeterProperty> entry = iter.next();
        JMeterProperty prop = entry.getValue();
        if (isTemporary(prop)) {
            iter.remove();
            clearTemporary(prop);
        } else {
            prop.recoverRunningVersion(this);
        }
    }
    emptyTemporary();
}
Also used : JMeterProperty(org.apache.jmeter.testelement.property.JMeterProperty) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map)

Example 80 with JMeterProperty

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

the class AbstractTestElement method logProperties.

/**
     * Log the properties of the test element
     *
     * @see TestElement#setProperty(JMeterProperty)
     */
protected void logProperties() {
    if (log.isDebugEnabled()) {
        PropertyIterator iter = propertyIterator();
        while (iter.hasNext()) {
            JMeterProperty prop = iter.next();
            log.debug("Property {} is temp? {} and is a {}", prop.getName(), isTemporary(prop), prop.getObjectValue());
        }
    }
}
Also used : JMeterProperty(org.apache.jmeter.testelement.property.JMeterProperty) PropertyIterator(org.apache.jmeter.testelement.property.PropertyIterator)

Aggregations

JMeterProperty (org.apache.jmeter.testelement.property.JMeterProperty)87 StringProperty (org.apache.jmeter.testelement.property.StringProperty)23 Test (org.junit.Test)23 PropertyIterator (org.apache.jmeter.testelement.property.PropertyIterator)13 CollectionProperty (org.apache.jmeter.testelement.property.CollectionProperty)12 Argument (org.apache.jmeter.config.Argument)11 ArrayList (java.util.ArrayList)9 HTTPArgument (org.apache.jmeter.protocol.http.util.HTTPArgument)8 File (java.io.File)7 Arguments (org.apache.jmeter.config.Arguments)7 HTTPFileArg (org.apache.jmeter.protocol.http.util.HTTPFileArg)6 TestElement (org.apache.jmeter.testelement.TestElement)6 ConfigTestElement (org.apache.jmeter.config.ConfigTestElement)5 URL (java.net.URL)4 TestElementProperty (org.apache.jmeter.testelement.property.TestElementProperty)4 ByteArrayOutputStream (java.io.ByteArrayOutputStream)3 HashMap (java.util.HashMap)3 Sampler (org.apache.jmeter.samplers.Sampler)3 TestPlan (org.apache.jmeter.testelement.TestPlan)3 NullProperty (org.apache.jmeter.testelement.property.NullProperty)3