Need Help in Xamarin UI Test Automation - xamarin

I am currently working on Mobile App automation .Have come across Xamarin UI Test Automation.But I could find less documentation on that.
I have downloaded xamarin studio on Mac as well as on Windows.
But I need help on scripting from scratch.How can I use the tool to script and run on Android as well IOS phones.

I faced same issue. This two links: bdd, ui test helped me. First link is about BDD testing but include what you need.
Also you should check Xamarin UI tests recorder that can simplify your task but it's not a free.

Related

Xamarin Can I use Appium to perform automation testing with a real device?

Can I use Appium with Xamarin, to run automation tests on a real device?
I need to test bluetooth connectivity among the basic functions of the app (login, navigation etc), that is why I need to use a real device.
Is this possible? And any information that is helpful towards how to achieve that is appreciated.
Here is a video about Appium-based automated mobile UI testing in xamarin you can refer to https://www.youtube.com/watch?v=ffxtOUCIUUQ.
And there is a sample in it you can test with:https://github.com/xamarin-automation-service/Appium.POP.Example

Appcelerator automated Functional Testing

Is there an alternative to Soasta with the enterprise license for automated functional testing? I'm looking for a solution where we can record clicks, gestures and input etc and play it back.
Thanks in advance
Xamarin UI Test. Titanium renders native components, so in your application you can write end-to-end test with it. There is a test recorder (only for Visual Studio) and a REPL which you can use to write your actions one by one and to have a look at the components tree. It's everything based on the compiled file so there aren't integration problems. After you can also automate those tests on Xamarin Test in Cloud.
https://developer.xamarin.com/guides/testcloud/uitest/
https://www.xamarin.com/test-cloud/recorder
https://www.xamarin.com/test-cloud

What is Xamarin Test Cloud for?

I am working on developing a Xamarin hybrid (html+js+css) application for Android using Visual Studio for iOS.
My client wants to upload builds (of the app) to the Xamarin Test Cloud. I am new to Xamarin, so I have no idea about Xamarin Test Cloud. I have done some research and found that we can write test cases in our application and send them to Xamarin Test Cloud.
So far I understand it, Xamarin Test Cloud is only for app testing purposes, not for sharing buildAs with multiple users or clients. Am I right or not?
Please let me know more about Xamarin Test Cloud, i.e what are the uses of it.
You are partly correct.
Xamarin Test Cloud is an automated testing solution. You are able to run UI-tests on every platform. This will allow you to see how the application performs on the many android devices and versions, as well as the different versions of iOS. Xamarin Test Cloud however is limited to UI testing (and crash reporting based on your testing scenario). Unit Tests and Integration tests (mostly technical tests) cannot be performed by Xamarin Test Cloud.
In order to distribute the app to test-users you should use HockeyApp. HockeyApp has recently be acquired by microsoft (source) and allows you to distribute your app to a closed group of people for feedback (usually used for User Acceptance Tests (UAT)). Note: HockeyApp will soon be integrated with Microsofts' Application Insights service where it offers more features (insights in performance of your app, time used, time looked at Activity X etc) - see how to set this up
So in short:
Xamarin Test Cloud - Automated UI Testing on hundreds of devices
HockeyApp - User Acceptance Tests with distribution
Xamarin Insights (or Microsoft Application Insights) - insight in the usage of your app on different levels.
Correct. TestCloud is used to run your app on thousands of devices at once to figure out how your app behaves and how it looks on many different device quickly and without having to actually buy thousands of devices. It is not for sharing your app with specific users. If you want to share your app with specific users, you can either use HockeyApp for iOS and Android or you can use TestFlight for iOS and the Google Play Store's Beta program for Android.
In short Xamarin.Test.Cloud is a cloud service for automated UI tests.Those UI tests can be written in Calabash and/or C# NUnit project in form of unit tests. Most of the developers use C# version form od the framework. This Xamarin product is called Xamarin.UITest which is created locally with Xamarin tools and uploaded to Xamarin.Test.Cloud.
More in depth...
Xamarin.UITest which most of developers use is basically NUnit C# project in Viusal Studio or Xamarin.Studio. It loads user's apk (Andriod) or ipa/app (iOS) file and prepares everything for testing.
Testing might include:
exploring UI (detecting content, widgets/views/controls names and content)
interacting with UI (tapping, scrolling)
recording interactions from 2. so they can be used in automated tests
https://developer.xamarin.com/guides/testcloud/uitest/
API is not complex, but needs some [short] time for learning. Maybe more for tricks like working with pickers (especially in Xamarin.Forms), backdoors, gestures etc. My daughter is 15 and she's doing talks on Xamarin.UITest, because it is that simple and nice for kids to learn coding and feel "productive".
Sample interaction:
app.Tap( c => c.Marked("Login") );
Another useful command is: tree - to see Visual Tree (DOM) of the Ui presented.
NOTE:
Xamarin.UITest is not limited to apps written in Xamarin!
It can be used with Android app written in Java, iOS app written in objective-c/swift!
Xamarin.UITest differs for hybrid apps, because the DOM is actually HTML DOM. Hence - try exploring DOM with tree command.
With Xamarin.UITest and nunit runner you can test locally on your devices and/or emulators/simulators. 15 minutes limit is removed if I can recall correctly.
Xamarin.Test.Recorder is useful tool for exploring and recording Xamarin.UITests. On Mac this should be standalone app and on Windows you'll need Visual Studio Enterprise (restriction).
https://developer.xamarin.com/guides/testcloud/testrecorder/
Xamarin.Inspector from package called Xamarin.Interactive is another standalone tool for analysing and inspecting UI of the app.
https://developer.xamarin.com/guides/cross-platform/inspector/
When UI test is written - the project output (dlls) are uploaded to the Xamarin.Test.Cloud. To get project output you'll need Xamarin.Studio or Visual Studio with Xamarin tools installed.
Before upload there are several steps user needs to do like: selecting devices (number depends on pricing), getting APIKey for particular tests. Uploading is done through commandline...
https://developer.xamarin.com/guides/testcloud/uitest/working-with/submitting-tests-to-xamarin-test-cloud/
Then user goes to XTC (Xamarin.Test.Cloud) portal and checks results (reports, screenshots etc).
This is how it looks like behind the scenes (this is what I like to show during my talks):
https://youtu.be/PQMBCoVIABI?t=3432
Handsome Danish guys (which cannot play handball) on stage and 2000+ devices on the shelves (it was 1900+ devices in 2015-09) in the datacenter...
For sharing - use HockeyApp
For monitoring - use Xamarin.Insights
NOTE: HockeyApp and Xamarin.Insight are being merged to single product for beta-testing and monitoring (TestFlight like).

