How to Manage Mobile App Deployment in Continuous Testing E2E Mobile Test Automation? *
Two Approaches.
* This is a member-only article on Substack and will not be available on my Medium.
Mobile Test Automation Set up for Continuous Testing is far more complex than Web Test Automation.
In web test automation, the deployment of the web app is not the responsibility of test automation engineers. We get the scripts and run them against the fixed URL (of the test server).
However, in mobile (and desktop) test automation, we need to be mindful of the app installation process.
This raises two questions:
How does the build machine obtain the latest mobile app package file?
Note that there may be multiple build machines.How do the test scripts reference the app package file?
This article answers them, using BuildWise CT as an example.
Approach 1: Store the app within the test project, i.e. with the test scripts.
In the test script, we specify the location of the app in the appium options.
opts = {
caps: {
platformName: 'ios',
automationName: 'xcuitest',
platformVersion: platform_version,
deviceName: device_name,
app: app_file_path( File.join(File.dirname(__FILE__), "app", "tic-tac-toe.app.zip") ),
noReset: !should_reinstall_app # do not re-install APP, should be faster to start tests. Pre req: Agent is installed, app is installed. That can be done in app deployment test before running whole suite
},
appium_lib: {
server_url: "http://127.0.0.1:4723",
wait: 0.1,
},
}
In this approach, app deployment (for testing) simply means updating the app file (.zip, .ipa or .apk), and committing to the Git repository.
However, there is a potentially significant drawback: this approach could quickly bloat the Git repository, especially for an app still in development, as the app distribution file can be quite large.
In my opinion, this approach is best suited for demonstration purposes only.
Keep reading with a 7-day free trial
Subscribe to AgileWay’s Test Automation & Continuous Testing Blog to keep reading this post and get 7 days of free access to the full post archives.