This plugin integrates [SOASTA
CloudTest](http://www.soasta.com/products/cloudtest/) and [SOASTA
TouchTest](http://www.soasta.com/products/touchtest/) features into
Jenkins.

The CloudTest Jenkins plugin provides the ability to

-   Easily run the MakeAppTouchTestable utility on an iOS or Android
    project
-   Silently install an iOS app on a connected device
-   Play CloudTest compositions and include the output in the build's
    test results
-   Launch and tear down grids, results databases, and test
    environments.

## Prerequisites

The CloudTest plug-in requires Jenkins 1.580.1 or later.

## Global Configuration Options

Before using the plug-in, you will need to provide the CloudTest server
information, in the "Manage Jenkins" -\> "Configure System" page. This
includes the CloudTest URL and a set of credentials. *We recommend
creating a dedicated CloudTest account for Jenkins to use.*

![](docs/images/Configure_System_Screen_Shot.png)

The CloudTest password is encrypted before saving it to disk. It is also
masked (e.g. "\*\*\*\*") in all output generated during builds.

## Build Steps

The plug-in adds the following new build steps:

#### Make App TouchTestable

Adds the TouchTest Driver library to your app's source code. Typically
this build step is inserted right before the build step that compiles
the app's code (e.g. before the Xcode build step for iOS, or before the
"Invoke Ant" build step for Android).

#### Install iOS App on Device

Silently installs an IPA file on one or more attached iOS devices. This
ensures that your tests run against the latest version of your app.

**Note**: there is no Android version of this build step, because the
Android SDK already provides this functionality ("adb install").

#### Play Composition

Executes a CloudTest composition, and saves the output in the build's
test results. You can include this build step multiple times if there
are multiple compositions in your test suite.

#### Start Grid

Starts the grid with the specified CloudTest server, and name, and
ensures that the object reaches a ready status. In the event that the
grid fails to reach a ready status, it will be torn down and the build
step will fail.

#### Stop Grid

Terminates the grid, and ensures that the grid reaches a terminated
status. In the event that the grid fails to reach a terminated status,
the build step will fail.

#### Start RSDB

Starts the RSDB with the specified CloudTest server, and name, and
ensures that the RSDB reaches a ready status. In the event that the RSDB
fails to reach a ready status, it will be torn down and the build step
will fail.

#### Stop RSDB

Terminates the RSDB, and ensures that the RSDB reaches a terminated
status. In the event that the grid fails to reach a terminated status,
the build step will fail.

#### Test Environments

Note that for test environments you will need to set up a CloudTest
Server to point to CloudTest Manager
<https://cloudtestmanager.soasta.com/concerto/>.

#### Start Test Environment

Starts the test environment with the specified CloudTest server (Note
this MUST be CTM), and name, and ensures that the object reaches a ready
status. In the event that the test environment fails to reach a ready
status, it will be torn down and the build step will fail.

#### Stop Test Environment

Terminates the test environment, and ensures that the test environment
reaches a terminated status. In the event that the test environment
fails to reach a terminated status, the build step will fail.

#### Wake Up iOS Device

Wakes up one or more attached iOS devices, and opens Mobile Safari to
the most recently-viewed page (e.g. TouchTest Agent). This can
optionally be used at the beginning of a build, to "prep" the devices
for testing.

**Note:** There is no Android version of this build step, because the
Android SDK already provides this functionality.

#### Reboot iOS Device

Reboots one or more attached iOS devices. This can optionally be used at
the end of a build, to "reset" for the next one.

**Note**: There is no Android version of this build step, because the
Android SDK already provides this functionality ("adb reboot").

## Changelog

### Version 2.25 (Released June 13, 2016)

