5

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.

4

3 回答 3

6

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.
于 2016-10-03T12:03:50.453 回答
5

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.

于 2016-09-01T13:35:56.733 回答
3

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:

  1. exploring UI (detecting content, widgets/views/controls names and content)
  2. interacting with UI (tapping, scrolling)
  3. 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).

于 2016-10-20T15:48:59.683 回答