You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2017/05/25 20:39:06 UTC

svn commit: r1796194 - in /jmeter/trunk: src/core/org/apache/jmeter/functions/gui/FunctionHelper.java src/core/org/apache/jmeter/resources/messages.properties src/core/org/apache/jmeter/resources/messages_fr.properties xdocs/changes.xml

Author: pmouawad
Date: Thu May 25 20:39:05 2017
New Revision: 1796194

URL: http://svn.apache.org/viewvc?rev=1796194&view=rev
Log:
Bug 61126 - Function Helper Dialog : Add a field that shows execution result
Based on Maxime Chassagneux PR 
This closes #292
Bugzilla Id: 61126

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/functions/gui/FunctionHelper.java
    jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
    jmeter/trunk/xdocs/changes.xml

Modified: jmeter/trunk/src/core/org/apache/jmeter/functions/gui/FunctionHelper.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/functions/gui/FunctionHelper.java?rev=1796194&r1=1796193&r2=1796194&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/functions/gui/FunctionHelper.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/functions/gui/FunctionHelper.java Thu May 25 20:39:05 2017
@@ -32,6 +32,7 @@ import javax.swing.JButton;
 import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JFrame;
+import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JRootPane;
 import javax.swing.event.ChangeEvent;
@@ -45,6 +46,9 @@ import org.apache.jmeter.functions.Funct
 import org.apache.jmeter.gui.action.ActionRouter;
 import org.apache.jmeter.gui.action.Help;
 import org.apache.jmeter.gui.action.KeyStrokes;
+import org.apache.jmeter.gui.util.JSyntaxTextArea;
+import org.apache.jmeter.gui.util.JTextScrollPane;
+import org.apache.jmeter.gui.util.VerticalPanel;
 import org.apache.jmeter.testelement.property.PropertyIterator;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jmeter.util.LocaleChangeEvent;
@@ -61,6 +65,8 @@ public class FunctionHelper extends JDia
     private ArgumentsPanel parameterPanel;
 
     private JLabeledTextField cutPasteFunction;
+    
+    private JSyntaxTextArea resultTextArea;
 
     public FunctionHelper() {
         super((JFrame) null, JMeterUtils.getResString("function_helper_title"), false); //$NON-NLS-1$
@@ -100,14 +106,23 @@ public class FunctionHelper extends JDia
         comboPanel.add(helpButton);
         this.getContentPane().add(comboPanel, BorderLayout.NORTH);
         this.getContentPane().add(parameterPanel, BorderLayout.CENTER);
-        JPanel resultsPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
+        JPanel resultsPanel = new VerticalPanel();
+        JPanel generatePanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
+        JPanel displayPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
         cutPasteFunction = new JLabeledTextField(JMeterUtils.getResString("cut_paste_function"), 35); //$NON-NLS-1$
-        resultsPanel.add(cutPasteFunction);
+        generatePanel.add(cutPasteFunction);
         JButton generateButton = new JButton(JMeterUtils.getResString("generate")); //$NON-NLS-1$
         generateButton.addActionListener(this);
-        resultsPanel.add(generateButton);
+        generatePanel.add(generateButton);
+        resultTextArea = JSyntaxTextArea.getInstance(5,50);
+        resultTextArea.setToolTipText(JMeterUtils.getResString("function_helper_dialog_result_warn"));
+        displayPanel.add(new JLabel(JMeterUtils.getResString("result_function")));
+        displayPanel.add(JTextScrollPane.getInstance(resultTextArea));
+        
+        resultsPanel.add(generatePanel);
+        resultsPanel.add(displayPanel);
+        
         this.getContentPane().add(resultsPanel, BorderLayout.SOUTH);
-
         this.pack();
         ComponentUtil.centerComponentInWindow(this);
     }
@@ -135,6 +150,7 @@ public class FunctionHelper extends JDia
             getContentPane().add(parameterPanel, BorderLayout.CENTER);
             this.pack();
             this.validate();
+            resultTextArea.setText("");
             this.repaint();
         } catch (InstantiationException | IllegalAccessException e) {
         }
@@ -161,6 +177,8 @@ public class FunctionHelper extends JDia
         }
         functionCall.append("}");
         cutPasteFunction.setText(functionCall.toString());
+        CompoundVariable function = new CompoundVariable(functionCall.toString());
+        resultTextArea.setText(function.execute().trim()); 
     }
 
     private class HelpListener implements ActionListener {

Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1796194&r1=1796193&r2=1796194&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Thu May 25 20:39:05 2017
@@ -351,6 +351,7 @@ ftp_sample_title=FTP Request Defaults
 ftp_save_response_data=Save File in Response ?
 ftp_testing_title=FTP Request
 function_dialog_menu_item=Function Helper Dialog
+function_helper_dialog_result_warn=If function uses variables or a running context, results will not reflect reality
 function_helper_title=Function Helper
 function_name_param=Name of variable in which to store the result (required)
 function_name_paropt=Name of variable in which to store the result (optional)
@@ -902,6 +903,7 @@ resultsaver_skipsuffix=Don't add suffix
 resultsaver_success=Save Successful Responses only
 resultsaver_title=Save Responses to a file
 resultsaver_variable=Variable Name:
+result_function=The result of the function is
 retobj=Return object
 return_code_config_box_title=Return Code Configuration
 reuseconnection=Re-use connection

Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1796194&r1=1796193&r2=1796194&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties Thu May 25 20:39:05 2017
@@ -346,6 +346,7 @@ ftp_sample_title=Param\u00E8tres FTP par
 ftp_save_response_data=Enregistrer le fichier dans la r\u00E9ponse ?
 ftp_testing_title=Requ\u00EAte FTP
 function_dialog_menu_item=Assistant de fonctions
+function_helper_dialog_result_warn=Si la fonction utilise des variables ou le contexte d'ex\u00E9cution, le r\u00E9sultat affich\u00E9 ne refl\u00E8te pas la r\u00E9alit\u00E9
 function_helper_title=Assistant de fonctions
 function_name_param=Nom de la fonction. Utilis\u00E9 pour stocker les valeurs \u00E0 utiliser ailleurs dans la plan de test
 function_name_paropt=Nom de variable dans laquelle le r\u00E9sultat sera stock\u00E9 (optionnel)
@@ -892,6 +893,7 @@ resultsaver_skipsuffix=Ne pas ajouter de
 resultsaver_success=Enregistrer seulement les r\u00E9ponses en succ\u00E8s
 resultsaver_title=Sauvegarder les r\u00E9ponses vers un fichier
 resultsaver_variable=Nom de variable \:
+result_function=Le r\u00E9sultat de la fonction est \: 
 retobj=Retourner les objets
 return_code_config_box_title=Configuration du code retour
 reuseconnection=R\u00E9-utiliser la connexion

Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1796194&r1=1796193&r2=1796194&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Thu May 25 20:39:05 2017
@@ -108,6 +108,7 @@ Summary
 <h3>Functions</h3>
 <ul>
     <li><bug>61040</bug>Add a time shifting function</li>
+    <li><bug>61126</bug>Function Helper Dialog : Add a field that shows execution result</li>
 </ul>
 
 <h3>I18N</h3>