-   Added support for CloudTest API tokens. See [Section on creating api
    tokens](http://cloudlink.soasta.com/t5/CloudTest-Knowledge-Base/Single-Sign-On-SSO/ta-p/46186).

### Version 2.24 (Released June 2, 2016)

-   Fixed null pointer exception during HTTP client creation.

### Version 2.23 (Released May 25, 2016)

-   Added support for client side certificates to communicate with a
    cloud server.
-   Manage Jenkins -\> Configure System -\> CloudTest Servers -\>
    Advanced
-   Enter the full path of the keystore file (.jks)
-   If no password is required leave blank.

### Version 2.22 (Released February 26, 2016)

-   Grid management build, and post-build steps (Start, Stop)
-   Test environment management build, and post-build steps (Start,
    Stop)
-   Results database (RSDB) management build, and post-build steps
    (Start, Stop)
-   Fixed test connection not working with recent versions of Cloud Test
-   The CloudTest plugin will now respect the 'No Proxy Host' list
    (<https://issues.jenkins-ci.org/browse/JENKINS-30907>)
-   Fixed long timeout issue when checking for build number of a
    un-reachable CloudTest server

### Version 2.21 (Released September 21, 2015)

-   Update Jenkins version to 1.580.1

### Version 2.20 (released July 20, 2014)

-   "Play Composition(s)" build step now supports three new thresholds -
    "Min Duration”, "Max Duration” and "Average Duration".

### Version 2.19 (released July 18, 2014)

-   "Play Composition(s)" build step now includes the ability to
    generate CSV output.

### Version 2.18 (released July 9, 2014)

-   Results with no content no longer throw a NullPointerException.
    Instead, an appropriate error message will be displayed in Console
    and in Test Result.

### Version 2.17 (released July 7, 2014)

-   "Play Composition(s)" build step now has support for transaction
    thresholds.

### Version 2.16 (released June 11, 2014)

-   Display full clip path for validation messages (eg. A nested clip
    will have all clips on its path output, not just its clip name).
-   Blocks cross-site scripting in output of test results.

### **Version 2.15 (released May 13, 2014)**

-   "Play Composition(s)" build step no longer outputs duplicate
    validation clip names. Clip name formatting has changed to be on
    individual lines and validation messages belonging to the clip are
    now indented.

### Version 2.14 (released May 5, 2014)

-   Added clip name to "Play Composition(s)" build step's validation
    output.

### Version 2.13 (released April 7, 2014)

-   Dynamic Instrumentation support for "MakeAppTouchTestable" build
    step.
-   Additional JVM options support for "MakeAppTouchTestable" build
    step.

*NOTE: The "jump" in version numbers from 2.8 to 2.13 is due to
technical issues encountered while attempting to release the new version
of the plug-in.  There were no releases between 2.8 and 2.13.*

### Version 2.8 (released February 26, 2014)

-   Null Junit Results are now prevented from triggering bad HTML output
    in Jenkins.

### Version 2.7 (released December 19, 2013)

-   Fixed "403 Forbidden" errors when downloading files using CloudTest
    plugin.

### Version 2.6 (released November 22, 2013)

-   Fixed NullPointerException seen when additional options are not
    provided for the "Play Composition(s)" build step.

### Version 2.5 (released November 08, 2013)

-   Issue where CloudTest servers were not being detected correctly has
    been resolved.
-   New "Additional Options" input for the "Play Composition(s)" build
    step.  Any values entered here will be passed directly to SCommand.
-   Server configurations are now managed using a unique ID and friendly
    name, instead of being bound to the URL.  This means that you can
    use multiple CloudTest accounts with a single server (e.g. for
    concurrent builds), and can change the URL for a server
    configuration without affecting existing jobs.

### Version 2.4 (released June 25, 2013)

-   The "Run App in iOS Simulator" build step now works correctly when
    only a single CloudTest server has been configured.

### Version 2.3 (released June 4, 2013)

-   The "Play Composition" build step now works correctly on Windows
    ([JENKINS-17986](https://issues.jenkins-ci.org/browse/JENKINS-17986)).
-   Improved error message when the plug-in fails to determine the
    CloudTest server's build number.

### Version 2.2 (released May 14, 2013)

-   The "Run App in iOS Simulator" build step now automatically launches
    TouchTest Agent on the simulator.
-   Internal changes in preparation for next major CloudTest release.

### Version 2.1 (released April 8, 2013)

-   SCommand invocations now "inherit" the Jenkins proxy settings.
-   File and directory validations no longer show an error when the path
    includes a variable.

### Version 2.0 (released March 15, 2013)

-   Initial release.