4444 Conflict between Kerberos and Selenium?

Don't have time to really research this any further, but I think I found out why I couldn't start Selenium today using my normal command line invocation. I was getting this when I tried to start it:

java.net.BindException: Address already in use

Hmmm... hadn't started it before sitting down for work.... so.... what could be the issue? How did port 4444 get bound already? A little...

"nmap locahost"

...yields:

PORT STATE SERVICE 4444/tcp open krb524

krb524?!? I don't remember firing that up. What is it? Well, if you do a search for "krb524 4444," you'll quickly see that "krb524" has to do with Kerberos and it seems that Kerberos is using port 4444.

I'm on a Cisco VPN. Does the Cisco VPN use Kerberos? I don't know, but it's plausible enough for me to chalk it up to that and pass a new port (something clever like -p 4445) to the Selenium JAR and whoomp - as they say - there it is.

Gold Medal in QA

Today, after a week battling Perl, Java, Selenium, crontabs, virtual roots and vm's, I finally have a fairly decent working solution for automated regression testing.

Where did it start?

I was handed a legacy web app in Perl which came with *NO* testing whatsoever and asked to add some new features. How were we supposed to know if a new feature broke any old ones? We'd hear it from users.

That wasn't a good situation so I set about to bolt on some regression testing. It took longer than anticipated but it's good for the overall health of the app so I can rationalize the time spent.

I had previously used Selenium RC for a Catalyst project so I knew the power of Selenium and decided to go with it as part of a toolkit for my test suite.

Where has it ended?

In the last week, I've been able to...

  • Brush up on my Perl and 'NIX IPC skills only to wind up wrapping the Selenium RC (Java) server with some Perl for starting and stopping it based on a PID file
  • Make use of the chrome experimental browser to get around cross-site permission issues (Permission denied to get property Location.href)
  • Configure a crontab to autostart and run correctly in a virtual root, making it possible to automate the testing process and send the output of prove statements to myself on a periodic basis.

Does Michael Phelps feel this good?