我有一个类以这种方式将我的结果写入文件:
<httpSample t="266" lt="235" ts="1430124707554" s="true" lb="" rc="200" rm="OK" tn=" 1-1" dt="text" by="56440"/>
我怎样才能像这里一样创建图表 http://www.metaltoad.com/blog/plotting-your-load-test-jmeter使用 JMeter 结果?
这是我的工作函数:
public void jMeterTest(){
// JMeter Engine
StandardJMeterEngine jmeter = new StandardJMeterEngine();
//JMeter initialization (properties, log levels, locale, etc)
JMeterUtils.setJMeterHome("/usr/share/jmeter");
JMeterUtils.loadJMeterProperties("/usr/share/jmeter/bin/jmeter.properties");
//JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
JMeterUtils.initLocale();
// JMeter Test Plan, basic all u JOrphan HashTree
HashTree testPlanTree = new HashTree();
// HTTP Sampler
HTTPSampler httpSampler = new HTTPSampler();
httpSampler.setDomain("192.168.1.5");
httpSampler.setPort(9206);
httpSampler.setPath("/site/showing");
httpSampler.setMethod("GET");
// Loop Controller
LoopController loopController = new LoopController();
loopController.setLoops(1);
loopController.addTestElement(httpSampler);
loopController.setFirst(true);
loopController.initialize();
// Thread Group
ThreadGroup threadGroup = new ThreadGroup();
threadGroup.setNumThreads(7);
threadGroup.setRampUp(1);
threadGroup.setSamplerController(loopController);
// Test Plan
TestPlan testPlan = new TestPlan("Create JMeter Script From Java Code");
// Construct Test Plan from previously initialized elements
testPlanTree.add("testPlan", testPlan);
testPlanTree.add("loopController", loopController);
testPlanTree.add("threadGroup", threadGroup);
testPlanTree.add("httpSampler", httpSampler);
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");//$NON-NLS-1$
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
String home = System.getProperty("user.home");
String logFile = home + "/.platform/Results.jtf";
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(logFile);
testPlanTree.add(testPlanTree.getArray()[0], logger);
// Run Test Plan
jmeter.configure(testPlanTree);
jmeter.run();
}
感谢阅读!
最佳答案
您可以使用 Chart 库来绘制它,例如:HighChart、Chartjs...从您现有的 JTL 文件绘制图形。 (请注意,在上面的代码中,您正在生成一个 JTF 文件,它应该是 JTL 文件)。 就我而言,我使用 CanvasJS 绘制图形 创建 ajax 调用以加载文件:
$.ajax({
type: "GET",
url: "/resources/data/report.jtl",
dataType: "text",
success: function (data) { processData(data); }
});
从JTL文件中读取数据的函数:
function processData(allText) {
var allLinesArray = allText.split('\n');
if (allLinesArray.length > 0) {
var dataPoints = [];
for (var i = 0; i <= allLinesArray.length - 1; i++) {
var rowData = allLinesArray[i].split(',');
if(rowData && rowData.length > 1)
dataPoints.push({ label: rowData[0], y: parseInt(rowData[11]) });
}
chart.options.data[0].dataPoints = dataPoints;
chart.render();
}
}
之后创建新图表并渲染它以供查看:
var chart = new CanvasJS.Chart("chartContainer4", {
theme: "theme4",
zoomEnabled:true,
exportEnabled: true,
zoomType: "xy",
animationEnabled: true,
animationDuration: 100,
axisX:{
minimum: 0,
title: "Execution Time",
},
axisY:{
minimun: 0,
title: "Number of VUsers"
},
title: {
text: "Threads Over Time"
},
data: [
{
type: "spline",
lineThickness: 2,
dataPoints: []
}
]
});
提前可以看看Canvasjs了解更多信息。 希望对您有所帮助。
关于java - java代码中的jMeter图形结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29892153/