2012-08-30 9 views
14

Devo testare regolarmente la disponibilità e il funzionamento di un sito web di noleggio film. Ho scritto un programma per Windows che è in grado di automatizzare un browser web in base a uno script, quindi questo compito è fondamentalmente risolto. Ora devo automatizzare la versione mobile di questa applicazione Web: un'app nativa per iOS e un'app nativa per Android.Come posso testare automaticamente la funzionalità delle applicazioni iOS e Android?

Queste app sono di origine chiusa, quindi non possono essere modificate in alcun modo. Penso che l'app di test dovrebbe essere distribuita sui dispositivi di test (iPhone, iPad, Galaxy Tab, Galaxy S II), ma devo essere in grado di controllarla a distanza. Voglio dire, mi piacerebbe creare una connessione tra i dispositivi di test e un PC, caricare gli script di test dal PC ai dispositivi, eseguirli e scaricare i risultati del test sul PC. Lo script di test dovrebbe avviare l'app da testare, manipolare la sua GUI (compilare editbox, pulsanti, ecc.) E seguire la sua risposta in qualche modo, ad esempio analizzando la GUI (l'esistenza di alcuni elementi della GUI, la loro didascalia, ecc.) , analizzando screenshot e/o ispezionando pacchetti IP.

Ho scritto molti programmi di test simili per Windows: ho usato ShellExecute, PostMessage, FindWindow, la libreria WinPcap ecc., Quindi so come dovrebbe funzionare un programma del genere. Ma dal momento che non ho mai scritto applicazioni per sistemi operativi mobili, non so nemmeno se esistano API e librerie simili per iOS e Android.

Mi piacerebbe sapere da dove cominciare, voglio dire, quali SDK e strumenti di sviluppo potrebbero essere utilizzati per scrivere una tale applicazione. Sono anche interessato a soluzioni commerciali. Gradirei davvero qualsiasi aiuto.

+1

"Lo script di test dovrebbe avviare l'app da testare, manipolare la sua GUI (riempimento editbox, pulsanti ecc.)" Non possibile per iOS (potrebbe essere possibile con jailbreak), non sono sicuro di Android – msk

+0

@MSK Grazie. Questa è una brutta notizia :(È possibile eseguire un'app iOS su Mac OS X, da un emulatore, e automatizzarla come se fosse un'app desktop? – kol

+1

Se si utilizza una macro mouse/tastiera non vedo perché no, per Android è possibile controllare monkeyrunner http://developer.android.com/tools/help/monkeyrunner_concepts.html – mario

risposta

12

Mi piace "Calabash-iOS/Calabash-Android" di LessPainful. Questo è il meglio per me.

  • libero
  • disponibile su iPhone e Android
  • registrazione e riproduzione
  • prova sul simulatore di natale e

Essi non hanno un IDE GUI.Sono soluzioni basate su Rubino ed è molto facile scrivere script di banco di prova, in questo modo:

Then I swipe left 
And I wait until I don't see "Please swipe left" 
And take picture 

Inoltre può essere

Then I touch the "login" button 

a toccare un pulsante, o

Then I fill in "placeholder" with "text to write" 

per scrivere qualcosa in una casella di testo.

E lo script può essere condiviso da Calabash-iOS e Calabash-Android. Questa funzione è utile per gli sviluppatori che realizzano sia l'app per iPhone che l'app per Android.

Pensavo che MonkeyTalk fosse bello ma in realtà instabile, almeno nel mio ambiente.
A volte MonkeyIDE si è bloccato, quindi dobbiamo eseguire il debug di MonkeyTalk ...

Spero che questo ti aiuti.

+0

Grazie mille! – kol

4

MonkeyTalk sembra promettente. Caratteristiche del Gorilla Logic website:

  • libero & Open Source
  • Automated testing di applicazioni iOS, Android, HTML5 e Adobe Flex
  • multipiattaforma di registrazione e riproduzione
  • prova nativo, web, o app ibride, simulatori iOS, emulatori Android o dispositivi reali (non è richiesto il jailbreaking)
  • Tutto da semplici "test del fumo" a sofisticati dati guidati suite di test

Packet tracing: iOS, Android, Android

3

Se lo scripting è la soluzione preffered su Android, è possibile importare ed eseguire facilmente gli script dopo aver installato Scripting Layer for Android. Basta scaricare l'ultimo file apk, importare lo script ed eseguirlo. Questo non è disponibile su iOS ma metà del tuo problema potrebbe essere risolto con questo.

4

Selenium offre driver per dispositivi mobili ed emulatori. È un progetto di Google. Hanno una buona documentazione. Ha un IDE per la prototipazione rapida di suite di test e supporto per molte lingue come ruby, PHP, C#, ecc.,

1

Noi di testmunk abbiamo scritto una guida su come iniziare con l'automazione mobile. La guida si rivolge alle specifiche di Android e iOS e elenca tutti gli strumenti necessari. Si basa sul framework open source calabash.

L'articolo è qui: http://blog.testmunk.com/tutorial-for-automated-mobile-app-testing-calabash/ in questo articolo troverete anche collegamenti a un paio di app di esempio.

Spero che questo aiuti.

+0

Il formato previsto di una risposta SO è destinato ad essere autonomo. i link e i riferimenti esterni sono belli come fallback, ma dovrebbero almeno riassumere i loro bit rilevanti. Suggerirei almeno di rispondere effettivamente alla domanda attraverso un elenco di SDK e utilità menzionati nel link (e forse la loro rilevanza alla prova) nella risposta. – dho

-1

So che questo è un vecchio post ma qualsiasi lettura nel 2016, la prima scelta per l'automazione dovrebbe essere Appium (funziona su entrambi IOS/Android). Tutti gli strumenti di cui sopra devono essere costruiti con l'app. Appium richiede alcun accumulo con il codice dell'app. È molto popolare con varietà di supporto per il linguaggio di programmazione (PHP/JAVA/RUBY/PYTHON). [Link]: appium.io e [Link]: https://github.com/appium/appium

Problemi correlati