J-Roel J-Roel -3 years ago 118
C# Question

C#.NET Bamboo and Regression/Integration Testing Architecture w/Selenium

This is broad in scope, so I hope I can narrow it down to a concise set of questions. I basically need to know the technologies required to setup a Continuous Integration Testing/Deployment per Bamboo in C#.

Our Architecture is currently:

  • Product: C#.NET/WCF -> Commit -> Build(Bamboo) -> Manually deploy to QA Server(AWS)

    Product is a multi-service architecture.

  • Testing: C#/Selenium/NUnit -> Run tests manually

    Testing solution is it's own repo setup with:

    1. Class Library Project (Page Object Model)

    2. Test Project with all of our Integration tests.

  • Team Communication: Agile with JIRA.

  • EDIT: this is all cloud based.

I need to adapt this into a Continuous Integration System:

  • Product: Commit -> Build -> Deploy to Testing Server.

  • Testing Solution: (If there's new commits then Commit -> Build) Run against Testing Server

    1. If Pass -> Deploy Product to QA server

    2. If fail -> create JIRA issue, notify developer.

Once I am at Bamboo, I have many plugins at my disposal... BUT, there are so many high level tutorials, videos, etc that talk about Jenkins, maven, Cucumber, etc, etc... I have no clue which setup will handle our architecture. And, are compatible with C#.NET, Selenium, etc.

  • What plugin(tool) can auto-deploy a multi-service architecture in c#.net/wcf?

  • What plugin works with our testing framework: C#.NET w/Selenium and NUnit?

  • What plugin(s) can run our testing framework AFTER the product has been deployed to the testing server? We are required to have at least parts of the multi-service architecture running to preform tests.

  • How do I utilize my Testing Framework in this architecture? Can it even be ran from Bamboo when a developer commits? And how do I tie this into the system to successfully re-deploy to another server if pass, or create an issue and send it back to the developer if fail.

What technology route do I need to take to accomplish this?

So far I have:
Bamboo, Maven, Cucumber to execute testing framework against the Testing server, Jenkins to handle parallel testing(no clue how that works), Maven to redeploy to QA on success, or Cucumber will notify through JIRA if testing fails.

There's just too many bits and pieces to make this work and none of the information on the web is precise enough for me to determine which route I should take!

Please share your wisdom!

Thank you so much in advance!

Answer Source

So, there is a HUGE amount of items that go into creating what I asked about above. There is also a lot of ways to go about accomplishing it. Here is a brief overview to help guide you along the same path.

DropBox of Tutorial
Gist of Tutorial

DISCLAIMER *Of course there are variations, security concerns you need to address for your own projects, and a number of un-noted concepts you will have to look up. This is just a quick guide with references to help

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download