Re: Emulating AJAX polling requests

Marc Holden <[email protected]>
Newsgroups gmane.comp.java.grinder.user
Message-ID <CADV_OVU5Yk=H2zyc=qgCRRhhhKHH87gxpr+kJwWVf5KVyj7ckg@mail.gmail.com>
That is correct, however, the we have implemented it is to create a new
TestRunner class with __call__ method being implemented, just as you
normally do.  In the constructor (__init__) we pass in all the data the
class will worker will need.  This includes cookies, parameters, and the
instrumented Request object.  We also have an isDone boolean included in
the class that we can monitor changes but I'd imagine you could use a
barrier for this.  Once the request comes back, we set the isDone value to
true.

1.  TestRunner class is instantiated with all the values it needs.
2.  We pass the class to the grinder.startWorker
3.  Monitor isDone to determine when the request is finished (if we even
care).  Most of the time we do care because the response contains data we
need for the next request...

With this the test runners don't need to 'talk' to each other as long as
the data is exposed on the objects but you need to know a lot of data
upfront.  I like to approach the xhr TestRunners almost like a Java Bean
with the added ability of making the HTTP Request.

-Marc


On Fri, Nov 15, 2013 at 9:17 AM, Heintz, Timothy J CTR (US) <
theintz-RD6IL/yZvvVWk0Htik3J/[email protected]> wrote:

>  Thanks,
>
> I was thinking that the solution was something like this.  However, I
> still have questions concerning how this handled.
>
> The docs state that you can provide method that I assume will act as the
> main TestRunner method for the new thread.  Is this correct?
>
> I am still uncertain how the two TestRunner threads talk to each other.
>
> Also can the method provided to the startWorker call be an instrumented
> method so the the response statistics are reported?
>
> Thanks in advance for you help
>
> Tim
>
>
> On 11/13/2013 10:48 PM, Marc Holden wrote:
>
> You can put the xhr request in its own TestRunner and call
> grinder.startWorker to fire off the request.   If you need to know when the
> worker is done, add a variable which you poll periodically.
>
> Hope this helps...
>
> -Marc
> On Nov 13, 2013 4:24 PM, "Heintz, Timothy J CTR (US)" <
> theintz-RD6IL/yZvvVWk0Htik3J/[email protected]> wrote:
>
>>  The problem is not in recording the request, but in executing it a
>> separate thread.
>>
>> Grinder appears to not allow calling an instrumented method from any
>> thread other than the main "worker" thread that invoked by the TestRunner.
>>
>> Tim
>> On 11/13/2013 12:31 PM, Ravi Joshi wrote:
>>
>>  If JavaScript is sending any HTTP request, then you can record this
>> scenario using TCP-Proxy. Once you have the recorded script, you can do
>> little modification as per the requirement.
>>
>> -Ravi Joshi
>>
>>
>>   On Wednesday, 13 November 2013 12:39 AM, "Heintz, Timothy J CTR (US)"
>> <theintz-RD6IL/yZvvVWk0Htik3J/[email protected]> <theintz-RD6IL/yZvvVWk0Htik3J/[email protected]> wrote:
>>  Hi,
>>
>> We have an web application in which JavaScript periodically polls the
>> server.
>>
>> To emulate this, I created a Python Thread that periodically executes a
>> callback to an instrumented TestRunner method, the executes the poling
>> request.
>>
>> This approach generated the following error:  "Only Worker Threads can
>> invoke tests".  Apparently Grinder does not allow Python-created
>> threads to execute instrumented methods.
>>
>> Is there another way this task can be accomplished?
>>
>> Thanks,
>>
>> Tim
>>
>>
>>
>> ------------------------------------------------------------------------------
>> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps
>> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
>> Free app hosting. Or install the open source package on any LAMP server.
>> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk
>> _______________________________________________
>> grinder-use mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/grinder-use
>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps
>> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
>> Free app hosting. Or install the open source package on any LAMP server.
>> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk
>> _______________________________________________
>> grinder-use mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/grinder-use
>>
>>
>
> ------------------------------------------------------------------------------
> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps
> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
> Free app hosting. Or install the open source package on any LAMP server.
> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> grinder-use mailing listgrinder-use-5NWGOfrQmneRv+LV9MX5ugtCRVl27V+i0wdF1cv0I5s@public.gmane.org://lists.sourceforge.net/lists/listinfo/grinder-use
>
>
>
>
> ------------------------------------------------------------------------------
> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps
> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
> Free app hosting. Or install the open source package on any LAMP server.
> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
> http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk
> _______________________________________________
> grinder-use mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/grinder-use
>
>

------------------------------------------------------------------------------
DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps
OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
Free app hosting. Or install the open source package on any LAMP server.
Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk

_______________________________________________
grinder-use mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/grinder-use
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.