Return-Path: X-Original-To: apmail-jmeter-dev-archive@minotaur.apache.org Delivered-To: apmail-jmeter-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 56D44F25E for ; Fri, 5 Apr 2013 09:40:21 +0000 (UTC) Received: (qmail 37713 invoked by uid 500); 5 Apr 2013 09:40:21 -0000 Delivered-To: apmail-jmeter-dev-archive@jmeter.apache.org Received: (qmail 37610 invoked by uid 500); 5 Apr 2013 09:40:20 -0000 Mailing-List: contact dev-help@jmeter.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jmeter.apache.org Delivered-To: mailing list dev@jmeter.apache.org Received: (qmail 37427 invoked by uid 99); 5 Apr 2013 09:40:19 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Apr 2013 09:40:19 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of nabarun.mondal@gmail.com designates 209.85.215.51 as permitted sender) Received: from [209.85.215.51] (HELO mail-la0-f51.google.com) (209.85.215.51) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Apr 2013 09:40:15 +0000 Received: by mail-la0-f51.google.com with SMTP id fo13so3306046lab.10 for ; Fri, 05 Apr 2013 02:39:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=/VJa+rKYG1IcOr9JvaQI2VIvL/dOVyDFMp+2MIUNpd4=; b=CgTqPU/9BBWmMTjwEXb89YYI9+4R13B0q9RDVoXlLpJlloI1IUY/UpJsyyFoJ9prJI jX7GvAamY6W4dXwakhkg7o6stw1g94cmMhEWTHUcMCZSW80wR/Wvzx6lA9FS463oL4oX KKI2YmOeBWfQhdusz154SrsLMgyTIYlDGtypR7hJOWMo0HppkWeZgbZNiBFuURSZx9bV oNxF38eKOu0VEdByTolFESyfca7EvnMb1ytzL3I0NB8ATETL8i1w7V5UbENXh2H0DtYx 3QA996hdEm6zUEfXN4QHz2wwVsRQnfZKE9iJyUBH0h3PEuw2NXm/ISt0JLU2nu8W0OR8 7hkA== MIME-Version: 1.0 X-Received: by 10.112.101.101 with SMTP id ff5mr5634585lbb.107.1365154793585; Fri, 05 Apr 2013 02:39:53 -0700 (PDT) Received: by 10.112.49.103 with HTTP; Fri, 5 Apr 2013 02:39:53 -0700 (PDT) In-Reply-To: References: Date: Fri, 5 Apr 2013 15:09:53 +0530 Message-ID: Subject: Re: The Implementation of Content Formatting Language for JMS in Jmeter From: Noga To: dev@jmeter.apache.org Content-Type: multipart/alternative; boundary=14dae9d717fa8906ec04d999de2b X-Virus-Checked: Checked by ClamAV on apache.org --14dae9d717fa8906ec04d999de2b Content-Type: text/plain; charset=ISO-8859-1 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 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. > > XYZ > Regular > 123 > FATAL > > > 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 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 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 > > 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. > --14dae9d717fa8906ec04d999de2b--