Hello, Few questions regarding the feature :
- How do you see the DSL for plugins ? - How will JSR223 custom code be used inside DSL ? Also few notes inline below Regards On Saturday, November 20, 2021, Vladimir Sitnikov < sitnikov.vladi...@gmail.com> wrote: > >The annotations could be used for scanning for TestPlan elements on > startup, too. > > I remember we have discussed it, however, it sounds like a different > feature. > Of course, some level of code generation might help, however, I have no use > cases for it now. > > >Maybe start with a global org.apache.jmeter.experimental.dsl > package/module name > > I think experimental works better with annotations like > @OptIn(Experimental) > If you put experimental into a package name, you can't remove it without > breaking the usages. Looks good to me > > A single .dsl. package would help indeed, so users could import > jmeter.dsl.* and use the functions rather than import every package or > class individually. > On the other hand, the users won't be able to unimport features they do not > need That looks acceptable to me > > > Kotlin has a very similar string template format to JMeter, is there a > good way to distinguish those, or guard the JMeter ones? > > That is indeed a problem. > I've idea what would work the best to resolve it. > Changing syntax to %{..} might work. > Changing syntax to explicit expr("__javaScript(...)") might work as well. > Making variables explicit might work as well. For instance, we can declare > "variable holder", and pass it to regex extractor, and later use it for > retrieving the result. > That would reduce the number of cases where $ is needed in the test plan as > every use of $ is basically a place for hidden error like "use of undefined > variable", and so on is your suggestion about changing JMeter ${var} syntax or do I misunderstand ? > > > It seems, that `aggregateReport` has its parameters given by a closure > (is that the right name?) , while `http` per positional parameter. Is > this a Kotlin feature, that we can mix those, or is it only a first > example and showing different ways of settings parameters on the elements? > > Kotlin has positioned parameters, it has named parameters, parameters can > have default values (even computed values based on other parameters), and > the final lambda can be outside of the parenthesis. > > >And a completely other construction site: Currently JMeter uses a global > context, which could trip off users of the dsl, when they want to > execute plans in parallel. Would this be worse, than now? > > Do you mean static context when running the plan? > > Vladimir > -- Cordialement Philippe M. Ubik-Ingenierie