Bug 52507 - Delete Http User Parameters modifier (deprecated, obsolete)

git-svn-id: https://svn.apache.org/repos/asf/jmeter/trunk@1235574 13f79535-47bb-0310-9956-ffa450edef68

Former-commit-id: 525a39ea9b
This commit is contained in:
Sebastian Bazley 2012-01-25 00:32:57 +00:00
parent 0f1b07ba00
commit 3a7b602b2e
9 changed files with 13 additions and 413 deletions

View File

@ -578,10 +578,6 @@
<boolProp name="path_extension_no_equals">false</boolProp> <boolProp name="path_extension_no_equals">false</boolProp>
</URLRewritingModifier> </URLRewritingModifier>
<hashTree/> <hashTree/>
<UserParameterModifier guiclass="UserParameterModifierGui" testclass="UserParameterModifier" testname="User Parameter Modifier" enabled="true">
<stringProp name="UserParameterModifier.xmluri">users.xml</stringProp>
</UserParameterModifier>
<hashTree/>
</hashTree> </hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Samplers" enabled="true"/> <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Samplers" enabled="true"/>
<hashTree> <hashTree>

View File

@ -385,10 +385,6 @@
<boolProp name="cache_value">true</boolProp> <boolProp name="cache_value">true</boolProp>
</URLRewritingModifier> </URLRewritingModifier>
<hashTree/> <hashTree/>
<UserParameterModifier guiclass="UserParameterModifierGui" testclass="UserParameterModifier" testname="HTTP User Parameter Modifier" enabled="true">
<stringProp name="UserParameterModifier.xmluri">users.xml</stringProp>
</UserParameterModifier>
<hashTree/>
</hashTree> </hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Sampler" enabled="true"> <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Sampler" enabled="true">
<stringProp name="TestPlan.comments">JMS Sub and JMS P-P not available (JavaMail) </stringProp> <stringProp name="TestPlan.comments">JMS Sub and JMS P-P not available (JavaMail) </stringProp>

View File

@ -88,4 +88,9 @@ org.apache.jmeter.protocol.java.control.gui.BSFSamplerGui=org.apache.jmeter.test
org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.filename=filename org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.filename=filename
org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.language=scriptLanguage org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.language=scriptLanguage
org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.parameters=parameters org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.parameters=parameters
org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.query=script org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.query=script
# Obsolete Http user Parameters modifier test element
# Note: ConfigTestElement is the test element associated with ObsoleteGui
org.apache.jmeter.protocol.http.modifier.UserParameterModifier=org.apache.jmeter.config.ConfigTestElement
org.apache.jmeter.protocol.http.modifier.gui.UserParameterModifierGui=org.apache.jmeter.config.gui.ObsoleteGui

View File

