
What is Appium?
What is Appium?
What is Appium?Appium is a mobile UI testing framework supporting cross-platform testing of native, hybrid, and mobile-web apps for iOS and Android. Appium enables you to execute your tests on mobile device irrespective of the device OS. This is because the framework is basically a wrapper that translates Selenium Webdriver commands into UIAutomation (iOS) or UIAutomator (Android) commands depending on the device type.
What languages can I use to write TestScripts?
What languages can I use to write TestScripts?
What languages can I use to write TestScripts?To create TestScripts, you can use any language that the Selenium WebDriver dependency is available for. This includes C#, Closure, Java, JavaScript with Node.js, Objective-C, Perl, Python, Ruby.
Do I need to care about the Appium Server depending on the language I wrote my tests with?
Do I need to care about the Appium Server depending on the language I wrote my tests with?
Do I need to care about the Appium Server depending on the language I wrote my tests with?No, the server is exactly the same irrespective of the scripting language. This is because the TestScript implements the Selenium WebDriver and communicates with Appium Server via JSON Wire Protocol (a standardized JSON over HTTP protocol).
Where would the Appium server be running?
Where would the Appium server be running?
Where would the Appium server be running?A great advantage of using Appium is the HTTP communication (see the question above) between TestScript and Appium Server, allowing the server to run on a different machine than the TestScript is run on. This allows us to take care of the Appium server side and maintain the devices in the cloud, while you can run your TestScripts locally from your machine.
How is Appium different than other frameworks available at BitBar Testing running?
How is Appium different than other frameworks available at BitBar Testing running?
How is Appium different than other frameworks available at BitBar Testing running?Appium TestScripts can either be run as “Live” or uploaded for the cloud to run. This means that you do not need to upload the TestScript along with your app to the Cloud. Instead, you can run the script locally from your own machine, and on receiving a request, the Cloud reserves the requested device and creates an Appium session for it.
Why are most of my Test Cases excluded when executing a Suite of tests?
Why are most of my Test Cases excluded when executing a Suite of tests?
Why are most of my Test Cases excluded when executing a Suite of tests?There are some best practices to know when writing Appium tests. The test cases of a test suite should re-use the same webdriver between the tests and not recreate a new session every time.
In BitBar Testing, after each test case, with a closed Appium session, the device under test is put offline for automatic cleanup. This will cause the following tests of the test suite to fail.
Instead, a test suite should re-use the first webdriver session from the first test case in all the test cases or add a proper wait time between each test case, poll our API and wait until the device becomes available again. The app can be closed and restarted without having to close the Appium webdriver session:
# close current app
driver.closeApp()
# re-launch the app
driver.launchApp()
# resets the app ~ re-install
driver.resetApp()
Can I use the same TestScript for both my iOS and Android apps?
Can I use the same TestScript for both my iOS and Android apps?
Can I use the same TestScript for both my iOS and Android apps?Although the TestScripts will be written in the same language and will be almost similar, you would still need to prepare separate TestScripts for iOS and Android, or at least two flavours of the TestScript. This is because of the difference between UI elements on the two platforms. Sometimes, the difference is as subtle as having to use different array indices.
iOS:
buttons = driver.find_elements_by_tag_name('button')
buttons[0].click()
Android:
buttons = driver.find_elements_by_tag_name('button')
buttons[1].click()
Can I use a script to test my app on multiple devices simultaneously?
Can I use a script to test my app on multiple devices simultaneously?
Can I use a script to test my app on multiple devices simultaneously?Yes, this is practically possible. Since the TestScript communicates live with the Appium server (which is instantiated for a particular device), it cannot communicate with multiple servers simultaneously, or control multiple devices at the same time. You can, however, fire multiple instances of the TestScript, each targeting a separate device. You can find more information on running parallel Appium tests in BitBar Testing.
Can I also use the same method to test my app on multiple iOS devices?
Can I also use the same method to test my app on multiple iOS devices?
Can I also use the same method to test my app on multiple iOS devices?Yes. On your localhost, this is not possible because Appium uses native Instruments, which is allowed for only one of the devices connected to a Mac at a given time. In BitBar Testing, however, you can run your tests on multiple iOS devices at the same time.
Where do I get configuration info about Appium servers running in BitBar Testing?
Where do I get configuration info about Appium servers running in BitBar Testing?
Where do I get configuration info about Appium servers running in BitBar Testing?You can check basic configurations at https://appium.bitbar.com/info.
How can I get screenshots to my cloud project?
How can I get screenshots to my cloud project?
How can I get screenshots to my cloud project?Appium test runs’ screenshots are stored under your device run in the Cloud. If running a client-side test run, screenshots are stored on your local machine where you are executing the Appium test scripts from.
For a working Chrome up to date examples (in Python) in our Github repository, see testdroid_chrome.py. This repository also has examples for native or hybrid mobile app testing using Appium.
What version of Appium Server is running in BitBar Testing?
What version of Appium Server is running in BitBar Testing?
What version of Appium Server is running in BitBar Testing?There should always be the latest ‘tested’ Appium version running in the Cloud. This means that although there may be a newer release available, it might not yet be available in the Cloud. The current default version is Appium 1.21 for Android and iOS runs.
What is the difference between testdroid_project
and testdroid_testrun
?
What is the difference between testdroid_project
and testdroid_testrun
?
What is the difference between testdroid_project
and testdroid_testrun
?Your test runs are categorized into ‘Project’ and ‘Test-Run’ in the Cloud. A Project typically has multiple Test-Runs in it. The Project name is unique. Running multiple TestScripts using the same Project name puts the Test-Runs under the same Project.
Can I upload a new .ipa/.apk file before each test run?
Can I upload a new .ipa/.apk file before each test run?
Can I upload a new .ipa/.apk file before each test run?You can upload a new .ipa/.apk application before each Test-Run, but using the same Project for both iOS and Android Test-Runs is not allowed (also see the question above) or recommended.
What is the maximum app size I can upload?
What is the maximum app size I can upload?
What is the maximum app size I can upload?The maximum size of the app you can upload is 500 MB.
Why is the Appium test waiting for the device and finally times out?
Why does the Appium test fail with a timeout?
Why does the Appium test fail with a timeout?
Why does the Appium test fail with a timeout?BitBar Testing has a test run time limit set to 10 minutes. This limit is applicable to Trial Plan users. If you need to run longer tests, please upgrade your subscription.
Why am I getting the 403 error when trying to upload an application (apk, ipa)?
Why am I getting the 403 error when trying to upload an application (apk, ipa)?
Why am I getting the 403 error when trying to upload an application (apk, ipa)?Check your proxy settings. You should be able to reach http://appium.bitbar.com/info.
Why am I getting the “Project <…> cannot be used for type APPIUM_ANDROID” error?
Why am I getting the “Project <…> cannot be used for type APPIUM_ANDROID” error?
Why am I getting the “Project <…> cannot be used for type APPIUM_ANDROID” error?Appium projects must be either “Appium Android” or “Appium iOS” by project type in BitBar Testing. The simplest way is to let BitBar Testing create the project for you. This can be done easily by using a new project name in your Appium script.
Where can I find an example of how to test my “native application” or “hybrid application” or “a mobile website on Android Chrome browses”?
Where can I find an example of how to test my “native application” or “hybrid application” or “a mobile website on Android Chrome browses”?
Where can I find an example of how to test my “native application” or “hybrid application” or “a mobile website on Android Chrome browses”?Examples written in Java, Python, and Ruby are available in BitBar repo at https://github.com/bitbar/bitbar-samples.
Do you support Appium with TestNG, Ruby, or C#?
Do you support Appium with TestNG, Ruby, or C#?
Do you support Appium with TestNG, Ruby, or C#?Yes. For a C# server side, support through Mono is coming soon.
What versions of Appium does BitBar Testing support?
What versions of Appium does BitBar Testing support?
What versions of Appium does BitBar Testing support?The default Appium version is 1.21 for server and client-side runs. With Android server-side runs, it is possible to use an older version (1.10 up to 1.22).
See Also
Appium Support