Link to home
Create AccountLog in
Avatar of Bobby
BobbyFlag for United States of America

asked on

Need to automate full feature testing of our website

There arent enough of us to do the full testing we should do on new features we build for our website, plus to just make sure things keep on functioning as they should. We need to set up automated testing of all of our website features, like logging in, getting special pricing levels based on who you are, shipping API's functioning as they should, general website functionality etc. Is Selenium a good way to go? If so, can somebody please give me a bullet point list of how to get started and implemented? This is for a large website on LAMP stack. Thanks very much.
ASKER CERTIFIED SOLUTION
Avatar of Craig Kehler
Craig Kehler
Flag of United States of America image

Link to home
membership
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of Bobby

ASKER

Thanks very much. Would you just get the free cypress test runner, or also a cypress dashboard as well?
You can setup a "Seed" dashboard for free and then determine how much you need it for your Continuous Integration testing. At first I would focus on getting the tests running and then look more at reporting and integration after you get some proof of concepts in place. Their pricing seems pretty reasonable when you consider all the effort that can go into chasing down failures. :)
Avatar of Bobby

ASKER

So would I need to have our web host install Cypress on our Linux web server?
I'd suggest you take Craig's advice, a simple npm install cypress will save you many days of time mucking with Selenium, you can never get back. I haven't personally used cypress + docs suggest it's a well thought out Selenium upgrade.

You said, "So would I need to have our web host install Cypress on our Linux web server?"

Sigh... To imagine you can really setup + run a test harness... doing unit testing... without a dedicated server with root ssh access... I suppose this is possible + you'll likely hit many problems which will leave you stuck for days waiting on your hosting company.

To do unit testing, your likely first step will be to move onto dedicated machines + hire a good admin person.

If you're setting up dedicated machines for the first time, read over many of my other posts about using OVH to provision your hardware + using LXD to partition off various applications in bootable containers.
Avatar of Bobby

ASKER

David,

Thanks for the input... I do have ssh access on our dedicated server, but they do any root stuff. I was thinking it would be more like they would install Cypress, do any config that needed to be done in any .ini files, and then I'd be off and running, with occasional help needed from them for some structural need. Do you think that's untenable?
I think many of us are just used to having complete control of our servers and would hate having to wait on a 3rd party to make any changes. If you are making the move to automated testing, I'd highly recommend getting a dedicated test server. Not sure what you meant by "our dedicated server" if that is for the business or for the testing department specifically. AWS has basic Linux servers for as low as $3.50/month. :)
Avatar of Bobby

ASKER

We have 3 dedicated servers at Pair Networks... one is our sandbox, one is for staging so we can push code to it and have it tested by staff, the 3rd is our production server. I want to set up this automated testing stuff on our staging and live servers.

So I'm liking what I see with Cypress... since we have what we have, next step is to install it, correct? And it looks more front-end usable than back-end, so maybe something like PHPUnit for back-end stuff.
Correct.

Cypress - Front end, code requiring a browser.

PHPUnit - Back end, headless (no-browser) code.
That sounds like a good approach. Thanks for clarifying!

I'm a little hesitant on running automated browser testing on production if it can be avoided. We focus on making our staging environment identical to our production environment and a good deploy process, so the testing can all be performed on the staging environment with a few rare exceptions.

Hopefully things work out well with Cypress, it really looks promising.
Avatar of Bobby

ASKER

Thanks guys.
Avatar of Bobby

ASKER

Another quick 2 questions... what server path should each of these be installed to? We host our own Git but are migrating that main repo to Git Hub, if that makes a difference. Should each of these just be installed in the home dir and not in our individual user folders (which are watched by Git)?