Jitsi Malleus POSTing to /session -> Code 405

Hello,

I found out you could use Jitsi-meet-torture with the malleus test to produce traffic load on your jitsi instance.
To start the test I use the following command:
./scripts/malleus.sh --conferences=1 --participants=4 --senders=2 --audio-senders=2 --duration=30 --room-name-prefix=jitsihammertest --hub-url=https://jitsi.mydomain.tld
This errors out on me with the following output:

[INFO] Running TestSuite
[1] testsToRun=[MalleusJitsificus]
[1] testsToExclude=[]
[1] testsToInclude=[]
[1] ---=== Testing MalleusJitsificus ===---
will run with:
conferences=1
participants=4
senders=2
audio senders=2
duration=30000ms
room_name_prefix=jitsihammertest
enable_p2p=true
regions=null
[13] Start testMain.
[15] No participant type specified for prefix: web.participant2, will use Chrome...
[17] No participant type specified for prefix: web.participant4, will use Chrome...
[14] No participant type specified for prefix: web.participant1, will use Chrome...
[16] No participant type specified for prefix: web.participant3, will use Chrome...
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "Thread-2" org.openqa.selenium.WebDriverException: Unable to parse remote response: <html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/1.14.2</center>
</body>
</html>

        at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:115)
        at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
        at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
        at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
        at org.jitsi.meet.test.web.WebParticipantFactory.startWebDriver(WebParticipantFactory.java:306)
        at org.jitsi.meet.test.web.WebParticipantFactory.doCreateParticipant(WebParticipantFactory.java:102)
        at org.jitsi.meet.test.web.WebParticipantFactory.doCreateParticipant(WebParticipantFactory.java:40)
        at org.jitsi.meet.test.base.ParticipantFactory.createParticipant(ParticipantFactory.java:35)
        at org.jitsi.meet.test.base.ParticipantHelper.createParticipant(ParticipantHelper.java:148)
        at org.jitsi.meet.test.MalleusJitsificus.lambda$runAsync$0(MalleusJitsificus.java:188)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.openqa.selenium.json.JsonException: Unable to determine type from: <. Last 1 characters read: <
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'somehostname', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.19.0-6-amd64', java.version: '11.0.6'
Driver info: driver.version: RemoteWebDriver
        at org.openqa.selenium.json.JsonInput.peek(JsonInput.java:122)
        at org.openqa.selenium.json.JsonTypeCoercer.lambda$null$6(JsonTypeCoercer.java:140)
        at org.openqa.selenium.json.JsonTypeCoercer.coerce(JsonTypeCoercer.java:126)
        at org.openqa.selenium.json.Json.toType(Json.java:69)
        at org.openqa.selenium.json.Json.toType(Json.java:55)
        at org.openqa.selenium.json.Json.toType(Json.java:50)
        at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:112)
        ... 13 more

and repeat that three more times for the other participants.
Then I took a look at the nginx access logs to see what it tries to access:
"POST /session HTTP/1.1" 405 184 "-" "selenium/3.141.59 (java unix)" which results in nginx throwing a 405

What am I missing here? Did I forget some important parameter? Does the regions have to be set to some value?
And what is the difference between hub_url and instance_url? does the instance_url have to be set to some value as well?

Thank you very much for your help in advance!

Ok got it figured out with some more digging… I am now running a selenium cluster on a different machine, that is what the hub_url points to.
No more errors, load testing working perfectly!

Hi,
Could you please share the steps to reproduce the load test, i’m also try to use jitsi-meet-torture, but it always end this error message:
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20:test (default-test) on project jitsi-meet-torture: There are test failures.
Do I have to install selenium cluster? Could you please share the steps?

Thanks a lot

Hi,


Here is my little writeup on that

Hey, can you please help me out?

I’m still having some issues on tests.