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:46:41 UTC
DO NOT REPLY [Bug 52787] new RenderAsText to TextXML
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.