newpo wrote:Hey, eValid. I've got this website that lets a user select a video to download and then it downloads -- actually, streams it over. What I want to do is find out how much slowdown there is when there are dozens or hundreds of users doing this.
Any suggestions?
To begin with, one thing to note is that the delivery of video content to a display of some kind in a web page is not done synchronously. That is, the individual pieces of the video are sent via TCP/IP HTTP protocol, so while they may be sent synchronously, they don't arrive that way. But as a viewer you don't really notes that because the typical video player spends a few seconds "queuing" or "spooling" or "getting ready" before it starts to play. What YOU see of course appears to be synchronous because by the time you are looking at the images all of the parts have arrived (and this includes a certain percentage of "resends" that HTTP normally takes).
Secondly, the images you see on the screen are VERY difficult to analyze because they are generated at a frame rate of maybe 30 frames/second (or 24 frames/second in some cases), and this means they they are uploaded VERY fast relative to the times eValid can meaure -- about 1.0 msec in general.
So you have a situation in which eValid -- becuase it is an instrumented browser and because it operates at a high level -- probalby cannot resolve events finely enough for a useful "in the middle of the movie" timing to be meaningful.
BUT, eValid can certainly run multiple instances (copies) that are all downloading the same video and this certainly will put a big load on the server (as well as on the internet paths between them). The only issue is,
how to you time how long each video takes?
That turns out to be easy enough if recognize that the last image of a video -- the one that says "The End" --is usually constant. Becuause IT is not moving you can time when that image arrives (that is, when the image updating stops) using either screen checksum values or DOM internal values.
So the suggestion here is, for eValid, a fairly standard one: (1) devise a test that times how long the movie takes to finish playing; and (2) run multiple copies of eValid in parallel (i.e. in LoadTest mode) and study how much that total time slows down as a function of load.
-The eValid Team