jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Noga <nabarun.mon...@gmail.com>
Subject Re: The Implementation of Content Formatting Language for JMS in Jmeter
Date Fri, 05 Apr 2013 09:39:53 GMT
Please find my questions as follows:-

Currently JMeter can send the message given by user moreover it has no
randomized factor in it.

Why would you need to do that?
All you really want to create that message right? A CSV data reader can
read those messages
from external data.

The valid randomized data can be generated offline with
http://dgmaster.sourceforge.net/
Whatever specific string grammar you want, either exists inside it, or
you need to code it there, but that would be specific to that language
class,
there can not be any universal string generator.

Why one needs to change code inside JMeter to do it?
Write an external guy who can dump the messages to a format JMeter reader
understands it,
and then load those messages and pass.

Again, do not duplicate code, design people already wrote.

Rules of thumb:-
1. Never ever try to auto generate strings from a grammar. If you have a
doubt , there are languages,
whose strings can not be deterministically generated from grammar.

This will generate the
randomized input message based on the given grammar.

Simple example to show that is the grammar [.*] --> It is a regular grammar.
Now, what strings are appropriate for it? From what alphabet if I may ask?
What is the list of alphabets you are working on? So, in effect you do not
know.
Another is [0-9]+  ==> All the strings which are decimal integers.
In this case you need a cut off of the length.
And that is first one of your concerns.

2. Try to code something after formally establishing that it is in fact is
computable.
Now think about it again, and let us know, with a possible proof outline
that what you are seeking
to code, is even computable.
http://en.wikipedia.org/wiki/Computability


Summary:

You can not code for it. Not universally.
There is no language generator. It just is not possible.
It can shown mathematically that there is no universal generator.
Because string generators are parameterized by the implicit parameters
associated with the language.

One example is this:-
http://www.random.org/strings/?mode=advanced

See the restrictions imposed.

Worse still, who watches the watchmen? How you know that the grammar is
even correct?
What grammar it is anyways? The Chomosky hierarchy suggests this

http://upload.wikimedia.org/wikipedia/commons/9/9a/Chomsky-hierarchy.svg

Can you write code for generating regex? May be.
Can you write code for generating a CFG ? Perhaps, non trivial, but
perhaps, in some cases.
Can you write code for generating a CSG ? NO, NO NO No!
Anything >= CSG is out of question, with >= is used as in a measure of the
language set.


Don't loose heart, there are tons of the problem which looks like doable,
feels like doable, but are not doable.
Universal string generation is simply such an idea. Universal Debugger is
another such, it has different name though, "The Halting Problem".


So, you need to specify what class of grammar you want to support
generating.
What are the equivalent classes of grammars inside that grammar which can
be supported,
and then when you have done all this, the question would be why incorporate
into JMeter?

It should be inside  http://dgmaster.sourceforge.net/.

Please let us know, if the formal reasoning made by me  in this mail is
wrong somewhere.

Thanks
--Noga






On Fri, Apr 5, 2013 at 1:39 PM, Pranav Bhole <pranavbhole@gmail.com> wrote:

