webrtc / KITE

KITE is a test engine designed to test WebRTC interoperability across browsers
Apache License 2.0
468 stars 126 forks source link

KITE Jitsi Test for checking the fake video fails for more than 2 participant in the meeting. #140

Open Richab23 opened 4 years ago

Richab23 commented 4 years ago

Hi,

I have one query. I am running Kite Jitsi sample test with fake video file.(.y4m format), The test is passing for 2 participants in the meeting room. But when i increase the numbers of particpants inthe room, it fails. Here is my config file: "tests": [ { "name": "JitsiTutorial Test %ts", "tupleSize": 2, "description": "JitsiTutorial test description", "testImpl": "org.webrtc.kite.jitsitutorial.KiteJitsiTutorialTest", "payload" : { "url": "https://meet.jit.si/", "rooms": ["csx3bbaa166" , "abqnsq", "uqba", "csx3bb", "09wdca"], "usersPerRoom": 5, "testTimeout": 2000, "getStats" : { "enabled": true, "statsCollectionTime": 5, "statsCollectionInterval": 5, "peerConnections": ["window.pc[0]"], "selectedStats" : ["inbound-rtp", "outbound-rtp"] } } } ], "clients": [ { "browserName": "chrome", "platform": "localhost", "useFakeMedia": true, "video": { "directory": "C:\Users\richa_b\Desktop\Videos\", "filename": "waterfall_cif", "duration": "00:15:00", "type": "Video" }, "_audio": { "directory": "C:\Users\richa_b\Desktop\Videos\", "filename": "Welcome", "duration": "00:15:00", "type": "Audio" } } ] }

The error:

Error I tried increasing the timeout value also. But still getting the same error. And also, how to check the Kite-Framework logs?

namvuCosmo commented 4 years ago

Hello,

Thanks for your report. It was a mistake on my end, I initiated the room manager before the tuple size, so it got the default value of 2.

I'm pushing the fix to KITE repository. I also made some modification to the Jitsi test regarding the video check.

For future reference, if you want to change the number of user in a room, there are 2 ways, either with preconfigured room name list or without it:

"rooms": ["csx3bbaa166" , "abqnsq", "uqba", "csx3bb", "09wdca"],
"usersPerRoom": 5,

The tupleSize value will decide the total number of webdrivers of the test. The usersPerRoom will decide the number of user in each room of the rooms array.

Without this rooms array, the test will generate a random room id and put every one in the same room.

If you want to use the rooms array, please make sure that the usersPerRoom value is smaller than the tupleSize. Users will be distributed to each room in order of room. Meaning that 1st room will be filled with usersPerRoom users, then the 2nd room will be filled. For example:

Richab23 commented 4 years ago

Thanks for your explanation. Now, i have understood. Can you please also suggest on where to check the Kite-Framework logs? Means if i put any new logger, i am not able to see it. I have compiled the code of Framework.

namvuCosmo commented 4 years ago

Where did you put the logger? All logs should be in the folder "HOME/logs" with HOME being the folder where you run the command to launch the test.

Richab23 commented 4 years ago

Ok got it now. The logs folder is there in my test HOME directory. I have put the logger statement in the Kite-Framework classes(For eg: StatsUtil.java). Thanks a lot.

nemani commented 4 years ago

I am still facing this issue, even after using the latest. @Richab23 does it work for you?

namvuCosmo commented 4 years ago

Can you please upload your config file @nemaniarjun

Richab23 commented 4 years ago

Hi @nemaniarjun, My issue was solved after the latest update. i am now able to test for 5 participants at a time. i can see the video of 5 participants in a room. Did you check the settings for tuple size and usersPerRoom as @namvuCosmo has suggested in the config file? However, i am not able to increase the test for more participants. @namvuCosmo , is there any limit for no. of users in a room? image

Is this maxInstances value fixed by default??

namvuCosmo commented 4 years ago

It's the default value we use to set up the local grid. If you have more instances available in your grid, you can use more.

Maybe you can look into how to setup a selenium grid, and do a custom grid with more instances. I wrote this wiki page a while ago, some of the info might not be correct anymore (mostly for safari and edge), but you can take a look if you want.

nemani commented 4 years ago
{
  "type": 1,
  "name": "Jitsi Test",
  "permute": false,
  "grids": [
    {
      "type": "local",
      "url": "http://localhost:4444/wd/hub"
    }
  ],
  "tests": [
    {
      "name": "Jitsi Test %ts",
      "description": "Jitsi Test",
      "tupleSize": 5,
      "testImpl": "io.cosmosoftware.kite.jitsi.KiteJitsiTest",
      "payload": {
        "url": "https://meet.jit.si/",
        "rooms": ["edvie-1", "edvie-2", "edvie-3", "edvie-4"],
        "usersPerRoom": 3,
        "testTimeout": 20,
        "meetingDuration": 20,
        "takeScreenshotForEachTest": true,
        "getStats" : {
          "enabled": true,
          "statsCollectionTime": 2,
          "statsCollectionInterval": 1,
          "peerConnections": ["window.pc[0]"],
          "selectedStats" : ["inbound-rtp", "outbound-rtp", "candidate-pair"]
        }
      }
    }
  ],
  "clients": [
    {
      "browserName": "chrome",
      "platform": "localhost",
      "focus": true,
      "headless": true
    }
  ]
}
Richab23 commented 4 years ago

@namvuCosmo Thanks. I am able to increase the instances now.

nemani commented 4 years ago

Hey @namvuCosmo any hints why its not working for me ?

Thanks for your help!

namvuCosmo commented 4 years ago

@nemani Sorry for the super late reply, but I can't find any thing wrong with your config file. It should work for you as well.

Prateekmaithil19 commented 3 years ago

@namvuCosmo How we can run the script on Browserstack for parallel distribution testing?

namvuCosmo commented 3 years ago

@Prateekmaithil19 Hi,

It's been a long time we haven't done test with BrowserStack due to the limited concurrent session of the accounts. I'll have to look into this again, but I think most likely our implementation for BrowserStack wouldn't work properly at the moment.