I'm trying to find an automation framework for iOS and/or Android that allows me to automate actions on a real device using 3rd party/built-in apps. For example, I want to be able to automate: Browse these websites with Safari, watch these videos with the Youtube app, et al.
The automation frameworks I've encountered in my search seem to be focused on testing out your own app, in which you provide hooks in your own code to the framework in question.
I won't be testing out my own app (I'm testing out a proxy that the devices send traffic through), and thus won't have access to the source code to the apps on the device. I'm new to this, apologies in advance if there's a way obvious answer right under my nose.
For android automation you can use UIAutomator. It doesn't require source code. It uses in built uiautomator jar file which is present in android SDK. For more information you can refer http://developer.android.com/tools/testing-support-library/index.html
Related
Beginner programmer here- I want to convert a small program I made into an app- the original program uses selenium to load a website, ask for a username+ password, and auto logs you in and clicks a bunch of boxes and dropdowns, then exits.
I want to turn this all into an android app- I have a couple questions:
do I have to rewrite all my code in android studio
can I still use selenium or do I have to set up appium/ selendroid and if so, which one?
basically, the app should open up a UI screen, and ask for a username and password. From there it will open up a browser and click a bunch of stuff and that is it.
lots of love!
I am giving some important high level observations
App Type Cases
If your AUT is an android/ios native app then yes you have to use Appium or native frameworks like Espresso,XCUTest etc
2.If your AUT is a webapp with just a different user-agent like mobile,tablet etc then same tests can be used with little modification e.g.
2.1 You can use mobile emulation with Selenium - Chrome browser with mobile dimension
2.2 You can also use Appium with Emulator or real device - Chrome browser in Mobile device.
If your AUT is a hybrid app i.e. partly native and partly chrome session then
you have to use Appium
If Existing Tests Cases already present
If your browser application tests are already written in Selenium then you can use a tools which supports selenium methods like Appium for writing your android or ios app tests, this will help you in knowing scenarios to cover.
If your app is webapp then existing test cases will work with little modifications
If your app is hybrid then few existing cases will work which are under webview.
If Existing Tests Cases are not present
You are free to choose language of your choice as per knowledge and tool which best suites to your application.
Original Question - I want to turn this all into an android app- I have a couple questions:
do I have to rewrite all my code in android studio
Yes if native app, Partially yes if hybrid and No if webapp
can I still use selenium or do I have to set up appium/ selendroid and if so, which one?
for webapp you can use selenium but for hybrid or native app Appium is must. Read documentation and see which is easy for you to pick up.
Note - Selendroid is deprecated because it was used with very old Android version device e.g. Android IceCream 4.2 or below version or API level < 17
So what I want to do is, "develop" an app where it main purpose is just to open a website. I need that on android and ios. Is there an online website to do just that?
I jused to know a website, where you could develop for various platforms (PHP, Java, Object C for iOs) and even test your code online.
Somehow I can't find it anywhere. Thank in advance if you can either show me the website again or find me a new website to do just that.
Regards!
Update:
Found the website: http://www.programmr.com/
I think you're referencing PhoneGap.
PhoneGap allows you to build native applications using HTML/CSS/JS for all mobile operating systems.
If all you want is for your iPhone App and Android App to open up a website "inside" of the application, you will want to use a webView. This will allow you to have your application listed on the iOS App Marketplace and the Android Google Play Store.
EDIT: This will definitely work on Android. You must get pass Apples app approval process to get on iOS of course.
I have to regularly test the availability and functioning of a movie rental website. I wrote a Windows program which is able to automate a web browser according to a script, so this task is basically solved. Now I have to automate the mobile version of this web application: a native iOS app and a native Android app.
These apps are closed source, so cannot be modified in any way. I think the test app should be deployed on the test devices (iPhone, iPad, Galaxy Tab, Galaxy S II), but I must be able to remote control it. I mean, I would like create a connection between the test devices and a PC, upload test scripts from the PC to the devices, run them, and download the test results to the PC. The test script should start the app to be tested, manipulate its GUI (fill editboxes, push buttons etc.), and follow its response somehow, for example by analyzing the GUI (the existence of some GUI elements, their caption, etc.), analyzing screenshots, and/or inspecting IP packets.
I wrote lots of similar test programs for Windows: I used ShellExecute, PostMessage, FindWindow, the WinPcap library etc., so I know how such a program should work. But since I never wrote applications for mobile OS's, I don't even know whether there are similar APIs and libraries for iOS and Android.
I would like to know where to start, I mean, which SDKs and developer tools could be used to write such an application. I'm also interested in commercial solutions. I would really appreciate any help.
I like "Calabash-iOS/Calabash-Android" by LessPainful. That is the best for me.
free
available on iPhone and Android
record and playback
test on native and simulator
They doesn't have a GUI IDE. They are Ruby-based solutions and it is very easy to write test case script, like this:
Then I swipe left
And I wait until I don't see "Please swipe left"
And take picture
Also it can be
Then I touch the "login" button
to tap a button, or
Then I fill in "placeholder" with "text to write"
to write something to a textbox.
And the script can be shared by Calabash-iOS and Calabash-Android. That feature is convenient for developers who make both iPhoneApp and Android App.
I thought MonkeyTalk was nice but actually unstable, at least in my environment.
Sometimes MonkeyIDE crashed, so we have to do debug of MonkeyTalk...
I hope this helps you.
MonkeyTalk looks promising. Features from the Gorilla Logic website:
Free & Open Source
Automated testing of iOS, Android, HTML5 and Adobe Flex applications
Cross-platform recording and playback
Test native, web, or hybrid apps, on iOS simulators, Android
emulators or real devices (no jailbreaking required)
Everything from simple "smoke tests" to sophisticated data-driven
test suites
Packet tracing: iOS, Android, Android
Selenium offers drivers for mobile devices and emulators. It is a Google project. They have good documentation. It has an IDE for rapid prototyping of testing suites and support for many languages like ruby, PHP, c#, etc.,
If scripting is your preffered solution on android you can easily import and run scripts after you install the Scripting Layer for Android. Just download the latest apk file, import the script and run it. This isn't available on iOS but half of your problem may be solved with this.
I know this is an old post but any one reading in 2016 first choice for automation should be Appium ( works on both IOS /Android). All the tools mentioned above have to be built with the App. Appium does require any build up with App code. Its hugely popular with variety of programming language support ( PHP/JAVA/RUBY/PYTHON). [Link]: appium.io and [Link]: https://github.com/appium/appium
would like to build an app that can run on any of the new PAD's hitting market.
I don't want to limit our users to a specific OS.
What is the best solution to allow all these pads to use our app.
The app needs to be able to run offline.
Thanks!
You could write a web application and use HTML5 for off-line caching.
http://diveintohtml5.ep.io/offline.html
Alternatively, you could try and use Titanium Mobile.
http://www.appcelerator.com/products/titanium-mobile-application-development/
You should also spend some time reading this discussions:
is-there-a-multiplatform-framework-for-developing-iphone-android-applications
technology-to-write-iphone-blackberry-and-android-phone-at-the-same-time
Have a look a MonoTouch, it will let you write all your logic in C# over all the main mobile platforms. However you still need custom UI code for each platform, but as least it will all be in C#.
(Better then having to use C#, Java and Objective C)
You could use Adobe Air that could works in most of Mobile/Tablet operating system Iphone,Android and Windows 7. but im not sure if Apple will approve your App if you plan to released to the App market.
Another way to think about it is to create an HTML resources and then integrated in away seems native to the system its more work but you will have a higher chance to get approved from apple and the app look more integrated with the OS .
The obvious -- and currently free -- answer is to use Adobe FlashBuilder to develop iOS apps. There is an iPhone and iPad emulator included. This does not use xcode, but you get most of the features to work with, and you can also develop Android apps from the same set of code. Further, with minor modifications for mouse usage, you can also have the apps run on any desktop as an Air app.
Adobe's website has detailed directions for how to create iOS apps on Windows with Adobe Air, though the most useful instructions for Air are from untoldentertainment.com.
I have been developing an Android application for about two months now, and the guy I'm writing it for wants me to use this instead of the android SDK so we can deploy the application for multiple smart phones: http://rhomobile.com/
he says you can write the application in one language and it can be deployed for most smart phones. Has anyone used this website to do something similar? Any advantages or disadvantages I should know about and tell him? Maybe someone could give me a better explanation on what this really does.
I'm current a one man army. He wants the application out for most smart phones but can afford to hire more developers.
Rhomobile will start up a small webserver on your phone and then show a webview that is directed to this webserver. You are able to write all the application logic in ruby in a way you would do it if you would write a web app that is deployed on a real web server. Rhomobile uses CSS etc. to have the app look look a little bit like a native app.
If you know Ruby you will get an App fast but it will look crappy and the user experience will be crappy too. A similar framework is appcelerator titanium they will let you write the app in Java Script and then compile it into a mix of javascript, webview and native components that run on an Iphone and on an Android phone and titanium has a much nicer user experience then rhomobile.
Visit their pages and test some of the apps that they are promoting as showcase for their frameworks.
As many developers writing apps in Objective C have learned using HTML for the view and styling with CSS styling libraries is a great way to create attractive native apps. Rhomobile's Rhodes uses this approach as well. We used to let people use whatever CSS they wanted and they could choose to use IUI, JQTouch, IWebKit, WebApp.net or any other library along with Rhodes. The best external apps all seemed to use JQTouch for styling and animated transitions.
Recently we decided to ship with our own fork of JQTouch (which we made work on Android) in order to make this even easier. The recent Rhodes master branch created apps with JQTouch builtin makes such attractive apps even easier to build, as the stylesheets are included with Rhodes scaffold-generated apps.