2012-08-30 4 views
14

Muszę regularnie testować dostępność i funkcjonowanie strony poświęconej filmom. Napisałem program Windows, który jest w stanie zautomatyzować przeglądarkę internetową zgodnie ze skryptem, więc to zadanie jest w zasadzie rozwiązane. Teraz muszę zautomatyzować mobilną wersję tej aplikacji internetowej: natywną aplikację na iOS i natywną aplikację na Androida.Jak mogę automatycznie przetestować funkcjonalność aplikacji na iOS i Androida?

Te aplikacje są źródłami zamkniętym, więc nie można ich w żaden sposób zmodyfikować. Myślę, że aplikacja testowa powinna zostać wdrożona na urządzeniach testowych (iPhone, iPad, Galaxy Tab, Galaxy S II), ale muszę mieć możliwość zdalnego sterowania nią. Chodzi mi o to, że chciałbym stworzyć połączenie między urządzeniami testowymi i komputerem, przesłać skrypty testowe z komputera na urządzenia, uruchomić je i pobrać wyniki testu na komputer. Skrypt testowy powinien uruchomić aplikację do przetestowania, manipulować jej GUI (wypełnić pola edycyjne, przyciski itd.) I jakoś reagować na jej reakcje, na przykład analizując GUI (istnienie niektórych elementów GUI, ich podpisów itp.) , analizowanie zrzutów ekranu i/lub przeglądanie pakietów IP.

Napisałem wiele podobnych programów testowych dla systemu Windows: użyłem ShellExecute, PostMessage, FindWindow, biblioteki WinPcap itp., Więc wiem, jak taki program powinien działać. Ale ponieważ nigdy nie pisałem aplikacji na mobilne systemy operacyjne, nie wiem nawet, czy istnieją podobne API i biblioteki dla iOS i Androida.

Chciałbym wiedzieć, od czego zacząć, to znaczy, które SDK i narzędzia programistyczne mogą być wykorzystane do napisania takiej aplikacji. Jestem również zainteresowany rozwiązaniami komercyjnymi. Naprawdę doceniłbym każdą pomoc.

+1

"Skrypt testowy powinien uruchomić testowaną aplikację, manipulować jej GUI (wypełnić pola edycyjne, przyciski itp.)" Nie jest możliwe dla iOS (może być możliwe z jailbreak), nie wiem o Androidzie – msk

+0

@MSK Dzięki. To jest zła wiadomość :(Czy można uruchomić aplikację na iOS na Mac OS X, emulator i zautomatyzować ją tak, jakby była to aplikacja na komputer? – kol

+1

Jeśli używasz makra myszy/klawiatury, nie rozumiem, dlaczego nie, dla Androida możesz sprawdzić małpa http://developer.android.com/tools/help/monkeyrunner_concepts.html – mario

Odpowiedz

12

Lubię "Calabash-iOS/Calabash-Android" przez LessPainful. To jest dla mnie najlepsze.

  • darmo
  • dostępna na iPhone i Android
  • zapis i odtwarzanie
  • Test na rodzimych i symulator

Oni nie mają IDE GUI.Są to rozwiązania Ruby oparte i to jest bardzo łatwe do napisania skryptu przypadków testowych, tak:

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

Również może być

Then I touch the "login" button 

dotknij przycisk lub

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

, aby napisać coś do pola tekstowego.

Skrypt może być udostępniany przez Calabash-iOS i Calabash-Android. Ta funkcja jest wygodna dla programistów, którzy tworzą aplikację iPhoneApp i aplikację na Androida.

Myślałem, że MonkeyTalk był miły, ale w rzeczywistości niestabilny, przynajmniej w moim środowisku.
Czasami MonkeyIDE się zepsuł, więc musimy zrobić debugowanie MonkeyTalk ...

Mam nadzieję, że ci to pomoże.

+0

Dziękuję bardzo! – kol

4

MonkeyTalk wygląda obiecująco. Funkcje z Gorilla Logic website:

  • bezpłatny & Open Source
  • Automated testowania aplikacji na iOS, Android, HTML5 i Adobe Flex
  • Cross-platform nagrywanie i odtwarzanie
  • rodzimy test, www, lub aplikacje hybrydowe, symulatory iOS, emulatory Android lub prawdziwe urządzenia (nie wymaga jailbreakingu)
  • Wszystko, od prostych "testów dymu" do wyrafinowanych danych opartych na danych zestawy testów

śledzenia pakietów: iOS, Android, Android

3

Jeśli tworzenie skryptów jest preferowanym rozwiązaniem na Androida, możesz łatwo importować i uruchamiać skrypty po zainstalowaniu Scripting Layer for Android. Wystarczy pobrać najnowszy plik APK, zaimportować skrypt i uruchomić go. Ta funkcja nie jest dostępna w systemie iOS, ale połowa problemu może zostać rozwiązana.

4

Selenium oferuje sterowniki dla urządzeń mobilnych i emulatorów. To jest projekt Google. Mają dobrą dokumentację. Ma IDE do szybkiego prototypowania pakietów testowych i obsługę wielu języków, takich jak Ruby, PHP, C#, itp.,

1

My, w testmunk napisaliśmy przewodnik, jak zacząć z automatyką mobilną. Przewodnik dotyczy zarówno Androida, jak i systemu iOS i zawiera listę wszystkich potrzebnych narzędzi. Opiera się na strukturze opartej na otwartym tykwie.

Artykuł tutaj: http://blog.testmunk.com/tutorial-for-automated-mobile-app-testing-calabash/ w tym artykule znajdziesz również linki do kilku przykładowych aplikacji.

Mam nadzieję, że to pomoże.

+0

Planowany format odpowiedzi na WZ ma być samodzielny. pytanie: linki i odnośniki zewnętrzne są fajne jako awarie, ale powinny przynajmniej podsumować ich odpowiednie bity, sugerowałbym co najmniej odpowiedzieć na to pytanie poprzez listę zestawów SDK i narzędzi wymienionych w twoim linku (i być może ich znaczenie) do testowania) w odpowiedzi. – dho

-1

Wiem, że to stary post, ale każdy, kto czyta w 2016 r. Pierwszym wyborem do automatyzacji powinien być Appium (działa zarówno na IOS/Android). Wszystkie narzędzia wymienione powyżej muszą być zbudowane za pomocą aplikacji. Appium wymaga jakiejkolwiek rozbudowy za pomocą kodu aplikacji. Jest niezwykle popularna dzięki obsłudze różnych języków programowania (PHP/JAVA/RUBY/PYTHON). [Link]: appium.io i [Link]: https://github.com/appium/appium