2014-10-10 42 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

相關問題