You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@jmeter.apache.org by bu...@apache.org on 2012/02/28 13:33:20 UTC
DO NOT REPLY [Bug 52787] New: new RenderAsText to TextXML
https://issues.apache.org/bugzilla/show_bug.cgi?id=52787
Bug #: 52787
Summary: new RenderAsText to TextXML
Product: JMeter
Version: unspecified
Platform: PC
Status: NEW
Severity: enhancement
Priority: P2
Component: Main
AssignedTo: issues@jmeter.apache.org
ReportedBy: f.mellentin@gmx.com
Classification: Unclassified
Created attachment 28397
--> https://issues.apache.org/bugzilla/attachment.cgi?id=28397
ApacheJMeter_components.jar
I search for a prettyFormat xml response and I cant't find any renderer. Now I
have changed the class "RenderAsText". This is a quick hack.
Here is my solution:
package org.apache.jmeter.visualizers;
import javax.swing.JEditorPane;
import javax.swing.JScrollPane;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.util.JMeterUtils;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;
import java.io.StringWriter;
// Referenced classes of package org.apache.jmeter.visualizers:
// SamplerResultTab, ResultRenderer, ViewResultsFullVisualizer
public class RenderAsText extends SamplerResultTab
implements ResultRenderer
{
public RenderAsText()
{
}
public void renderResult(SampleResult sampleResult)
{
String response =
ViewResultsFullVisualizer.getResponseAsString(sampleResult);
showTextResponse(response);
}
// formate response xml
public static String prettyFormat(String input, int indent) {
try {
Source xmlInput = new StreamSource(new StringReader(input));
StringWriter stringWriter = new StringWriter();
StreamResult xmlOutput = new StreamResult(stringWriter);
Transformer transformer =
TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount",
String.valueOf(indent));
transformer.transform(xmlInput, xmlOutput);
return xmlOutput.getWriter().toString();
} catch (Exception e) {
throw new RuntimeException(e); // simple exception handling, please
review it
}
}
public static String prettyFormat(String input) {
return prettyFormat(input, 2);
}
private void showTextResponse(String response)
{
results.setContentType("text/plain");
if(response != null){
if(response.startsWith("<?xml version=")){
results.setText(prettyFormat(response));
}else{
results.setText(response);
}
}else{
results.setText("");
}
//results.setText(response != null ? response : "");
results.setCaretPosition(0);
resultsScrollPane.setViewportView(results);
}
public String toString()
{
return JMeterUtils.getResString("view_results_render_text");
}
}
If you like you can try it. (see attachment)
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 52787] new RenderAsText to TextXML
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=52787
Milamber <mi...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |INVALID
--- Comment #2 from Milamber <mi...@apache.org> 2012-02-28 20:38:01 UTC ---
Render as XML already exists:
src/components/org/apache/jmeter/visualizers/RenderAsXML.java
If you want improve this xml renderer, please open a new bugzilla, with
traditional diff patch file.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 52787] new RenderAsText to TextXML
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=52787
Lenzen <f....@gmx.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
OS/Version| |All
--- Comment #1 from Lenzen <f....@gmx.com> 2012-02-28 12:46:41 UTC ---
I'm searching for a "prettyFormat" response (for xml) and I can't find any
renderer. Now I
have changed the class "RenderAsText". This is a quick hack.
Here is my solution:
package org.apache.jmeter.visualizers;
import javax.swing.JEditorPane;
import javax.swing.JScrollPane;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.util.JMeterUtils;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;
import java.io.StringWriter;
// Referenced classes of package org.apache.jmeter.visualizers:
// SamplerResultTab, ResultRenderer, ViewResultsFullVisualizer
public class RenderAsText extends SamplerResultTab
implements ResultRenderer
{
public RenderAsText()
{
}
public void renderResult(SampleResult sampleResult)
{
String response =
ViewResultsFullVisualizer.getResponseAsString(sampleResult);
showTextResponse(response);
}
// formate response xml
public static String prettyFormat(String input, int indent) {
try {
Source xmlInput = new StreamSource(new StringReader(input));
StringWriter stringWriter = new StringWriter();
StreamResult xmlOutput = new StreamResult(stringWriter);
Transformer transformer =
TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount",
String.valueOf(indent));
transformer.transform(xmlInput, xmlOutput);
return xmlOutput.getWriter().toString();
} catch (Exception e) {
throw new RuntimeException(e); // simple exception handling, please
review it
}
}
public static String prettyFormat(String input) {
return prettyFormat(input, 2);
}
private void showTextResponse(String response)
{
results.setContentType("text/plain");
if(response != null){
if(response.startsWith("<?xml version=")){
results.setText(prettyFormat(response));
}else{
results.setText(response);
}
}else{
results.setText("");
}
//results.setText(response != null ? response : "");
results.setCaretPosition(0);
resultsScrollPane.setViewportView(results);
}
public String toString()
{
return JMeterUtils.getResString("view_results_render_text");
}
}
If you like you can try it. (see attachment)
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.