2014-10-10 52 views
1


有没有人在JMeter中使用过BSF预处理器?预处理器和采样器之间的工作有什么不同? Beanshell处理器和BSF处理器有什么区别?在Jmeter中有一个使用过XSLT BSF预处理器吗?

我的要求是我有一个示例XML,我需要使用它为HTTP请求生成尽可能多的XML,我将加载测试。为此,我计划使用BSF预处理器在一个循环内使用模板XML的XSLT转换创建一个XML字符串(我希望生成许多请求)。然后,我将使用指向创建的XML的字符串变量,以便在对应的HTTP请求的每次循环迭代中使用。所以前面段落中的问题是验证这种方法。

如果这种方法是好的,我无法弄清楚如何使用XSLT BSF预处理器?我写了以及尝试在脚本部分指定XSL,但无法弄清楚如何传递输入XML? String参数输入是什么意思?它为该参数抛出一个NullPointerException?那是指定输入XML的方式吗?如果是,请举个例子。

任何人在此工作过,请分享您的任何投入。

谢谢
水稻

回答

0

请在下面找到答案:

是什么在

预处理器之前采样执行预处理器和采样器之间的工作的区别。不会记录预处理程序和后处理程序的执行时间,因此它们可以方便地使用,即准备测试数据或在采样器结束后对其执行某些操作。

Beanshell处理器和BSF处理器有什么区别?

BeanShell的测试元素只支持Beanshell语言,而BSF支持JavaScript,JEXL,JACL,JML等

对于轻量级脚本,最好使用BeanShell的发动机初始化时间比较少,但是如果你的脚本在执行“重”操作时,最好使用JSR223 Sampler和Groovy作为语言。请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!了解脚本扩展引擎基准以及有关如何安装Groovy语言支持的详细信息。

如何通过输入XML

它可以通过Parameters部,其接受任意字符串来完成。

如果你有你的XML文件作为JMeter的变量,你可以从脚本访问它:

String xml = vars.get("myVar"); 

UPDATE:示例预处理程序代码

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.File; 


TransformerFactory factory = TransformerFactory.newInstance(); 
Source xslt = new StreamSource(new File("/path/to/your/xsl/file.xsl")); 
Transformer transformer = factory.newTransformer(xslt); 
Source xml = new StreamSource(new File("/path/to/your/source/xml/file.xml")); 
transformer.transform(xml, new StreamResult(new File("/path/to/result/xml_or_html/file"))); 
+0

@Dmitri你好,谢谢你解释详细说明差异。我还不清楚预处理器是否可以为后续步骤创建变量。你也提到过JSR223采样器,而不是预处理器。这是一个错字还是打算?另外我找不到在JSR223采样器或预处理器中列为语言的Groovy?我错过了什么吗?另外我不太了解如何使用BSF Xslt预处理器,还有一个脚本部分/脚本文件部分(我使用脚本文件),并试图将输入XML作为参数传递,但它在bsf4j的一些setParameter方法中抛出空指针。 – Paddy 2014-10-13 05:47:45

+0

嗨稻田。预处理器能够为预处理器中的后续步骤(采样器或当前线程组中的任何其他实体)创建变量,如预处理器中的'vars.put(“variable_name”,“variable_value”)',后跟$ $ { variable_name}'无论你需要引用它。至于我的JMeter 2.11语言下拉菜单中提供了“groovy”语言,但如果它不在那里,只需键入'groovy',它应该没问题。 – 2014-10-13 08:25:07

+0

嗨@Dmitri,感谢您的澄清。但是我真正需要帮助的部分是我得到的异常,我试图将xsl分别指定为内联和文件(不在一起),并将包含xml的字符串变量指定为输入,这不正确,您是说脚本部分应该包含非xslt代码,你能告诉我一个例子,可能会将它添加到你原来的回复中吗?谢谢,Paddy – Paddy 2014-10-13 09:02:07