我有一个在GUI中运行良好的测试套件,并希望从命令行运行它。没问题,我明白该怎么做。
在套件中,我有一个Summary Report对象,它显示了表中的min,max和avg响应时间。摘要报告上有一个“配置”按钮,允许我选择可以写入文件的字段以捕获结果。但是,我想要的只是最小值,最大值和平均值,而这些似乎不是我能记录的字段。
任何人都可以建议我可以通过Beanshell或其他方式访问这些值吗?
我的套件将有许多线程组,我想为每个创建一个唯一的摘要报告文件,以便我可以在Jenkins中创建一些图。
提前感谢您的帮助。
布拉德
答案 0 :(得分:1)
Simple Beanshell脚本应该是最好的解决方案。我建议使用Beanshell Post Processors将每个请求的时间记录到相应于线程组名称的文件中。
对于线程组中的每个采样器,使用以下代码添加Beanshell Post Processor:
long time = prev.getTime(); //get Sampler Execution Time
String samplerName = prev.getSampleLabel(); //get Sampler Name
String threadGroupName = ctx.getThreadGroup().getName(); // get Thread Group Name
FileOutputStream out = new FileOutputStream(threadGroupName + ".csv", true); // Create output file called ${Thread Group}.csv
//append information to the file
StringBuilder sb = new StringBuilder();
sb.append(samplerName);
sb.append(",");
sb.append(time);
sb.append(System.getProperty("line.separator"));
out.write(sb.toString().getBytes("UTF-8"));
out.flush();
out.close();
同样,您可以获得并存储您需要的任何内容。测试后应计算最小,最大和平均时间。我猜Jenkins很聪明,可以用来绘制这个,但是也可能需要采样器时间戳。
参考文献:
prev
变量ctx
变量