Groovy Scripts không thực thi trong Jmeter
Aug 20 2020
Tôi đang gặp sự cố khi chạy các tập lệnh khó hiểu trong Jmeter. Ai đó có thể tư vấn nếu tôi cần kích hoạt / tinh chỉnh thứ gì đó để Groovy thực thi.
* Phiên bản Jmeter = 5.2.1
Groovy = 2.4.16 / Groovy Scripting Engine 2.0
Jar = /lib/groovy-all-2.4.16.Jar*
Tôi đã làm theo một ví dụ trực tuyến để tôi biết tập lệnh này sẽ hoạt động.
Tôi đã đặt tập lệnh sau trong JSR223 Sampler:
import groovy.io.FileType
String folderPath = "data-management"
new File(folderPath).eachfile (FileType.FILES) { file ->
/* Delete file if file name contains .dat */
if (file.name.contains('.dat')) file.delete()
}
Kết quả lấy mẫu cho:
Response code:500
Response message:javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: java.io.File.eachfile() is applicable for argument types: (groovy.io.FileType, Script2$_run_closure1) values: [FILES, Script2$_run_closure1@17b02a]
Possible solutions: eachFile(groovy.io.FileType, groovy.lang.Closure), eachFile(groovy.lang.Closure), eachLine(int, groovy.lang.Closure), eachLine(java.lang.String, groovy.lang.Closure), eachLine(groovy.lang.Closure), isFile()
Trích xuất từ Nhật ký:
2020-08-19 17:49:15,917 INFO o.a.j.t.JMeterThread: Thread started: tearDown Thread Group 1-1
2020-08-19 17:49:15,951 ERROR o.a.j.p.j.s.JSR223Sampler: **Problem in JSR223 script JSR223 Sampler**, message: javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: java.io.File.eachfile() is applicable for argument types: (groovy.io.FileType, Script2$_run_closure1) values: [FILES, Script2$_run_closure1@17b02a]
Possible solutions: eachFile(groovy.io.FileType, groovy.lang.Closure), eachFile(groovy.lang.Closure), eachLine(int, groovy.lang.Closure), eachLine(java.lang.String, groovy.lang.Closure), eachLine(groovy.lang.Closure), isFile()
javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: java.io.File.eachfile() is applicable for argument types: (groovy.io.FileType, Script2$_run_closure1) values: [FILES, Script2$_run_closure1@17b02a]
Possible solutions: eachFile(groovy.io.FileType, groovy.lang.Closure), eachFile(groovy.lang.Closure), eachLine(int, groovy.lang.Closure), eachLine(java.lang.String, groovy.lang.Closure), eachLine(groovy.lang.Closure), isFile()
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:324) ~[groovy-all-2.4.16.jar:2.4.16]
at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:72) ~[groovy-all-2.4.16.jar:2.4.16]
at javax.script.CompiledScript.eval(CompiledScript.java:92) ~[?:1.8.0_241]
at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:223) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.protocol.java.sampler.JSR223Sampler.sample(JSR223Sampler.java:71) [ApacheJMeter_java.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:627) [ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:551) [ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:490) [ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257) [ApacheJMeter_core.jar:5.2.1]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_241]
Caused by: groovy.lang.MissingMethodException: No signature of method: java.io.File.eachfile() is applicable for argument types: (groovy.io.FileType, Script2$_run_closure1) values: [FILES, Script2$_run_closure1@17b02a]
Possible solutions: eachFile(groovy.io.FileType, groovy.lang.Closure), eachFile(groovy.lang.Closure), eachLine(int, groovy.lang.Closure), eachLine(java.lang.String, groovy.lang.Closure), eachLine(groovy.lang.Closure), isFile()
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:71) ~[groovy-all-2.4.16.jar:2.4.16]
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:48) ~[groovy-all-2.4.16.jar:2.4.16]
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) ~[groovy-all-2.4.16.jar:2.4.16]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) ~[groovy-all-2.4.16.jar:2.4.16]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136) ~[groovy-all-2.4.16.jar:2.4.16]
at Script2.run(Script2.groovy:4) ~[?:?]
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:321) ~[groovy-all-2.4.16.jar:2.4.16]
... 9 more
2020-08-19 17:49:15,955 INFO o.a.j.t.JMeterThread: Thread is done: tearDown Thread Group 1-1
2020-08-19 17:49:15,955 INFO o.a.j.t.JMeterThread: Thread finished: tearDown Thread Group 1-1
Trân trọng
Raja
Trả lời
1 UBIKLOADPACK Aug 20 2020 at 14:31
Groovy là một ngôn ngữ phân biệt chữ hoa chữ thường.
Vì thế
từng hồ sơ
Cần phải:
eachFile
Xem:
- http://docs.groovy-lang.org/docs/groovy-1.7.7/html/groovy-jdk/java/io/File.html#eachFile(groovy.lang.Closure)