Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Load testing LCCS

Avatar

Level 2

Does LCCS have built-in services or scripts to help with load testing? I saw elsewhere that "You can use DMS ActionScript API to develop your own tests in Flex." but we are looking for hundreds -> thousands of concurrents hitting (/ideally using) our app....

9 Replies

Avatar

Employee

What kind of load testing are you thinking of doing ?

The main problem with standard load testing is that it's hard to simulate real-time messaging (and real time A/V). One thing we do is to build apps that create multiple connections to a single room (you can get up to 200/300 connections in a FlashPlayer / AIR app depending on your desktop OS and hardware). You still need a relatively large number of clients to do some serious load testing, but this gives you a head start.

Avatar

Level 2

Hi Raff,

It would be nice to be able to do automated load-testing of a/v stuff but, as you mentioned, that seems pretty hard. Do you have any suggestions on how one might do this / any good services for this sort of thing?

Even if the real-time A/V load testing is impractical, it would be nice to be able to simulate basic user interaction in the form of real-time messaging (publishing simple items to LCCS). Have you guys managed to build test apps that can support on the order of 100 open connections to the room that periodically publish some item or another?

Still, a test application that just drops a bunch of 'users' into the userManager may still be useful for helping us test.

I imagine the test application you mentioned does something like sequentially create a bunch of ConnectSession instances?

Thanks,

Davis

Avatar

Level 2

Also, would it be possible for you to share that app with us please?

Avatar

Employee

Yes, as I said with a standard FlashPlayer / AIR app you should be able to create 200 to 300 connections (don't remember exactly, but I think AIR apps can support more connections than the equivalent Flash plugin).

The trick is to not use ConnectSessionContainer (that only lets you create one session) but use ConnectSession. You can still create a container with a bunch of LCCS visual components and when you instantiate the container you'll pass a new ConnectSession to use).

From the app point of view there is no difference if the sessions are all to the same room or separate room (it depends on what you want to test: capacity in a single room, or multiple instances of your application).

Avatar

Level 2

Could you share your code as an example? We are trying to load test

capacity within a single room. Thanks!

Josh

Avatar

Employee

I don't have any code handy. Our test are more complicated than you would need and right now we don't have time to clean them up.

Again, it's pretty simple. If all you care is logging in (and don't want to display anything) just create an an array and in a loop do something like:

var list:Array();

for (var i:int = 0; i < 100; i++) {

var c:ConnectSession = new ConnectSession();

// set the roomURL

// set the authenticator

c.login();

list.push(c);

}

If you want to know what's going on you can add some listeners for the connection SynchronizationChange event and print out if they are logging in or not.

Avatar

Level 2

Got it, thanks for the quick response, sounds simple enough. Didn't know if

you guys had a test suite for posting messages/turning on cams etc

Avatar

Employee

Hi Josh,

We did build an internal test AIR app that would connect 100-200 sessions per room, and open audio and camera streams to drive usage. Infact we did something what Raff mentioned in his post.

A couple of instances of the app is all we needed to drive usage, and stress test our clients.

Also as Raff mentioned, AIR app's might be a better idea to write a test app like that.

Thanks

Arun

PS: Just returned from the vacation