I will commit the template for MongoDB in Groovy and cross fingers you will agree to embed Groovy-all.jar ;-)
I will need in this case to document that you must download groovy, extract groovy-all.jar in lib and restart. Regards Philippe On Tue, Jul 16, 2013 at 11:14 PM, Philippe Mouawad < [email protected]> wrote: > But sebb, > For me, Scripting is not for prototyping in my experience. > In the last 10 Load Testing missions I made recently I always had to > script at some point. > I remember packaging a JAR years ago, it is more intended to developpers > and takes more configuration than scripting. > It is really much easier to script than package a Jar with classes no ? > > Also with syntax coloring we bring a great enhancement on it, so why not > make it efficient by default ? > > Also Groovy+Caching has nearly same performances as classes inside a Jar. > > We should make performances great by default and not rely on users tune or > use the best option, don't you think so ? > > Thanks > Regards > Philippe > > > On Tue, Jul 16, 2013 at 11:05 PM, sebb <[email protected]> wrote: > >> I'll say again: scripting is intended for prototyping. It is not >> intended for the casual user. >> >> The BeanShell jars are really only included because Beanshell was the >> first scripting language included; at the time JSR-223 did not exist >> and BSF was not entirely functional. Had JSR223/BSF existed, we >> probably would not be shipping BSH with JMeter. But it cannot now be >> dropped easily. >> >> On 16 July 2013 21:45, Philippe Mouawad <[email protected]> >> wrote: >> > Hello, >> > I bounce again on this one as I had an interesting experience this >> evening; >> > >> > I was creating a Template for MongoDB, I started creating it with >> > Beanshell, and found it strange that throughput was so bad >> > 25 Threads, no pause time, one insert, one count: >> > >> > - Generate Summary Results = 95514 in 300s = 318.3/s Avg: 74 >> > Min: 2 Max: 536 Err: 0 (0.00%) >> > >> > >> > I analyzed a bit and to my surprise time was spent in Beanshell >> > So I decided to write the same in JSR223+Groovy+Caching: >> > >> > >> > - Generate Summary Results = 1171779 in 300s = 3905.8/s Avg: 6 >> > Min: 0 Max: 648 Err: 0 (0.00%) >> > >> > >> > Results: >> > >> > - Groovy cached performs > 11 times better than Beanshell. >> > >> > >> > *So I am convinced we should ship Groovy with JMeter to encourage users >> to >> > use it by default.* >> > >> > Look at the comment at bottom of this page (I am not saying it is >> > representative but It is interesting to know how users think and use >> JMeter >> > sometimes) >> > >> > - >> > >> http://www.ubik-ingenierie.com/blog/jmeter_control_percentage_of_sampler/ >> > >> > What does he say ? >> > >> > => The main advantage is that BeanShell is installed by *default* with >> > JMeter >> > >> > Opinions ? >> > >> > >> > >> > >> > On Fri, Jul 5, 2013 at 5:30 PM, sebb <[email protected]> wrote: >> > >> >> On 5 July 2013 16:24, Danny Lade <[email protected]> wrote: >> >> >> -----Ursprüngliche Nachricht----- >> >> >> Von: sebb [mailto:[email protected]] >> >> >> Gesendet: Freitag, 5. Juli 2013 16:29 >> >> >> An: [email protected] >> >> >> Betreff: Re: Groovy >> >> >> >> >> >> > I'm not sure how could you know the code about JSR223TestElement >> is >> >> >> > implementing the support for "script compilation caching", so here >> >> comes >> >> >> some short code: >> >> >> > >> >> >> > processFileOrScript() >> >> >> > // Hack as in bsh-2.0b5.jar BshScriptEngine implements >> >> Compilable but >> >> >> throws new Error >> >> >> > boolean supportsCompilable = scriptEngine instanceof >> >> Compilable >> >> >> > && >> >> >> > >> !(scriptEngine.getClass().getName().equals("bsh.engine.BshScriptEngine >> >> >> > ")); >> >> >> > >> >> >> > Because the JavaScriptEngine is based on the BshScriptEngine the >> >> "script >> >> >> compilation caching" >> >> >> > isn't available for Java, but it is available for groovy. >> >> >> >> >> >> Which JavaScriptEngine? >> >> >> >> >> > There is no physical implementation, but if you use the "JSR223 >> Sampler" >> >> it provides the language "Java". This is made via the >> >> BshScriptEngineFactory which provides the information it also "speaks" >> Java. >> >> >> >> OK, I see. >> >> >> >> > (see >> >> >> https://code.google.com/p/beanshell2/source/browse/trunk/src/bsh/BshScriptEngineFactory.java?r=94 >> >> ) >> >> > However, the "script compilation caching" does not work for Java >> >> (provided by BshScriptEngine). >> >> > >> >> > Besides that, it seems they removed the Java support in newer >> versions >> >> (see same link, but newest version). You should consider that if you >> think >> >> about using "bsh-2.1b5.jar" in the future. >> >> >> >> No, we cannot use beanshell2 from that source as it is GPL. >> >> However the original beanshell code is hopefully coming to Apache. >> >> >> >> >> > I'm not saying "you must install groovy" , I just want to be sure >> >> >> > having a scripting engine with "script compilation caching" >> working >> >> (or without >> >> >> any synchronization during runtime). >> >> >> >> >> >> What I am saying is that there is no need to include Groovy in the >> >> JMeter binary >> >> >> release. >> >> >> It works just as well if it is downloaded separately. >> >> >> >> >> >> And if the BSH Compilable bug can be fixed, users could then use >> >> BeanShell. >> >> >> >> >> > It's the same on me, I just want to point out the "script compilation >> >> caching" with BeanShell. >> >> > All I did was to suggest possible solutions (IMO), the decision is >> all >> >> yours. >> >> > >> >> > Greetings Danny >> >> > >> >> >> > >> > >> > >> > -- >> > Cordialement. >> > Philippe Mouawad. >> > > > > -- > Cordialement. > Philippe Mouawad. > > > -- Cordialement. Philippe Mouawad.