Continuous Integration with React Native

I am new to iOS, Can someone please tell me how can I set up CI for react native? I currently use codeship but I don't think they offer anything for iOS. Any suggestion on any hosted CI tool which supports bitbucket? Thanks
I'm using buddybuild for my React Native apps. It's going awesome so far. I felt bitrise a little bit complicated and I got some problems during my builds, Buddybuild is totally transparent. It helps me not only with Continuous integration, but also with:
Checking for Xcode compatibilities: with each new version and beta of Xcode, buddybuild will take the most recent successful build of your app, run it against the newest version of Xcode and email you the results of any potential breaking changes.
First Class Test Support: Run tests UI and Unit tests on simulator, emulator and physical devices.
Static Code Analysis
Code Coverage: know exactly how much of your code base is being exercised during testing.
Instant Deployments: Organize your testers into groups to configure which builds they get, and how often they should receive new versions of your app.
Publish to the Play Store and App Store: Automatically deploy your app to the Play Store or App Store!
And also the Continuous Integration will build both the Android and iOS versions of your app. Simply onboard the app twice and select iOS then Android to have both versions built.
I have a React Native Starter App for both Android & iOS that uses Bitrise.io and they support BitBucket. The tests are run with Jest and have over 86% coverage. There's a video series detailing the CI process. Swapping out Github for Bitbucket is trivial, during the registration process you'll be prompted for a vendor (Github/Bitbucket). After that everything should be the same. Note: I am the developer.
You can use circleci which has good integration with other tools like Fastlane, Here how you set up another And greate Talk by talk by Joe Stanton # React Meetup London one more greate article by Ramesh Nair

Test Automation Feature in Xcode 4

Do anybody knows what is Test Automation Feature in Xcode4 and how it can be beneficial???
Using Automation, you can write UI test javascripts to step through your application's UI.
Definitely, Frank is one of the good automated testing tool for acceptance testing of mobile applications. But, Frank does not support test automation if the source code of mobile app is not available

Resources