I have seen some articles and questions regarding Automation through Appium on multiple Android devices. I know that for Appium to work on multiple devices we need to give the device id to udid in the JAVA code.
what I really want to understand is how will Appium perform the same script on multiple devices? What if a command fails on one device and does not fail on the other device? will there be multiple servers running?
Any help will be appreciated. Thank you :)
Its Possible! But there is no direct approach to do it. We have to start Appium server in different ports(Example: 4723, 4725,...). We have to get the udid of multiple devices connected to the system & have to set the capability.
If a command fails on one device it won't give any effect to other device. Since, We have 2 appium servers running.
Most of the time same test will not fail on some other devices. Some reasons to fail on same platform and different devices might be size of devices and different device behavior in different manufactures.
If you write your test wisely keeping everything in mind then you will have very less test failure because of device.
Also to launch test on multiple device either you can launch multiple appium server or you can launch one server and create multiple sessions of it.
Test failure in one device will not affect test running in another device. As these are using different servers or sessions.
Related
Hi need list of trusted website/app/platform where i can test in a reliable way((should be confident after using the platform)) on ios and android devices using selenium ,dont want to do test on actual physical devices need simulator for the following reasons firstly with the cost involved and secondly dont want to maintain the OS versions.
I came across this resource but have no idea about any of the listed ones there.
https://www.guru99.com/top-10-cross-browser-testing-tools.html
I'm wondering if anyone knows a load testing tool/platform, which allows us to upload our Android application, configure it, and then spawn like thousands of virtual instances so we can see how our API holds.
I've been looking at AWS Device Farm, although it seems like that doesn't support to spawn multiple instances of a single device type. Lots of tools offer to test an app on different device types, but that's not what I'm interested in as we have our product running on a fixed device type.
Any thoughts?
You can use i.e. Apache JMeter for this.
Record your mobile application traffic via JMeter's built-in proxy server or through Mobile Recorder service
Configure resulting test script to add anticipated number of users
Run the test and analyse results.
Background
the monkeyRunner (and monkey) is a nice tool to test out apps.
I have an idea of using it (or something similar) to record & emulate touches (and keys).
The problem
The tool itself has some disadvantages:
needs to be run on an emulator or on a device that is connected to a PC.
needs adb.
it needs that you type it exactly what to do , which requires a lot of patience and trial&error in order to find out what to write.
has limitations on how many devices to run (since it needs to be connected to a PC).
needs customization of each device (where to put the touches, for example).
not intuitive, especially for QA teams.
The question
Is it possible to use this tool in order to record touches (and keys) and later emulate them, even without using a computer? Maybe using a rooted device?
There are some advantages to having this ability:
It can help running tests on the go, and help QA teams to do tests in an easier way. You could have a tool that help you record macros for tests that will run on each new version, and some tests that are a bit random, ...
It can help making cool apps for power users, for example in order to help other people, remote control, macros,...
since you don't have to connect the device to the computer, you can run the macros on your app on multiple devices simultaneously .
I'm making an app for Android in Eclipse. Currently the app works fine on my Droid Incredible, but it does not work at all on my friends' model which I emailed the apk to. Is there a way for me to emulate different phone models to run the app on without physically having them?
Thanks
The short answer is no. The long answer is that emulators are never perfect as they don't simulate the electronics of the devices but the logic in them. You should run automated tests on your device and if possible in physical target devices. There's a service, similar to vnc, i didn't used this service nor do i recommend it, but it exists, it's called deviceanywhere , google it, it offers remote testing on real hardware, but of course it's a paid service.
Another way to test the application is to give a beta version to android forums and get feedback from users, and don't forget to include internal tests and logging.
I would like to simulate a small cluster of Android devices either on one laptop (worst-case), or on several machines on a private network. This is for testing communications and process migration on Android.
Is there a safe way to identify and launch a particular emulator from a given application under Eclipse? I have a recent Eclipse/Java/ADT setup and I'm using the a variety of tutorials from Mark Murphy, Meier, and Abelson.
Running multiple emulator instances from the Android documentation states that you can run multiple instances concurrently.
How to create two or multiple instances of emulator on Windows or on Linux shows that instances can be created that are using different ports.
You can also start multiple emulators in Eclipse from the Device Management tab. The port number will be listed next to the name of the virtual device. For instance, my-emulator-name (emulator-5556).
I have not personally tried connecting to multiple instances running on different machines but it appears to be possible. The trick is to redirect requests to the host machine to the emulator. You can do this using "adb forward" or "redir add" from the console.
For more information, see Emulator Networking in the Android documentation.