> Hello,
> Thank you very much for your reply. I really appreciate it. :)
>
> *Why do we need to send the meaningful messages into Queue.*
> In most of the testing scenarios, like performance harness testing. We need
> the barrage of messages for the testing. If those barrage of messages are
> meaningful with "randomized valid string" in it then we can have
> functionality testing + performance harness testing together.
> Currently JMeter can send the message given by user moreover it has no
> randomized factor in it. Thus, We can not have full fledged functionality
> testing on the Middleware Applications.
> For Example:
> Consider a Middleware Appplication having Remote Queue ABC which has the
> following simple XML as meaningful message. This message is further picked
> up from the ABC by middleware application or API.
> <msg>
> <user>XYZ</user>
> <type>Regular<type>
> <error_code_reported>123</error_code_reported>
> <error_type>FATAL</error_type>
> </msg>
>
> If we send 1000 of such messages then it would test the functionality of
> the application for type Regular, errorcode 123, errortype FATAL.
>
> *My idea is to implement the new "Content Formatting Language" using String
> grammar and Automata which can generate the all possible cases of <msg> and
> eventually testing the application thoroughly.  I think, this matches with
> the point 3.2 in the previous mail in this thread by sir *nabarun.mondal.
> (Thank you very much)
>
> *Approach:* This *"Content Formatting Language" *will be having en enable
> flag . On enabling the flag, user can write the grammar in *"Content
> Formatting Language" *in the content field. This will generate the
> randomized input message based on the given grammar.
> *
> *
> *"Content Formatting Language": *Structure of this language will be simple
> and intuitive even for the new user. And I know, this is the module on
> which I will be spending most of  the development efforts to make it robust
> so that it will be compatible with all the input message format of the
> Middleware Applications.
>
> *JMeter After "Content Formatting Language":* JMeter is already robust and
> widely used. Addition of this module will focus the Middleware testers to
> have the combination of the test cases like functionality testing + Stress
> Testing + Performance Testing.
>
> *Development Duration: *Google Summer of code will motivate me to work on
> this module as full time intern of 4 months. Although the duration is 4
> months, I will be giving support to this module for lifetime and keep
> contributing the new ideas.
>
> *Questions:* I request all of you, if you have any questions, suggestion,
> drawbacks about this idea then I would love to hear them and change the
> development plan accordingly.:) I would also love to hear the reviews of
> the perspective mentor of JMeter in GSOC 2013 on this module.
>
>
> Thank you very much.
>
>
> On Wed, Apr 3, 2013 at 12:14 PM, Noga <nabarun.mondal@gmail.com> wrote:
>
> > If  I understood you correctly:-
> >
> >    1. JMeter can already send messages to the middleware .
> >    2. JMeter can not send *meaningful messages* to the middleware. WHY?
> >    3. You want to
> >       1. Implement an add-on to make the messages meaningful?
> >       2. Or change some functionality such as to incorporate a language
> >       string generator mechanism so that anyone can later incorporate the
> >       language grammar to the engine, and generate strings on that
> > language?
> >    4.
> >
> > Please let us know which one option of 3.1 or 3.2 you want to build.
> > [3.2] IMHO might not be an easy task, language string generator
> generators
> > are never easy.
> > [3.1] Probably would not have any qualms.
> >
> > Thanks
> > --Noga
> >
> >
> >
> > On Wed, Apr 3, 2013 at 8:07 AM, Pranav Bhole <pranavbhole@gmail.com>
> > wrote:
> >
> > > Hello to all,
> > >         This is Pranav Bhole, I am Master student at The University of
> > > Texas at Dallas. I haven been using Jmeter extensively as core since
> 5-6
> > > years in my academic and professional work. I worked for IBM in the
> > > Middleware Domain. Recently an idea came up in my mind with concern of
> > the
> > > following things:
> > >
> > > A. Jmeter sends the Bulk of Garbage message (of given size) in the
> given
> > > Queue. Internally, in the middleware application , this Queue is mostly
> > > linked with the Middleware Services which pick up the message and
> process
> > > it with the business logic.
> > > B. In the above case, if we wish to have performance harness test of
> the
> > > middleware application using Jmeter. Jmeter will simply push the Bulk
> > > Garbage message in the queue , this message will be straightforwardly
> > > rejected by the Service because it wont me matching with  given input
> > > format of the service.
> > >
> > > With concern of the scenarios of A and B, I have an idea of
> implementing
> > > the Content Formatting Language for message contents. This language
> will
> > > send the formatted message in the Queue and which will be processed by
> > the
> > > service which pick up the message from the queue. In this way we could
> be
> > > able to push the meaning full messages in the Queue and eventually will
> > be
> > > able to analyze the performance harness of the entire Middleware
> > > Application.
> > >
> > > As I am graduate student, I wish to implement this module as student of
> > > Google Summer of Code 2013.
> > > I am pretty excited about the reviews of the Jmeter's developers
> > community
> > > on this idea.
> > > And off-course this is impossible without Jmeter Dev's prestigious
> > > guidance. I request to Jmeter's mentor to guide me about this.
> > > If you have any idea already running in your mind related to this then
> I
> > > would love to hear that.
> > >
> > > Thank you
> > >
> > > --
> > > Pranav Bhole
> > > Student of MS in Computer Science for Fall 2012,
> > > University of Texas at Dallas
> > > http://www.linkedin.com/in/pranavbhole
> > > pranav.bhole@utdallas.edu
> > > Cell Phone No: 972-978-6108.
> > >
> >
>
>
>
> --
> Pranav Bhole
> Student of MS in Computer Science for Fall 2012,
> University of Texas at Dallas
> http://www.linkedin.com/in/pranavbhole
> pranav.bhole@utdallas.edu
> Cell Phone No: 972-978-6108.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message