@ -1,23 +0,0 @@
<!-- USERS DTD -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!ELEMENT allthreads (thread+)>
<!ELEMENT thread (parameter+)>
<!ELEMENT parameter (paramname,paramvalue) >
<!ELEMENT paramname (#PCDATA) >
<!ELEMENT paramvalue (#PCDATA) >

View File

@ -1,62 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE allthreads SYSTEM "users.dtd">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- all users, uses round robin selection -->
<allthreads>
<!-- unique parameters for each individual thread (ie user) -->
<thread>
<parameter>
<paramname>username</paramname>
<paramvalue>dduck</paramvalue>
</parameter>
<parameter>
<paramname>password</paramname>
<paramvalue>quack</paramvalue>
</parameter>
</thread>
<thread>
<parameter>
<paramname>username</paramname>
<paramvalue>mmouse</paramvalue>
</parameter>
<parameter>
<paramname>password</paramname>
<paramvalue>squeak</paramvalue>
</parameter>
</thread>
<thread>
<parameter>
<paramname>username</paramname>
<paramvalue>bbunney</paramvalue>
</parameter>
<parameter>
<paramname>password</paramname>
<paramvalue>carrot</paramvalue>
</parameter>
<parameter>
<paramname>manager</paramname>
<paramvalue>yes</paramvalue>
</parameter>
</thread>
</allthreads>

View File

@ -1,160 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.jmeter.protocol.http.modifier;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.apache.jmeter.config.Argument;
import org.apache.jmeter.config.ConfigTestElement;
import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.processor.PreProcessor;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testelement.TestListener;
import org.apache.jmeter.testelement.property.PropertyIterator;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
/**
* This modifier will replace any http sampler's url parameter values with
* parameter values defined in a XML file for each simulated user.
* <P>
* For example if userid and password are defined in the XML parameter file for
* each user (ie thread), then simulated multiple user activity can occur.
*
* This test element is deprecated. Test plans should use User Parameters instead.
* @deprecated
*/
@Deprecated
public class UserParameterModifier extends ConfigTestElement implements PreProcessor, Serializable, TestListener {
private static final Logger log = LoggingManager.getLoggerForClass();
private static final long serialVersionUID = 240L;
private static final String XMLURI = "UserParameterModifier.xmluri"; // $NON-NLS-1$
private UserSequence allAvailableUsers;
/**
* Default constructor.
*/
public UserParameterModifier() {
} // end constructor
/**
* Runs before the start of every test. Reload the Sequencer with the latest
* parameter data for each user
*/
public void testStarted() {
// try to populate allUsers, if fail, leave as any empty set
List<Map<String, String>> allUsers = new LinkedList<Map<String, String>>();
try {
UserParameterXMLParser readXMLParameters = new UserParameterXMLParser();
allUsers = readXMLParameters.getXMLParameters(getXmlUri());
} catch (Exception e) {
// do nothing, now object allUsers contains an empty set
log.error("Unable to read parameters from xml file " + getXmlUri());
log.error("No unique values for http requests will be substituted for " + "each thread", e);
}
allAvailableUsers = new UserSequence(allUsers);
}
public void testEnded() {
}
public void testStarted(String host) {
testStarted();
}
public void testEnded(String host) {
}
/*
* ------------------------------------------------------------------------
* Methods implemented from interface org.apache.jmeter.config.Modifier
* ------------------------------------------------------------------------
*/
/**
* Modifies an entry object to replace the value of any url parameter that
* matches a parameter name in the XML file.
*
*/
public void process() {
Sampler entry = getThreadContext().getCurrentSampler();
if (!(entry instanceof HTTPSamplerBase)) {
return;
}
HTTPSamplerBase config = (HTTPSamplerBase) entry;
Map<String, String> currentUser = allAvailableUsers.getNextUserMods();
PropertyIterator iter = config.getArguments().iterator();
while (iter.hasNext()) {
Argument arg = (Argument) iter.next().getObjectValue();
// if parameter name exists in http request
// then change its value
// (Note: each jmeter thread (ie user) gets to have unique values)
if (currentUser.containsKey(arg.getName())) {
arg.setValue(currentUser.get(arg.getName()));
}
}
}
/*
* ------------------------------------------------------------------------
* Methods (used by UserParameterModifierGui to get/set the name of XML
* parameter file)
* ------------------------------------------------------------------------
*/
/**
* Return the current XML file name to be read to obtain the parameter data
* for all users
*
* @return the name of the XML file containing parameter data for each user
*/
public String getXmlUri() {
return this.getPropertyAsString(XMLURI);
}
/**
* From the GUI screen, set file name of XML to read
*
* @param xmlURI
* the name of the XML file containing the HTTP name value pair
* parameters per user
*/
public void setXmlUri(String xmlURI) {
setProperty(XMLURI, xmlURI);
}
/** {@inheritDoc} */
public void testIterationStart(LoopIterationEvent event) {
}
/** {@inheritDoc} */
@Override
public Object clone() {
UserParameterModifier clone = (UserParameterModifier) super.clone();
clone.allAvailableUsers = allAvailableUsers;
return clone;
}
}

View File

@ -1,140 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.jmeter.protocol.http.modifier.gui;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import org.apache.jmeter.processor.gui.AbstractPreProcessorGui;
import org.apache.jmeter.protocol.http.modifier.UserParameterModifier;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JMeterUtils;
/**
* A swing panel to allow UI with the UserParameterModifier class.
*
* This test element is deprecated. Test plans should use User Parameters instead.
* @deprecated
*/
@Deprecated
public class UserParameterModifierGui extends AbstractPreProcessorGui {
private static final long serialVersionUID = 240L;
// -------------------------------------------
// Constants and Data Members
// -------------------------------------------
private JTextField fileNameField;
// -------------------------------------------
// Constructors
// -------------------------------------------
public UserParameterModifierGui() {
super();
init();
}
public TestElement createTestElement() {
UserParameterModifier mod = new UserParameterModifier();
modifyTestElement(mod);
return mod;
}
/**
* Modifies a given TestElement to mirror the data in the gui components.
*
* @see org.apache.jmeter.gui.JMeterGUIComponent#modifyTestElement(TestElement)
*/
public void modifyTestElement(TestElement mod) {
this.configureTestElement(mod);
((UserParameterModifier) mod).setXmlUri(fileNameField.getText());
}
/**
* Implements JMeterGUIComponent.clearGui
*/
@Override
public void clearGui() {
super.clearGui();
fileNameField.setText("users.xml"); //$NON-NLS-1$
}
public void updateGui() {
}
public String getLabelResource() {
return "http_user_parameter_modifier"; // $NON-NLS-1$
}
@Override
public void configure(TestElement el) {
super.configure(el);
fileNameField.setText(((UserParameterModifier) el).getXmlUri());
}
/*-------------------------------------------------------------------------
* Methods Private
*------------------------------------------------------------------------*/
private void init() {
setLayout(new BorderLayout(0, 5));
setBorder(makeBorder());
add(makeTitlePanel(), BorderLayout.NORTH);
JPanel mainPanel = new JPanel(new BorderLayout(0, 5));
mainPanel.add(getFileLocator(), BorderLayout.NORTH);
// We want the help text to look like a label, but wrap like a text area
JTextArea helpText = new JTextArea(JMeterUtils.getResString("user_param_mod_help_note")); // $NON-NLS-1$
helpText.setLineWrap(true);
helpText.setWrapStyleWord(true);
helpText.setBackground(getBackground());
helpText.setEditable(false);
JLabel dummyLabel = new JLabel();
helpText.setFont(dummyLabel.getFont());
helpText.setForeground(dummyLabel.getForeground());
JScrollPane scroller = new JScrollPane(helpText);
scroller.setBorder(BorderFactory.createEmptyBorder());
mainPanel.add(scroller, BorderLayout.CENTER);
add(mainPanel, BorderLayout.CENTER);
}
private JPanel getFileLocator() {
fileNameField = new JTextField("users.xml", 15);
JLabel label = new JLabel(JMeterUtils.getResString("filename")); // $NON-NLS-1$
label.setLabelFor(fileNameField);
JPanel fileLocator = new JPanel(new BorderLayout());
fileLocator.add(label, BorderLayout.WEST);
fileLocator.add(fileNameField, BorderLayout.CENTER);
return fileLocator;
}
@Override
public Dimension getPreferredSize() {
return getMinimumSize();
}
}

View File

@ -248,9 +248,14 @@ TCP Sampler handles SocketTimeoutException, SocketException and InterruptedIOExc
these occurs, Sampler is marked as failed. these occurs, Sampler is marked as failed.
</p> </p>
<p> <p>
Sample Sender implementations know resolve their configuration on Client side since 2.6. Sample Sender implementations now resolve their configuration on Client side since 2.6.
This behaviour can be changed with property sample_sender_client_configured (set it to false). This behaviour can be changed with property sample_sender_client_configured (set it to false).
</p> </p>
<p>
The HTTP User Parameter Modifier test element has been removed; it has been deprecated for a long time.
</p>
<!-- =================== Bug fixes =================== --> <!-- =================== Bug fixes =================== -->
<h2>Bug fixes</h2> <h2>Bug fixes</h2>
@ -276,6 +281,7 @@ This behaviour can be changed with property sample_sender_client_configured (set
<li>Bug 52409 - HttpSamplerBase#errorResult modifies sampleResult passed as parameter; <li>Bug 52409 - HttpSamplerBase#errorResult modifies sampleResult passed as parameter;
fix code which assumes that a new instance is created (i.e. when adding a sub-sample) fix code which assumes that a new instance is created (i.e. when adding a sub-sample)
</li> </li>
<li>Bug 52507 - Delete Http User Parameters modifier (deprecated, obsolete)</li>
</ul> </ul>
<h3>Other Samplers</h3> <h3>Other Samplers</h3>

View File

@ -4354,24 +4354,6 @@ user_4, etc.</p></description>
</properties> </properties>
</component> </component>
<component name="HTTP User Parameter Modifier" index="&sect-num;.7.4" useinstead="User Parameters" width="514" height="251" screenshot="user_param_modifier.gif">
<description>
<p>See also the <complink name="CSV Data Set Config"/> element, which is more suitable for large numbers of parameters</p>
<p>The User Parameter Modifier uses an XML file get values for HTTP arguments. Any
HTTP Request that this modifier modifies will be checked for the existence of the specified
arguments. If found, the values for those arguments will be replaced by the values found in the
xml file. The XML file can have multiple sets of the same values. This modifier will iterate
through these values in a round-robin style, thus each request will get a different set of values
until the last set of values is reached, at which point it will begin again at the first set.</p>
</description>
<properties>
<property name="Name" required="No">Descriptive name given to this element in the test tree.</property>
<property name="File Name" required="Yes">Name of the XML file in JMeter's /bin directory
that holds the value sets.</property>
</properties>
</component>
<component name="User Parameters" index="&sect-num;.7.5" width="638" height="274" screenshot="user_params.png"> <component name="User Parameters" index="&sect-num;.7.5" width="638" height="274" screenshot="user_params.png">
<description><p>Allows the user to specify values for User Variables specific to individual threads.</p> <description><p>Allows the user to specify values for User Variables specific to individual threads.</p>
<p>User Variables can also be specified in the Test Plan but not specific to individual threads. This panel allows <p>User Variables can also be specified in the Test Plan but not specific to individual threads. This panel allows