Forum Discussion

nickolivo's avatar
12 years ago

Are you using Jenkins?

I'd like to get a feel for who's using Jenkins with TestComplete. If you are, would you mind sounding off here and letting me know how your experience has been? Any gotchas or hiccups that you've run into?



Thanks!



Nick O.

4 Replies

  • gaccardo's avatar
    gaccardo
    New Contributor
    We've been using TestComplete and Jenkins/Hudson for 3 years. Overall, it is a

    fairly good match.  Jenkins is stable and easy to use.  We've created a TestComplete

    framework that produces nUnit output for test cases, so they can be processed by

    Jenkins.  This step is vital if you want to take full advantage of Jenkins.



    There are two downsides to Jenkins.  One, there are numerous jobs that set up

    environments and "glue together" various pieces of testing.  When others want

    to know the status of testing, it is hard to remove these jobs from consideration

    and to aggreate tests run in multiple jobs into one simple view.  For this, we created

    a results database.  Now, automation folks use Jenkins, but everyone else looks

    at an external dashboard.



    The main downside is that Jenkins is only good when there are simple relations between

    test suites/test cases.  For example, you have to run installation on a server before

    running tests on multiple clients.  We are now facing much more complicated workflows

    spread across multiple environments, with numerous interactions among all of the test

    cases.  Doing this with Jenkins will not be practical.



    Regards,

    G
  • I've used Jenkins in the past (and still do) for the existing QTP tests that we have.  I've not been really successful porting over the TC scripts to Jenkins.  One upside that I've seen is that I can run the entire project (instead of a batch job in Jenkins) or I can run each individual test.



    One downside is that I *think* that you need one .bat script for each think you want to run from TC (see above for batch and/or each test).  Would be really great if you could pass parameters on the command-line to TC.  Again, I'm probably wrong, I haven't had much time to look at it.  When I get a better handle on TC, I will absolutely be using Jenkins.
  • You can create jobs in Jenkins that call the TextExecute command line and pass parameters directly. No need to call batch scripts.



    For instance a Jenkins job to update the test config from SVN, then run database tests:




    cmd /K svn update C:\Testing\TestComplete



    testexecute C:\Testing\TestComplete\Acme.pjs "%JOB_NAME%" Database %NODE_NAME% /run /project:Acme /unit:Control /routine:RemoteTest /exit /ns /SilentMode



    TestExecute will be aware of all the parameters passed in the command line.



    Provided you can work out the correct locations, you can build Log event handlers to convert log messages to a Junit/XML format that Jenkins can understand.

     

    You can also address the Jenkins API directly by creating an http client in TestComplete, giving you full access to job results for aggregation and reporting, etc.