Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Google App Engine for Website Load Testing

Azure, Amazon and other instance based cloud providers can be used to carry out website load tests (by spinning up numerous instances running programs that send requests to a set of URLs) and I was wondering if I would be able to do this with Google App Engine.

So far, however it seems this is not the case. The only implementation I can think of at the moment is setting up the maximum number of cron jobs each executing at the highest frequency, each task requesting a bunch of URLs and at the same time popping in further tasks in the task queue.

According to my calculations this is only enough to fire off a maximum of 25 concurrent requests (as an application can have maximum 20 cron tasks each executing no more frequent than once a minute and the default queue has a throughput rate of 5 task invocations per second.

Any ideas if there is a way I could have more concurrent requests fetching URLs in an automated way?

like image 203
Gergely Orosz Avatar asked Mar 29 '26 19:03

Gergely Orosz


1 Answers

The taskqueue API allows 100 task invocations per second per queue with the following max active queues quota:

Free: 10 active queues (not including the default queue)

Billing: 100 active queues (not including the default queue)

With a single UrlFetch per task, multiplying [max number of active queues] * [max number of tasks invocation per second] * [60 seconds] you can reach these nominal Urlfetch calls rate:

Free: 11 * 100 * 60 = 66000 Urlfetch calls/minute

Billing: 101 * 100 * 60 = 606000 Urlfetch calls/minute

These rates are limited by the number of allowed UrlFetch per minute quota:

Free: 3,000 calls/minute

Billing: 32,000 calls/minute

As you can see, Taskqueue + Urlfetch APIs can be used effectively to suit your load testing need.

like image 183
systempuntoout Avatar answered Mar 31 '26 07:03

systempuntoout