Press "Enter" to skip to content

GOTO 2012 • Calabash: Automated Acceptance Testing for Android & iOS • Karl Krukow


d’accordo, ho intenzione di parlare
su un progetto chiamato calabash come il
il titolo dice che è un progetto da fare
test di accettazione automatizzati per dispositivi mobili
app è un progetto open source è
libero di usare è aperto nel senso che
puoi contribuire ad esso ma se tu
non ne ho sentito parlare prima di non esserlo
troppo sorpreso perché è abbastanza nuovo
progetto è di circa 6 mesi da noi
rilasciato così anche se è nuovo
in realtà è una tecnologia che siamo stati
usando per un bel po ‘di tempo il
compagnia meno dolorosa dove sono e
Ti dirò di più sulla compagnia
più tardi quindi il punto è che lo è
qualcosa che stiamo usando da
tempo per testare le app dei nostri clienti così è
tecnologia non completamente immatura in
quel senso ma ora abbiamo deciso di cambiare
il nostro modello di business abbiamo deciso di aprire
fonte questa tecnologia e di destinazione
cosa che vi parlerò di che è
un servizio di test cloud service per
fare test su dispositivi mobili e anche
vendita di supporto e formazione su questo
progetto open source quindi una sorta di a
modo classico classico di fare soldi
e sostenere un progetto open source a
nello stesso tempo così è andato così
agenda oggi ho intenzione di parlare un paio
diapositive forse max 10 diapositive circa
test automatici per dispositivi mobili e alcuni di
le sfide a cui sono associati
e in particolare ti darò un
elenco di alcune proprietà che vorrei
piace avere un matul che supporti
test di accettazione automatizzati per dispositivi mobili
e questo elenco di proprietà è in realtà
il motivo per cui abbiamo creato la zucca
perché nessuno degli strumenti esistenti che
sono là fuori appoggerebbero tutti questi
cose così se quella lista corrisponde alla tua lista
di proprietà che si desidera di un test
strumento quindi dovresti assolutamente controllare
fuori zucca e poi ho davvero
dato questo discorso prima, ma io ho
ha deciso di farlo in modo diverso oggi così
invece di avere circa 30 40 diapositive
descrivendo calabash sto andando davvero
avere forse 10 15 diapositive e poi lo sono
andando a fare il resto con dimostrazioni dal vivo
quindi sicuramente andrà male
un certo punto ma che manterrà il
conosci l’umore un po ‘ informale e io
benvenuto a fare domande e dimmi
se non sei d’accordo e così sarà, suppongo
un po ‘più in diretta su cui mi concentrerò
Iowa’s perché è la mia area di
esperienza che ho lavorato a provare Fork
per circa sei anni e gli ultimi due
c’erano tre anni di lavoro
lo sviluppo di app native per iOS è così
la ragione per cui sono entrato in questo business e
A un certo punto ho iniziato a guardare
test automatici per iOS comunque così
il punto è che anche se sto parlando
su iOS la maggior parte di ciò che dico si applicherà
altrettanto bene allo sviluppo di Android come
bene quindi quelle sono le due piattaforme che noi
supporto Ti mostro anche il nostro cloud
servizio di prova e, a titolo di esempio, così
prima voglio iniziare con l’affitto
o alcune delle mie cose personali che sono
attualmente, così quando facciamo il servizio
la nostra programmazione abbiamo un paio di
le cose che facciamo li etichetto semplicemente
pratiche professionali li possono chiamare
tutti i tipi di cose, ma le cose che facciamo
per garantire una qualità costante e alta
qualità e un breve ciclo di feedback ok
come test di unità di integrazione continua
test di accettazione funzionale tutto
automatizzato e poi andiamo in mobile e
cosa succede niente ci andiamo tutti
è una terra da cowboy per qualche motivo
Giusto senza regole, andiamo lì a controllare
è fuori spedirlo agli utenti è come
tutte quelle pratiche che eravamo soliti fare
se ne sono andati
nessuna integrazione continua non automatizzata
non testare test funzionali automatizzati
beh, almeno quello era vero un anno
o due fa penso che lo sto vedendo
questo sta cambiando quanti dei
gli sviluppatori qui stanno facendo questo è un
test di unità sui loro prodotti mobili
non sono tutti quanti quanti ne stanno facendo
conti continui che non dicono quanti sono
facendo automatizzato
le armi sono test funzionali si su
tre così per qualche ragione che sembra avere
scaricato quelle pratiche o almeno noi
non adotta e manca Foley probabilmente
è solo perché siamo noi
abbastanza nuovo nello spazio e abbiamo bisogno di
impara come programmare prima e così via ma
Voglio davvero incoraggiare che bruciamo
questo bastardo e basta investire il tempo
quelli che fanno andare di nuovo quelle pratiche
la costruzione continua e tu sei
interessante e secondo test io sono
andando a parlare di accetta automatizzato
e test di accettazione automatizzati con
questo sai che ci sono tecniche
insieme tutte quelle pratiche in esecuzione
mobile e quindi investire il tempo tutto
giusto Rand sopra oh sì, volevo solo
menzione che stavo parlando con i ragazzi da
il gruppo classificato eBay ha un
stand qui stand del venditore e loro
stavano effettivamente usando questa tecnologia per
fare regressione automatizzata e funzionale
test e hanno ridotto il loro QA manuale
da 2 giorni a circa un paio d’ore
usando l’ automazione quindi lo voglio davvero
ti incoraggio solo a non ascoltarmi
ma anche uscire e parlare con questi ragazzi
che stanno adottando nella pratica che hanno
una cabina qui ok, quindi qual è la stecca?
una storia come per il mobile bene come Brian
ha anche detto la realtà è che abbiamo
diversi dispositivi che conosci che hanno
schermi diversi corrono diversi
le risoluzioni vanno bene così su iOS che hai
tre versioni dell’iPad che hai
numerose ben diverse versioni del
iPhone iPod tocca anche il più recente
iPhone ha uno schermo di dimensioni diverse te
avere la Rutina che non è macchina
e sai Android è solo un uomo sì
quindi la realtà è che se lo vuoi davvero
prova tutto poi bene non puoi
davvero scrivere è solo troppi quindi cosa
Intendo per test di accettazione intendo il
cosa che facciamo per garantire a noi stessi
che l’app che stiamo per consegnare
su App Store o un mercato o qualsiasi altra cosa
il canale che stiamo usando lo fa davvero
ciò che si suppone di farlo è come
l’ ultima cosa che facciamo prima di inviarlo
fuori e dicendo okay, siamo bravi così
perché è l’ultima cosa che facciamo noi
voglio assicurarmi che sia fatto in un molto
ambiente realistico perché dopo tutto
c’era questa è l’ultima cosa così noi
vuoi provare su veri telefoni che conosci
emulatori e simulatori sono buoni ma
siamo più fiduciosi se lo testiamo
hardware reale che gli utenti sono
in esecuzione e anche questi dispositivi
le differenze non appaiono quando sei
eseguire almeno un smartie non tanto
quando stai facendo anche i simulatori
sapere che non sono solo i molti
dispositivi ci sono anche molti operativi
versioni del sistema diverse versioni di iOS
da quattro a sei ora immagino sia quello che è
comunemente supportato numerose versioni di
Anche Android e loro lo sanno
lingue diverse di cui potresti aver bisogno
supporto nella vostra applicazione e avete
una condizione che è particolarmente
interessante per il cellulare che è quello
la rete sta cambiando molto più spesso
come la capacità della tua rete sta cambiando a
molto più spesso che se stai facendo un
è un’app web per desktop il client
può essere in movimento tra nessuna rete
connessione 3G o 4G o Wi-Fi e tutti
che ha un impatto sulla tua app
funzionando puoi rimanere senza memoria
molto più facilmente di altre piattaforme
e così via
e dalla mia esperienza tutto questo test
nella maggior parte delle aziende è un processo manuale
quindi le aziende su cui ho lavorato
abbiamo avuto cicli di rilascio che sono forse
14 un rilascio test di rilascio ogni 14 giorni
o tre settimane e in linea di principio vuoi
per garantire che tutto sia immobile
lavorando bene non hai regressioni
quando spedisci questa versione di prova al tuo
persone QA manuali o utenti aziendali
e questa è una buona quantità di lavoro e
francamente è molto noioso
perché stai ripetendo lo stesso test
che hai fatto finita ma devi assicurarti
che non ti sei schiantato non lo faccio
conoscere
invia schermo o qualsiasi altra cosa ed è
costoso ci vuole un sacco di tempo e il
l’esame da parte di eBay era di due giorni
non pensare che sia irragionevole
e vediamo anche gli arresti anomali dell’app
anche se qualcosa vale il precedente
contratto di locazione è probabile che non sia probabile
ma succede che noi spezziamo nel
prossima versione
quindi questo costa un altro aspetto interessante
per i cellulari è l’aspetto visivo
dello schermo come la rappresentazione di
grafica e il tuo marchio è davvero
gli utenti veramente importanti si aspettano di avere un
esperienza utente di alta qualità e così tu
bisogno di prestare maggiore attenzione a questo
e questo è qualcosa che è un po ‘
difficile da automatizzare è l’esperienza dell’utente
buona la grafica è carina e
così via puoi fare qualcosa ma è così
un po ‘difficile da automatizzare scusa penso
Sto facendo il tentativo di chiarire il caso
deve essere fatto ma anche che lo è
un bel po ‘di lavoro in termini di ore a
fai questo solo per fare questo test
se è automatizzato o meno così tu
potrebbe discutere bene chi se ne frega che posso solo
prova su qualunque cosa abbia come un iPhone I
avere un telefono Android e così via e
Ho solo assaggiato su quello ed è in esecuzione
la stessa versione di Android o cosa
dovrebbe essere ok, ma la verità è
che sai che questi problemi sono davvero
significativo in modo da poter causare arresti anomali
a seconda della versione ricca di iOS, sei tu
eseguendo un’API che potrebbe non essere
disponibile che stai chiamando
cruciale nello schianto e anche tu puoi
avere una sorta di errori grafici che
dipende dalle dimensioni dello schermo e dalle risoluzioni
e così via ed è stato interessante
Ad esempio penso che sia Android 2.1
Yonis è seduto qui puoi correggermi
se ho torto, ma c’era un Android
progetto di biblioteca che cercava di fare folk
e hanno dovuto implementare un po ‘di sicurezza
codice di infrastruttura e ha dovuto continuare
Android a uno e l’ho visto
di tanto in tanto la cosa di accesso sarebbe
fallire per il popolo danese questo è il
biblioteca giorno Nemi in modo da sapere che cosa
è ed è stato davvero reale
strano e si scopre che su Android
due uno penso che sia stato il numero intero
la lezione non era infallibile
questo significa che occasionalmente questo cripto
computer
stava succedendo fallirebbe e causare casuale
una sorta di errori di accesso errati , quindi è possibile
avere delle brutte differenze
diverse versioni del sistema operativo e
eseguire i diversi dispositivi anche un
la cosa interessante è se è necessario
supporta dimensioni di testo in più lingue
variare quindi se hai quattro lingue in
principio hai quattro volte il
testare l’onere perché è necessario controllare
che tutto il testo è ancora visibile
e sembra un bel bottale di patata e così via
quindi sì, c’è una differenza quindi ecco
la mia lista di criteri che voglio di a
strumento per supportare i test automatizzati
test di accettazione quindi prima di tutto e io
di solito lavorano nelle organizzazioni che lavorano
più vicino con gli uomini d’affari e
per questo motivo voglio provare e
minimizzare la distanza tra il reale
specifiche su ciò che l’applicazione fa che
è di solito una sorta di caso d’uso forse
in un documento Word e così via, voglio
minimizzare la distanza tra questo e
qualunque sia il mio codice di test, perché
se c’è un divario troppo grande, allora non lo sono
sono sicuro che sto testando la cosa giusta
quindi in particolare se c’è zero distanza
se simili le specifiche sono acute
come un test eseguibile bene allora sono a
meno sicuro che sto testando il
cosa giusta e voglio anche i miei test
essere abbastanza espressivo nel senso che
qualunque cosa l’utente possa fare, voglio essere
in grado di esprimere la stessa cosa dello stesso tipo
di azione nel mio petto anche io volevo
per essere efficiente anche giusto, perché tutti noi
sapere che anche il codice di test di scrittura è
qualcosa che costa tempo e
mantenerlo è costato tempo così tanto più
efficiente possiamo avere la tecnologia essere
e l’ultima volta che abbiamo speso automatizzato
test e anche noi preferiamo l’estensibilità
e questo significa parecchie cose ma
in particolare, sto pensando a questo
preferiamo l’open source contro chiuso
modello di origine e ad esempio Apple ha
una tecnologia che sta anche facendo
test di accettazione automatizzato ma il
il problema è che il ciclo di rilascio per
questo è così incredibilmente lento quindi se c’è
è un dollaro e ci sono box in a
versione particolare che devi aspettare
una versione maggiore o minore di questo
cosa particolare così solo tu sei giusto
stando seduto lì puoi archiviare un latrato
radar ma sai che non ho mai avuto
qualcuno risponde a un dollaro che ho file
quindi preferiamo l’ open source anche questo significa
che puoi prendere il progetto e costruire
la tua versione e usa quella per
testare bene ci sono anche problemi
di essere tu non vuoi essere troppo
basso livello quando esprimi i tuoi test
perché questo significa che se lo sei anche tu
specifico e cosa testare quando poi se
cambi leggermente l’interfaccia utente e poi tutto il tuo
i test stanno per rompersi e tu ne hai bisogno
torna a quello in modo che tu voglia restare
abbastanza alto quindi vuoi testare
abbastanza ma non troppo, perché questo
comporterebbe troppo mantenere i costi
finalmente abbiamo bisogno di supportare test e
ambienti realistici e cosa intendo
per questo voglio eseguire il mio test
dispositivi reali che funzionano in modo diverso
versioni di sistemi operativi e
supportare diverse lingue perché
questo mi dà più fiducia nell’app
Sto costruendo in realtà sta facendo il giusto
cosa e l’ultima cosa è che voglio
supporto CI va bene così questo ci porta a
calabash così la visione per calabash è
fare cross-platform
test automatizzati accettazione automatica
test dovrei dire e il modo in cui il
una sorta di interfaccia che ti interessa
è una tecnologia chiamata cetriolo
e quanti non cetriolo già circa
1/3 okay, quindi lo presenterò con l’esempio
ed è una tecnologia estremamente semplice
ma ci ottiene questa proprietà di avere
la descrizione di cosa dovrebbe essere l’app
fare allo stesso tempo essere un eseguibile
specifica bene dico multipiattaforma
e intendo iOS e Android
perché era così
mezzi multipiattaforma in Danimarca o a
Almeno in Europa, naturalmente, ci sono
altri giocatori sul mercato e lo faremo
cercherò di adottare quelli che dipendono da
necessità del cliente e in base a ciò che sai
come va tutto bene ora sosteniamo
Annihilus Android e e uno dei
visioni è che dovresti essere in grado di
riutilizzare quindi se stai costruendo un’app come
la stessa app per diverse piattaforme
come usare PhoneGap o stai usando
nativo per costruire la stessa app per Android
e iOS, quindi dovresti essere in grado di riutilizzare
quanto più possibile di te
testare il codice per provare a minimizzare il
in testa di nuovo tutto bene così calabash
girerà su emulatori di simulatori e su
dispositivi fisici che è uno dei
obiettivi del progetto supportiamo nativi e
app ibride
quindi per ibrido intendo app che incorporano il web
viste all’interno di app native e lo facciamo
non supporta applicazioni web pure che non sono le
intenzione di calabash è gratis in aperto
fonte e un punto importante è che noi
avere una società che sta sostenendo il
progetto quindi è stato uno studio recente di
testare i progetti e penso di no
sapere era limitato allo spazio mobile
ma certamente uno studio sull’open source
progetti e si è scoperto che la maggior parte di
loro hanno durata della vita di un anno
e poi sono morti un anno o
meno e sorta di morto, ma avendo un
società che sta sostenendo il progetto
si spera che possa dare più fiducia
in tal modo la redditività a lungo termine del
progetto in modo che le grandi aziende possano
in realtà investire in esso e, naturalmente
fornendo supporto aiuta con che, come
bene l’ultima cosa di cui voglio parlare
circa è ciò che chiamiamo device cloud o a
testare l’ambiente di esecuzione e questo è a
servizio a pagamento che offriamo come un
ulteriore servizio aggiuntivo che è possibile
puoi aggiungere alla zucca e che cosa
è quello che siamo in grado di eseguire
prove di calabash su dispositivi reali ospitati
dispositivi reali e il test verrà eseguito
parallelo su questi dispositivi e ottieni
il test ritorna e tu sai in
Oltre a ciò si ottiene un po ‘ visivo
rapporti di prova in modo da poter vedere cosa
la vostra applicazione si presenta come su diversi modelli
in vari punti sei un
esaminatore cosa significa e in realtà
Inizierò anche un test dal vivo
punto importante è che corriamo su non
zero dispositivi non rooted e cerchiamo di essere
il più autentico possibile di nuovo
questo puntiamo ad ottenere il più vicino al
ciò che l’utente finale sarà in esecuzione con
e supportiamo CI con questo come questo
linea di comando quindi voglio solo mostrarti
Dovrei dire che questo è un prototipo ma io
voglio mostrare questo video perché oscilla
c’era un primo prototipo di
laboratorio di test dove eseguiamo questi test
qui lo voglio vedere sul grande schermo
in realtà è un suono, ma non è stato scollegato
Stai scherzando a un certo punto abbiamo avuto suono
anche i telefoni e c’era a
cliente che stava testando molto molto
app strana che emetteva modem come
e questo è il punto in cui tutto il
i dispositivi simultaneamente emetterebbero questo
rumore e Yanis era seduto nella stanza
quindi decise di abbassare il volume
ma il punto è che possiamo eseguirli
prova su dispositivi reali e offre questo come
come un servizio cloud, sì, sembra un po ‘
più organizzato ora va bene così ora io
vuole cercare di fare demo per il resto della
il tempo di conversazione è buono e di nuovo lo sono
concentrandomi su iOS perché è così
quello che so meglio e userò a
applicazione di esempio che ho aiutato
sviluppato una forcella di prova che è per il
I danesi immagino che sia questo
bene internazionale è il Roskilde
festival come questo festival musicale a
e l’ area di Copenaghen dove abbiamo io
immagino che sia vicino a un centinaio di migliaia di
la gente così ha sviluppato il traffico
domanda per questo non ho intenzione di
parliamo troppo di quell’app che è
in realtà un tipo di interessante a sé stante
usa reagire come back-end it
effettivamente creato ciò che questo equivalente di
un ammasso reattivo di circa 50.000 nodi
perché ogni telefono del festival era un
reagire nodo e farebbe da pari a pari
scambio e quindi l’applicazione è
interessante va bene ma sono solo
concentrandomi sui test e
in particolare stiamo andando a testare
qualcosa di abbastanza semplice c’è questo
menu le cose che puoi vedere come il
artisti stanno usando solo i dati di test
alcune delle immagini alcune mancanti e
potrebbe essere incompleto ma il punto è
che ti piace andare a cercare
qualunque siano i tuoi artisti preferiti morti
scheletri e puoi leggere un po ‘ di
quelli e tu puoi ascoltare della musica
e puoi favorirli e così via e
inoltre abbiamo questo componente della mappa qui
si puoi usare la mia posizione e otteniamo
come una mappa festival integrata qui e
puoi scoprire dove sei che sarà
in realtà se si spinge a meno che uno di loro
se premi questo pulsante lo troverà
la tua posizione attuale e quale è
apparentemente da qualche parte negli Stati Uniti adesso
che è perché questo è il simulatore
e su iowa non lo usa solo
questo posto puoi
lo impostiamo così che voglio solo
fare un test simile come un accendino di a
prova per l’ elenco degli artisti per questo
e ma prima voglio parlare un po ‘ di
il cetriolo così il cetriolo è una tecnologia e
bene è un modo di scrivere di notazione
test e uno strumento allo stesso tempo così
questo è in realtà un cetriolo
specifica di una funzionalità del tuo
l’applicazione è solo molto semplice
esempio e come puoi vedere questo è
in realtà scritto in modo molto naturale
lingua hai qualcosa chiamato a
funzionalità che è come una funzionalità del tuo
è chiamato app
artisti e puoi avere un commento qui
come utente dovrei essere in grado di vedere tutto
informazioni pertinenti su artisti come
quali artisti suonano quando e loro
paese e così via è solo un commento
e quindi ciascuna caratteristica è costituita da a
numero di scenari e lo scenario è
un po ‘come un caso d’uso così dato che sono su
il menu quando vado alla lista degli artisti
allora dovrei vedere la lista degli artisti
ordinato correttamente, quindi se sei in
il dominio di questa app che vorresti sapere
esattamente cosa significa e immagino anche
se non sei ancora capisci cosa
questo significa in modo che questo è controllabile e
ecco un altro scenario, quindi se vado a
la lista degli artisti e io scorrere fino alla morte
scheletri e tocco gli artisti morti
scheletri quindi dovrei vedere i dettagli
dettagli dell’artista per scheletri morti così
questo è qualcosa che è leggibile dall’uomo
è leggibile da persone non tecniche
come se tu fossi in una banca che potresti
esprimi questo nella lingua di una banca
ma allo stesso tempo questa cosa è
in realtà una specifica eseguibile così
questo era l’artista ce n’è anche uno
dalla mappa come partecipante al festival, dovrei
essere in grado di ottenere una mappa del festival
sito dovrebbe includere punti di
interesse e posizione attuale quindi ecco
uno scenario dato che sono sulla mappa quando io
accetta il pulsante della mia posizione che era
quello che ho cercato di trovare poi la mappa
dovrei trasferirmi nella mia posizione che è molto
comprensibile o dato che sono sulla mappa
e io sono in scena lei sbagliato che è uno
delle fasi musicali quando è al mio
posizione quindi la mappa dovrebbe passare al mio
posizione e dovrei
vedere la pagina arancione va bene così questo è
comprensibile e ma la cosa interessante
e questo è che è allo stesso tempo
eseguibile quindi se eseguo questo comando
cetriolo eseguirà tutto il
caratteristiche che ti ho appena mostrato l’SDK
versione che selezionerà solo l’ SDK di iOS
versione così 5-1 in questo caso in realtà perché
non vedi che sta dicendo 5-1 ok?
questo è meglio quindi proviamo a farlo
rileverà dove è attualmente la mia app
a e inizieremo a farlo lo faremo
Aspetto il menu e sì sì
abbastanza veloce è andato nell’artista e
poi asserito che era lì ora andremo
attraverso i dettagli dell’artista e controlleremo
che sei nella pagina degli scheletri morti
ora entra nelle mappe tocca la mappa
pulsante in modo vedete quelle e aspetta
un po ‘ perché il dispositivo deve trovare
posizione ora fa la cosa dove io
ho detto una volta che l’hai visto così, vedilo
simula l’occasione nella fase arancione
qui e non va bene così
sembra una specie di diritto magico che ho scritto
questo testo in chiaro e poi eseguo uno strumento
e poi boom è un test di accettazione
per la mia app e ovviamente è completa
illusione ed è il modo in cui cetriolo
funziona è che tu hai ciascuno di questi
scenari che quelli corrispondono a testare
casi e poi hai ciascuno di questi
i passaggi in linguaggio naturale sono quelli che vengono chiamati
passi e il modo in cui funziona è quello per
ciascuno dei passi che devi dire
cetriolo cosa vuol dire questo passo
termini del codice eseguibile così per ciascuno di
questi c’è un cosiddetto passo
definizione che in realtà non lo fai
devi capire i dettagli di questo
eppure lo piegherò un po ‘a cosa
la definizione del passo è che è così
un qualcosa che associa un regolare
espressione qualcosa che corrisponde al testo
con un blocco di codice così il modo in cui cetriolo
esegue è che ci vuole un passo e
troveremo una definizione di passaggio in cui il
l’espressione corrisponde a quel passo quindi lo faremo
eseguire il codice del blocco corrispondente
se c’è un’ambiguità che ti darà
un avvertimento e la regola è che se questo
il blocco di codice viene completato senza lancio
un’eccezione quindi il passaggio passato
altrimenti è fallito in modo abbastanza semplice
modello e ora i miei ID sono impazziti tutti
giusto e questo sta usando Ruby perché
questa è la lingua preferita per
Esprimendo test per cetriolo c’è
anche un progetto chiamato cetriolo JVM che
ti permette di correre o piuttosto di definire
passi in altri ben in lingue jvm
come la chiusura di Java o Scala siamo
supportando Ruby adesso ma lo faremo
alla fine supportano anche JVM
lingue per esprimere il passo
le definizioni vanno bene ora lasciami andare nella mia
usando Emacs per la mia presentazione di diapositive I
pensato che oh sì, l’abbiamo eseguito io
voglio inviare questo al cloud così
eseguire mentre stiamo prendendo un caffè e
divertirsi poi correre su dispositivi reali e
poi torneremo più tardi e vedremo
i risultati del test così puoi farlo
per favore non guardare quello che sto avendo
perché questa è una chiave segreta, lo farà
essere online questo è stato registrato video
quindi la mia chiave API segreta è ora totalmente
visibile a tutti e vado e
cancellalo dopo questa presentazione così
non funzionerà il punto è che ho un
strumento da riga di comando Ho un app che voglio
eseguire un IPA o un file apk e ho un
La chiave API in realtà userò una diversa
uno questo è il meno doloroso sito com
qui puoi creare chiavi API e cosa
quelli sono è fondamentalmente elencano come
vuoi eseguire alcuni telefoni che voglio
eseguire un 3GS 5 1 e un 4 4 3 3 e un 5 foreste
Non voglio eseguire l’iPad che voglio
corro inglese e io genererò e
quella che viene chiamata una chiave API per me e questo
è questo il segreto che uso nel mio test
quindi torniamo dove sei andato
Sì, io uso questa chiave invece e lo farà
carica e controlla quale versione di
calabash che stai usando e che cosa
dipendenze che hai e verrà caricato
questo a un’esecuzione cloud richiederà a
pochi secondi okay ora vai a prendere un caffè
o ne ascolti ancora un po ‘così come
si inizia con calabash è
in realtà abbastanza semplice che vogliamo avere
puoi installare ed eseguire è possibile
vai a questi link Ti darò questo come
parte del materiale di presentazione e
vuoi vedere come il cetriolo esegue a
tempo di esecuzione e vedremo come è possibile
refactoring alcune cose quindi entriamo in a
versione fresca di questa moschea EULA
progetto del festival ne ho uno che è quello
non usando la zucca, andiamo dentro
così per fare questo e in effetti lasciami solo
aprilo così puoi vedere che non sto barando
il mio Brian è andato stavo per prenderlo in giro
con un MacBook più veloce di lui
va bene così ho questo progetto bene
non c’è molto da vedere che io possa eseguirlo
simulatore nascosto ancora una mappa ok io sono
non lascero ‘questo cosi’ da te
posso dire che puoi installare Calabash di
leggendo le istruzioni qui una volta che lo fai
questo puoi dire setup calabash iOS
leggermente diverso su Android ma lo è
lo stesso tipo di formula e questa volontà
scarica la struttura attuale della calabash
La versione spiegherò un po ‘di più
un minuto e verrà effettivamente modificato
il tuo file di progetto Xcode per generare a
nuovo obiettivo che è possibile utilizzare per il test
e vediamo solo che era così
veloce
vedi qui ora c’è un obiettivo no
non stai bene, ok, c’è un bersaglio
kal che è una lista di calibri di calibri
invece di parola è una versione del tuo
app dove usi in calabash e
c’è uno schema corrispondente che puoi
corri e questo ti dà effettivamente dici
la stessa app che avevi ma anche quella
include del codice per i test automatici
e spiegherò un po ‘cos’è quel codice
in un momento per ora questo è solo per
facendo il setup in modo che corra e io abbia
per guardare i video gli utenti si sono un po ‘stancati
di quello sì, se sei solo meno di
una persona così ora siamo in realtà costituito da
usa la zucca ma abbiamo bisogno che ce ne sia bisogno
avere una particolare struttura di file da utilizzare
questo strumento cetriolo e lo strumento può
genera anche questo , quindi fai il caralho
cyrus gem da generare e me lo chiederà
devo creare funzionalità sì, per favore e
ora viene creata una cartella delle caratteristiche
possiamo non sapere che non lo so nemmeno
qual è la funzione ma la eseguirò
scrivendo semplicemente cetriolo Corro sulla
la versione iOS più recente che inizia con I
scorri verso sinistra che non fa nulla
era solo un caso o non casuale
questa è solo una funzione impalcatura
rimuoviamo questo era quello
hai ordinato la verruca ora vedi questo è il mio
struttura della cartella del progetto e la cosa
quello che è stato generato era questa cartella
caratteristiche in cui metti tutto il tuo cetriolo
caratteristiche e passo corrispondente
definizioni ne sta generando uno
ha chiamato il mio primo lungometraggio che è molto
poco interessante per la maggior parte delle app e così facciamo
scrivi uno che è una lista di artisti artisti
e questo non ha alcun senso, giusto
dato che sono nella schermata di benvenuto, faccio scorrere
a sinistra e io no e aspetto fino a quando non vedo
non scorri verso sinistra e prenderò un
l’immagine quindi non è interessante per noi
quindi ora dobbiamo iniziare i test e cosa
Voglio testare è se cominciamo appena Yep
Dovrei disabilitare questo e posso semplicemente toccare
questo e e vedrò 2100 giorni okay
e calabash in realtà viene fornito con
qualcosa che è chiamato predefinito
passi che è possibile scrivere del testo
passi passi di cetriolo senza dare a
definizione del passo corrispondente perché
in realtà erano già venuti
con la zucca in modo da poter effettivamente iniziare
scrivere una prova in linguaggio umano che
è un po ‘strano e devo
ricorda cosa voglio testare qui che abbiamo
impostare sì va bene così voglio e voglio
aspettare che il video vada via e a
vedi questi artisti e voglio toccarlo
e poi voglio vedere questo
questo gruppo di vent’anni aspettato
aspetta vedere artisti quando tocco questa cosa
Dovrei vedere 120 giorni ok proviamo e
eseguirlo è in realtà mantenuto un po ‘ di questo
no, eseguiamolo dalla riga di comando
Faccio cetriolo e voglio eseguire SDK
la versione è uguale a cinque e lo sarà
riavvia l’app avvia l’esecuzione di snart
un tocco in attesa e poi qualcosa è fallito
che è un po ‘ interessante a cui dice
io dovrei vedere 21 su 20 giorni ma io
non ha trovato questo testo ok e il
ragione per cui ciò sta accadendo se iniziamo
l’applicazione
oh uomo è stato anche peggio come sviluppatore
destra
il motivo per cui questo effettivamente taglia
che è davvero fastidioso okay, quindi facciamolo
cambiare il motivo per cui è stato davvero
importante che i divieti siano stati scritti in
questo modo particolare quindi guardiamo
il video ancora una volta si davvero odio questo
Alla fine della giornata va tutto bene
i test sono ecologici
quindi vedi che non ho scritto un singolo
linea di codice Ruby da te in realtà inizia
testare così quelli sono chiamati predefiniti
passi con calabash okay sì esecuzione
con Ruby Mon puoi davvero integrarti
questo con il tuo IDE che può o non può
essere interessante per te se stai usando
questo mio ID di Ruby è effettivamente eseguibile
da qui, tranne che è nascosto
dall’IDE mmm che è gentile e bello
come ti mostrerò in un minuto che puoi
impostare effettivamente i breakpoint e ottenere un
esperienza di debug e così via tutto bene
quindi un punto del nostro cetriolo è quello
il cetriolo è davvero un affare
dovresti esprimere i tuoi test o meglio
dovresti esprimere le tue specifiche
in termini di lingua del business
e questo non è proprio il linguaggio di
il business bene immagina di essere in un
banca così gli affari sono una banca questo è il
Affari del festival di Roskilde e tu lo sai
Immagino che sia abbastanza neutrale ad aspettare
qualcosa o toccando qualcosa ma
è in realtà non ha nulla
in particolare a che fare con Roskilde
festival o questa app quindi proviamo e
rifattalo in modo simile a un cetriolo
di fare le cose e voglio essere sicuro
Io uso la formulazione giusta qui, quindi lo farò
imbroglia un po ‘solo per essere sicuro di non esserlo
incoerente con alcune cose imminenti così
Ho deciso che il business di questa app
non è quello di avere due scenari che sono
non è lo stesso nome così dato che sono sul
menu giusto quando tocchi il menu degli artisti
articolo e vedo una panoramica per il
il gruppo sì, è un po ‘implicito
ma quello che sto dicendo è che quando vado a
gli artisti I
per vedere questa band, ma ora sono io
certamente non sto parlando nel
linguaggio di pulsanti e testi e così sono
solo parlando di potrei parlare
questo al cliente piace e racconta
lui è questo che vuoi tu
vai al menu tocca la voce del menu e tu
dovresti vedere questo e loro sì, sì
peggio ma sfortunatamente non lo è
Eseguibile giusto quindi corro questo lo farà
mi lamento e dimmi che dopo il
video
beh non hai definito tutta questa roba
cos’è tutta questa roba significa e lo sarà
in realtà ti danno una definizione di te
può farlo bene in modo da andare in questo
cartella chiamata definizioni passo c’è
uno ha chiamato i miei primi passi
questo è stato generato automaticamente non ne abbiamo bisogno
okay e ora mi dice per favore dimmelo
cosa significa essere nel menu e in
Infatti puoi usare qualcosa che è
chiamato macro o step che deve riutilizzare
all’interno della definizione non come un passo ma
dentro la definizione di un passo che puoi
usa un altro passaggio per poter dire macro
e aspetto di vedere artisti che penso sia
che era solo l’implementazione che avevo
prima ma ora lo chiamo così
parlare da un altro e ho toccato il
menu artisti che è facile micro tocco
artisti va bene e io vedo una panoramica per
la band quindi questo è un punto interessante
così ho detto che il cetriolo usa regolarmente
espressioni ma puoi effettivamente avere
catturare gruppi all’interno di quelli regolari
espressioni in modo da poter avere qualcosa in
cita fondamentalmente e quella cosa sta andando
da passare come parametro qualunque
testo questo è qui sarà
passato come parametro al tuo test
sceneggiatura quindi questo è un artista o una band quindi io
potrebbe sostituire questa cosa tra virgolette
qualsiasi cosa retrò dovrei vedere allora voglio
a
per favore scusa il mio Ruby, questo può sembrare un
un po ‘ strano ma questo è solo Ruby a
notazione per una stringa in cui posso collegare
in tutti i tipi di citazioni di cose e e
variabili qui, quindi voglio artisti ma
quindi ricorda che dovevo mettere una barra
proprio perché c’era una barra nel
testo ma nota che all’interno della mia attività
caratteristica non sto usando la barra così
lo rende un po ‘più leggibile e
comprensibile e nasconde il
i dettagli tecnici funzionano okay possiamo
esprimere in termini di business così ora
hai visto come il modo più primitivo
di usare la calibrazione come configurarla
e e alcune delle mie presentazioni sono sparite
mancandoci ci andiamo
ora quello che ho scritto qui è che voglio solo
avere alcune diapositive sull’architettura
e controllerò in tempo perché voglio
per assicurarmi di avere tempo per il divertimento
roba che faccio per rimetterti in
modalità di presentazione solo due diapositive qui
quindi in generale l’architettura di
calabash hai la tua app perché
ibrido nativo e poi hai
qualcosa che si chiama calabash
clienti e tu puoi avere diversi
diversi clienti in modo da averne uno per
iOS e uno per Android sono entrambi
scritto in Ruby e abbiamo un
progetto sperimentale che viene chiamato
calabash JVM che dovrebbe essere condiviso
client per calabash Android e calabash
iOS dove scrivi il tuo passaggio
definizioni e linguaggi basati su JVM ma
il punto è che puoi avere più e
la ragione per cui puoi S è perché è un
architettura client-server così hai
la tua app e poi hai una calabash
server e in realtà i client lo faranno
parla JSON su HTTP con il tuo server così
questo significa che è abbastanza facile creare un
nuovo cliente perché tutto quello che devi fare è
creare il lato client di questo yip HTTP
quindi questa cosa server è seduto accanto
la tua app e fa cose come perform
tocca eventi o guarda nella corrente
osserva ciò che porta lì là qualunque cosa
l’immagine è ciò che i pulsanti e così via e via
iOS e via e
ci sono leggermente diversi
architetture ma è fondamentalmente il
stessa cosa che sta succedendo su Android
hai una speciale app separata e la tua
App non modificata e poi ne fai un po ‘
roba magica per dare lo speciale
un privilegio per eseguire eventi di riflessione
sulla tua app su iOS non puoi farlo
è necessario collegare in un quadro speciale
che incorpora questo server HTTP ma esso
non cambia la tua app tutto ciò che fa è
eseguire eventi di tocco e interrogare nel
vista di si, va bene così ma è lo stesso
modello di base e il modo in cui funziona è quello
hai le tue caratteristiche e hai il
strumento di cetriolo che eseguirà il tuo
caratteristiche e che produce risultati dei test
e quindi all’interno delle definizioni del passo
che sono scritti in Ruby o forse Java
ad un certo punto userete il
clienti calabash o calabash Android
o calabash iOS o entrambi se ci stai provando
per fare la condivisione esponiamo un’API che farò
mostrarti in un momento che puoi usare
fare cose troppo ma fondamentalmente vedere che è
tutto quello che sto facendo è davvero leggero sulle diapositive
eccoci quindi facciamolo così sì
hai visto come puoi usare predefinito
passi abbiamo visto come è possibile utilizzare la macro
passi ma non hai visto al divertimento
roba è un peccato per questo ragazzo che è
Mancano tutte le cose divertenti okay the the
API sottostante è ciò che il potere che
ti dà è che puoi guidare di più
test robusti quindi dice che non lo sono
sensibile ai problemi di temporizzazione che si arriva a
scrivi più potente ce ne sono così tanti
cose che non sono definite in
passaggi predefiniti in modo da avere di più
potenti api hai prove più veloci
perché ci sono alcuni pesi incorporati
nei passaggi predefiniti e come farai
vedi c’è una sorta di interattivo
esperienza di sviluppo che lo farò
mostrarti così che significa che lo sviluppo
i test sono più efficienti e così facciamo
iniziare con quello effettivamente usando un
cetriolo per eseguire i test è abbastanza lento
giusto così se sei qui nel tuo
redattore che scrive i tuoi test che stai scrivendo
le tue specifiche che stai entrando nel
definizione del passo e poi scrivi
qualcosa qui la mia strana funzione blah
blah e poi corri l’intero test
suite fino al punto in cui questo esatto
linea di codice viene eseguita e, naturalmente
la funzione non esiste hai fatto a
sbagli lo aggiusti e poi vai dappertutto
ancora
questo non è un modo molto efficace di
lavorando così per quel motivo che ci piace
una modalità interattiva dove puoi
parla in modo interattivo alla tua applicazione
fondamentalmente, quindi dimostriamo che il modo in cui te
eseguirlo è lei avvia manualmente la tua app
e poi facciamo l’app qui
e poi si um si esegue dispiaciuto dalla
linea di comando tu corri ore di calabash
console e cosa per Ruby ragazzi questo è
solo la RP che è caricato con la
calabash I ap è per tutti gli altri è
una cosa magica che renderà la tua vita
meglio, okay, quindi quello che puoi fare qui è
puoi sperimentare con l’IP di calabash
ghiaccio così per esempio che di TAP artisti I
mai realmente interagire con loro
scroll table view down Rob okay o tu
posso vedere che non riesco a ricordare cosa sia questa cosa
si chiama ma posso ispezionarlo okay
pulsante di ricerca hmm un sacco di pulsanti tutti
questa informazione è in realtà una matrice di
hash array di mappe e puoi vedere
ci sono due pulsanti che sono quelli –
il modo in cui funziona calabash iOS è quello
usiamo qualcosa che viene chiamato
accessibilità sul dispositivo che è veramente
divertente mi piacerebbe mostrarlo che significa
quella
non puoi sentire questo o forse tu
non riesco a sentirlo sul video in modo che il
l’app è pensata per gli utenti disabili
in grado di utilizzare app in modo che sia disponibile su on
per favore, zitto
buono è disponibile su tutti i dispositivi iOS
che sono più recenti di 3d penso ma
la cosa bella è che in realtà dà
noi un modo molto carino da un grip di prova a
identificare gli elementi è come ID ci sono
in realtà qualcosa chiamato accessibilità
ID che è questo ma accessibilità
le etichette sono la cosa che dirà
quando ti concentri su un particolare
elemento in modo da avere una funzione chiamata
etichetta che estrae quelle etichette
dammi tutte le etichette ce n’è una
richiamato al menu e condividere i Mi piace su
Facebook
okay, torniamo al menu e ci siamo noi
va bene così quello che puoi vedere è che tu
è possibile ordinare che è possibile esplorare l’API
quella calabash che iOS offre come query
come toccare e toccare non funziona perché
Non sto dando alcun argomento e un mucchio
di altri APR disponibili e questo
ti dà un modo interattivo va bene così
troviamo un esempio supponiamo che io vada al mio
meno telecomando è così divertente andare
artisti e voglio verificarlo lì
è un’etichetta particolare che ha a
testo particolare ma voglio essere sicuro
quell’etichetta è all’interno della vista tabella
e puoi usare questa funzione di query
che è una query molto generica
meccanismo che farà come arbitrario
query nella vista visibile corrente
che è quello che di solito hai bisogno e prova
quindi puoi farlo interrogare la tabella e
troverà tutti gli oggetti tableview dell’interfaccia utente in
la visione corrente che è immiscibile quale
è completamente privo di senso perché voglio
le celle non sono effettive, c’è solo
una vista tabella ma ci sono un sacco di
cellule ne vedi un mucchio
ma la query supporterà quindi la nidificazione
puoi attraversare la gerarchia così dentro
supponiamo che la prima cella della tabella di visualizzazione trovi
io tutte le etichette
va bene così un sacco di etichette che voglio
non filtrare in realtà che è ispezionare quelli
quindi puoi dare un secondo parametro che
è un selettore chiamato sul
risultato oops
quindi ispeziona quelle etichette e dammi quello
prova il testo quindi c’è questo che è
quello che vogliamo ma poi c’è anche
la descrizione e il codice della lingua così
ora posso scrivere query dire usiamo questo
Posso filtrare in base a questo così all’interno del
primo tipo di voi vendermi trovare un’etichetta
che ha un testo di 120 giorni di barra okay
e ora posso esprimere il test in termini
di questa API che non riesce lancia un
eccezione che va bene a seconda
se questo risultato è vuoto o no
giusto così hai un bel potere
meccanismo qui un’altra cosa che puoi fare
è possibile modificare la direzione della traversa
di solito va verso il basso dal tavolo
al tavolo che vendi all’etichetta ma
puoi anche cambiare direzione in modo che tu possa
fai etichettare gli artisti del testo che è questa cosa
quassù mi capita di sapere in questo
applicazione c’è un’usanza
implementazione alla barra di navigazione così
ma non riesco a ricordare il nome della classe, quindi mostra
io la genitore vista così genitore cambia il
direzione di ricerca per andare in alto ok e
questo è completamente illeggibile perché
ti dà ogni sorta di utile
informazioni e mi interessa solo
i nomi delle classi in modo da poter fare ordinario
Programmazione di Ruby qui che è un array I
può mappare un risultato di matrice
dammi la classe dei risultati così ho
ora scoperto senza guardare il
codice sorgente che ho scoperto in modo dinamico
che l’applicazione utilizza una navigazione
bar va bene tutte le domande sulla query I
Voglio dire, so che è una presentazione veloce ma tu
ottieni il potere che puoi esprimere
nei tuoi casi di test puoi esprimere
requisiti abbastanza dettagliati su ciò che il
Interfaccia utente dovrebbe essere simile o Quali proprietà
come il testo di un’etichetta o il colore di
un’etichetta
proviamo un nuovo colore, penso di me
implementare quell’etichetta di query se possibile
ricorda che il selettore corretto non lo è
colore è qualcos’altro era colore
ah ci andiamo suppongo che abbiamo ottenuto
rappresentazione di tutti i colori
i colori correnti delle etichette il punto
è che hai una buona quantità di
potere espressivo in questa query lascia
passare tutto bene yeah Così cerchiamo di
cambiare la nostra suite di test che sto per
deliberatamente vado nel tempo perché io
promesso a causa della cosa del pranzo così
spero che stia bene così stava usando
passaggi predefiniti cambiamo questo in
usando questa API va bene così sono nel menu
quello che voglio davvero è che voglio
non solo interrogare per un testo di apertura I
voglio interrogare che c’è un pulsante
che ha artisti di etichette di accessibilità
va bene così qualcosa come questo pulsante di query
c’è un nome speciale che usi
contrassegnato per denotare etichette di accessibilità o
ID di accessibilità e infatti lo voglio
fai questo in modo interattivo quindi controlliamo
questo che dà davvero un risultato
mentre questo non lo fa, ma questo è giusto
qualcosa di un ritorno al risultato che voglio
qualcosa che getta un’eccezione in
caso questa cosa non è lì e in effetti
Non voglio nemmeno farlo, facciamolo
prova e fallo
verifica elemento esiste facciamo il test
boom failure ma la ragione è cosa fa
qualcuno sa che sto dicendo che questa cosa dovrebbe
essere lì ma il punto è che c’è
un’animazione che sta andando bene e
è acido che finalizza il menu diventa
visibile e solo allora è il pulsante
disponibile quindi ho bisogno di usare l’attesa ok
quindi c’è una funzione e aspettare
elementi esiste
nota che questo richiede una serie di
elementi per aspettare ok proviamo e
eseguilo e attenderò a
valore predefinito di 10 secondi per questo
cosa apparire e poi una volta che sono
in grado di scoprirlo ed è solo che siamo
andando così è necessario quando scrivi il tuo
test devi solitamente esprimere quelli
in termini di attesa invece di asserire
che qualcosa è immediatamente lì
devo dire aspettare per questa cosa
sembra di ottenere un test robusto tutto bene
e così posso andare a toccare il menu degli artisti
e tocca il pulsante per contrassegnare questa cosa
il modo per gli artisti va bene, ma poi c’è un
c’è un’altra cosa che succede qui se
si avvia l’ app quando tocco artisti
c’è in realtà un’animazione e poi
vedi questa cosa qui è a
barra di navigazione con la parola artisti
che mi dice che ora sono sul
pagina degli artisti quindi scriviamo un test per
così posso aspettare che sia lo stesso
gli elementi delle cose esistono e lo ricordano
prende una matrice e poi puoi ricordare
da prima se fai la console che io
Volevo avere un’etichetta qui ma
che era all’interno di un componente personalizzato
giusto ti ho interrogato come visto attraverso Gatien
bar se ricordo bene facciamo solo
controllare sì così che cosa voglio davvero
espresso non è solo il testo dovrebbe essere
lì ma dovrebbe essere nella navigazione
bar quindi scriviamo una query per quello
testo dell’etichetta
artisti va bene che funziona è testato
ora possiamo incollarlo e questa cosa
Sto facendo ora è ciò che intendo avendo
un’esperienza di sviluppo interattiva
lo provi nella console incollalo
nel tuo codice e poi sei fuori sì
Non ho intenzione di attuare questo, solo
eseguilo per ultima cosa solo una ricerca
questa caccia è questa banda di 120 giorni
vedo che ti ho dato una coppia
esempi dell’API e questa query
questo è un colpo, c’è tutto
di giullari di cui potresti aver bisogno e così facciamo
vai alla risposta leggermente più avanzato si
hai visto tutti così tante cose così
ci sono un paio di cose avanzate
calabash iOS supporta almeno questo no
tutti loro fino io non ho visto tutti loro
in altri framework per fare automatismi
testare uno di loro è quello di esibirsi
gesti di tocco arbitrari sulle visualizzazioni e così via
in particolare per le applicazioni iPad
a volte ha bisogno di strano solo da fare
qualunque sia l’ uso è fatto e il test
framework supporta questo ti mostrerò un
esempio andiamo in modalità interattiva
e aspettiamo di poter avviare la console
nel frattempo andiamo a questo
kamemon simon ti mostra questo, ma è
come l’utente può creare il proprio
candidati e qui hai questo più grande
cosa che reagisce al tocco diretto
eventi che puoi effettivamente interagire con esso
solo dicendo SAP credo che 58 funzionerebbero
sì ma ignoriamolo per un momento
quindi c’è qualcosa che si chiama a
registrazione inizia e che sarà effettivamente
inizia a registrare un tocco particolare
gesto che sto per esibire quindi andiamo
basta registrare un gesto in cui lo spostamento
su qui sì, poi dico record end e io
posso dare un nome a questo nome e adesso io
può effettivamente usare questo come un particolare
azione nel mio test per cui dici la riproduzione
salire ed eseguire quella sequenza di
toccando quindi ero un po ‘lento che è
un po ‘freddo, ma quando lo fai tu
scopri che spesso hai bisogno di specie di te
so che voglio eseguire questo evento di tocco
ma voglio farlo leggermente in modo diverso
quindi quello che puoi fare è spostare il
posizione in cui si sta giocando di nuovo a
toccare gli eventi utilizzando il testo dell’etichetta della query
Oh, quindi ora ho intenzione di spostare il trascinamento
evento in una posizione diversa, quindi ora
in realtà toccato lo zero – e spostare
quello su e tu puoi fare altre cose noi
posso dire interpolare e andare avanti e ora
In realtà ho intenzione di prendere
quella sequenza di eventi tattili I
compiuto ho intenzione di allungarlo così
che in realtà muoverebbe due celle
invece di uno puoi immaginarlo
essere utile se hai qualche tipo di
funzionalità di trascinamento che si avvia appena
questo è un testo dell’etichetta di una query che dice oh tre
e tu puoi fare fine che è la fine
punto lo sto allungando per etichettare il testo o
uno e ora dovrei vedere che lo è
in realtà in movimento – che è abbastanza cool
Amo questa cosa così questa interpola
che può ricordare che ho appena fatto un
registrazione di apertura di una sequenza di
toccare gli eventi e poi l’ho cambiato io
trasformato usando query e usando
interpolare quindi è molto molto
meccanismo generico che dovresti essere
in grado di implementare la maggior parte dei gesti I
non l’ho visto solo non potevo
implementare su Iowa utilizzando questo così se
stai usando iPad o se ne hai la certezza
trascinamento o qualsiasi altra pressione prolungata
qualsiasi funzionalità tu abbia bisogno di te
può usare questo meccanismo ma è una specie di
un’API avanzata va bene una tastiera
fai una voce sulla tastiera perché penso che sia
il divertimento non può dare un nome alla tastiera per entrare nell’automobile del testo
qualcosa voglio qualcosa di più
perché è divertente guardarlo
è abbastanza bello, quindi sta usando
la tastiera del software per entrare
testo arbitrario e in realtà capovolgerà
tra queste tastiere
Kiba pensa di trovare i personaggi che
è una specie di cosa carina da fare in modo che tu possa
usa la tastiera all’interno dei tuoi test
la posizione dice che è supportata solo
su Iowa’s 5-0 perché sta usando un
API sottostante disponibile solo
lì ma puoi effettivamente fare un po ‘
roba interessante ambientata in realtà facciamo
vai alla mia posizione che è da qualche parte dentro
lo stato di ricerca degli Stati è posto
la sede dell’ufficio è scomparsa, ma possiamo
tocca questo e vediamo che ci stiamo effettivamente
tutti noi ora e questa è l’API che ho usato
per mettere la mia posizione nella scena ansiosa
al festival di Roskilde , quindi puoi farlo
ma solo su dispositivi iOS iOS 5 zero plus
supporto web dispositivi dovrei dire alcuni
parole su quelli sì finalmente sì sì
è su Android sì no no è perché
la mia mente è collegata a iOS, quindi quando dico
è solo iOS 5 oh vuol dire che è solo attivo
su iOS è solo il file 5 sopra e oltre
e su Android è lì e anche se io
dovresti chiedertelo onestamente seduto lì
sta facendo lo sviluppo Android ma
Android può fare la simulazione della posizione che siamo
usandolo per un client web così
sfortunatamente Brian se n’è andato sono triste
perché il punto è che con il web noi
può effettivamente testare le app PhoneGap e
app ibride che sono app native
incorporare componenti web che io conosca
stanco ma voglio finire questo
e mantenere la mia promessa su come ottenerti
tardi a pranzo quindi dove ne abbiamo
webcam da notizie
sì così nell’implementazione questo è
in realtà venire al sistema di gestione che
genera questo contenuto web
va bene mentre te ne vai, lo so
Thomas è in esecuzione, ma di solito la query
funzione che si può effettivamente interrogare nel
webview quindi questo mi dice solo sì
questo è un leggero tecnicismo qui
che la funzione di ricerca ti lascerà
cose di filtro in cui il centro del
componente non è visibile quale era il
caso qui, quindi interrogiamo la nostra webview
mi dice okay c’è una webview ma che cosa
Voglio davvero fare è guardare dentro
HTML l’attuale Dom della webview e
puoi usare i selettori CSS per fare questo CSS
: dammi tutti i paragrafi okay a
un mucchio di paragrafi, diamo un’occhiata a
il primo in modo che tu possa effettivamente
leggi quale sia il risultato e se ti concentri
su questo quindi è una mappa di tutto il
cose interessanti qui è l’HTML P
classe nome corpo testo aiutaci a riempire così io
Immagino che è sì questa cosa qui aiuto
riempiamo l’ area del pubblico blah blah blah
bla bla così puoi guardare in questo e
e puoi selezionare selettori CSS arbitrari
qui puoi usare XPath se vuoi e
la cosa bella è che non ho un
esempio in questa app qui, ma una volta che hai
selezionato qualcosa che puoi eseguire tocco
su di esso giusto quindi questo significa che puoi
effettivamente guidare un’applicazione web da
trovare gli elementi Dom corrispondenti
e facendo un tocco mi credi io
non dovrei provare a trovare un’app dove io
può anche non credermi venire qui
in seguito e ti mostrerò un vero e proprio
app dove toccare un link ora tutti
mi crede perché ho appena dichiarato
che funzioni ma non c’è niente qui
è interessante da toccare ma usando a
combinazione di query per affermare nel web
le visualizzazioni toccano per interagire con i componenti
e la tastiera in cui puoi effettivamente guidare a
buona quantità di applicazioni web che utilizzano a
API a basso livello su cui pianifichiamo
estendendo e rendendo di più il più simile
credo che l’API del selenio per il web sia a posto
Ti risparmierò per query avanzate
punto con quello spaventoso è che puoi formare
selettori arbitrari di obiettivi-c su
ottica che trovi quando fai una query
come se tu potessi formare metodi su un delegato
per un tavolo
e così via ma è roba abbastanza avanzata
ora torna alle cose qui se tutto va bene
bene questo è un rapporto di prova in realtà
stato eseguito nella nuvola yeah lo ha fatto
questo è stato il test che ti ho mostrato inizialmente
in esecuzione sul simulatore che ha testato
artisti e mappa ho eseguito questo sul
dispositivo cloud e per fortuna tutto
passato che è in realtà leggermente
barare che ti mostrerò perché in a
momento e non perché non funziona
ma perché il test era un po ‘così
quando entri qui, lo farai davvero
vedi che ho inserito vari screenshot
punti puoi controllarlo dal test
codice quindi il punto è che vedrai sul
Ho corso corse su tre telefoni in esecuzione
diverse versioni di iOS 5 1 1 4 3 3
e 501 e diversi modelli il
foresta è il quattro e il 3GS e e
genererà effettivamente un test visivo
segnala che puoi mostrare al tuo
uomini d’affari o puoi usare solo per
discutere e vedere se la nostra grafica
errori e questo funziona nel
roba di simulazione funziona davvero
dispositivo è quello che è il primo test solo
una ricerca che posso vedere la mia posizione
qual è la posizione del dispositivo
che è un segreto non guardarlo ora
non è segreto
è il nostro ufficio e quindi è questo
dove simulo la posizione così effettivamente
quello era un po ‘un inganno qui qui
l’API di simulazione ha funzionato qui
in realtà non lo facevo e io ero perché quello
il telefono era un 4-1 1 e qui non è stato ma
questo perché avevo un leggero tempismo
bug dove posso generare anche l’immagine
in anticipo a seconda quindi c’è come un
problema di temporizzazione e dice che il punto è
che puoi eseguire questi test sul reale
i dispositivi e gli iowa sembrano essere
funziona abbastanza bene e abbiamo
clienti con arresti anomali ma in corso
Android ottieni cose del genere
quindi abbiamo un rapporto di prova in corso
sul numero di diversi Android più recenti e
versioni precedenti di Android e un numero di
diversi modelli e questo è solo un
casuale come per screenshot della prima pagina
di un’app da Android Market usala
per essere Android Market
e vedi che hai questa schermata iniziale
qui e poi ti è sembrato strano
cosa grafica succede in questo caso
su un HTC Wildfire su due a uno e qui
se la grafica è un po ‘ sbiadita, io sono lge
grafica più strana più grafica strana
e uno dei miei preferiti è qui
sì questo è il mio preferito così questo è
hai il logo di casa ed è stranamente
specchiato nella parte inferiore dello schermo e
la grafica è sbiadita e questa è su a
un esterno quindi cosa riporta questo test
fa è che ti porta test di calibri
esegui sul reale in questo caso Android
dispositivi e questo ne genera due
fa un output per il tuo CI così j-unit
XML che puoi integrare in CI ma
anche qualcosa per gli umani come un visual
rappresentazione della tua app e questo è
quali rapporti di prova – ok
Mi concluderei ora e dirò solo a
poche parole sulla tabella di marcia, quindi vogliamo
avere più cross platform in calabash per
istanza questa funzione di query che ho mostrato
al momento non sei supportato in
Android, ma ci sarà via di sviluppo che
abbastanza presto e vogliamo avere di meglio
supporto per il riutilizzo del codice attraverso piattaforme
in modo che se hai la stessa app per due
piattaforme che vuoi minimizzare
test del codice e dovremmo provare e
sostenere ciò come possiamo e
c’è anche c’è già una chiusura
basato una prova di concetto per il supporto JVM
quindi chiudo il tuo progetto che compila
alla prova di facilità di JavaScript da JVM I
in realtà volevo mostrarlo ma ora lo sono
davvero a corto di tempo e sì e
è aperta quindi siamo molto interessati a
sentire i tuoi input su ciò che è necessario
cosa funziona per te cosa no
puoi contribuire puoi segnalare casella
puoi fare domande su un mailing gratuito
lista e così via hai riferimenti e
ora devi fare domande per let’s
dì 8 minuti o semplicemente siediti qui e guarda
faccio le cose più vicine come intendo così qualsiasi
domande
sì domanda qui sì sì sì così là
sono due storie qui quindi la domanda lascia
Ripeto la domanda che è la
punto importante la questione è di circa
cambiare le impostazioni di rete in modo da simulare
che l’utente ha un lento o forse no
connessione internet o forse un po ‘
punto più tardi nel test va a moglie
o inizia al Wi-Fi e poi se ne va
fuori dalla porta e il Wi-Fi scompare
conosci tutte le cose che rendono la tua app
rompere e che è non è fuori dal
scatola supportata in calabash che puoi fare
alcuni script così su Mac OS fino ad ora OS
si può fare un po ‘di scripting del
firewall integrato che cambierà il
la larghezza di banda che è il simulatore
usando in modo che tu possa effettivamente pisciarlo dentro
il tuo test sul simulatore così questo è uno
storia sul dispositivo cloud con un hosted
servizio in cui eseguiamo i dispositivi che abbiamo
nessun simulatore e noi non lo facciamo ma
stiamo costruendo non è ancora lì, ma noi
stanno costruendo per un cliente che ha bisogno
che stiamo costruendo il supporto per per dispositivo
alzare e abbassare l’ accesso alla rete
perché è davvero una caratteristica importante
quindi per un simulatore devi fare un po ‘
di lavoro da solo so come farlo
ospitato lo stiamo costruendo ma è un bene
domande più domande sì sì
quindi il cetriolo riguarda il business e
stiamo lavorando con cetriolo e quindi questo
missione si dovrebbe concentrarsi sul l’uso
Casi della tua applicazione guidata da
l’interfaccia utente è la prova come l’oro
percorso per l’uso in calabash è quello che noi
vuoi fare con quel set puoi ancora
fare come test di tipo funzionale o
test di tipo di integrazione in cui ti trovi
guidando il test dall’interfaccia utente ma sempre
pensaci mentre stai guidando il test
da un’interfaccia utente dal punto di vista degli utenti
puoi fare come arbitrario di basso livello
invocazione di metodi in un’epidemia 8
su iOS o metodo Android arbitrario ma
non è questa l’intenzione, ma puoi usarla
per fare questo e in effetti le librerie
sono indipendenti dal cetriolo, quindi puoi
scarica la calabash iOS e clevis
Libreria Android e cetriolo buttare via
e basta usare le librerie
fare sistema Nicolle automatico ma il
il lato del cetriolo riguarda il
affari vorrei testare il
backend separatamente usando qualsiasi cosa
tecnologia in cui è scritto il tuo back-end
quindi se hai un sistema per dirti
avere un ritorno web e il servizio di riposo lo farei
utilizzare un sistema separato per testare questo e
come un test del tipo di integrazione funzionale
e poi testerei anche lo stesso
back-end implicitamente passando attraverso il
UI perché alla fine è quello che il
l’utente vedrà che la domanda è io
pensa che la domanda è che puoi ripetere
correggimi se ho torto la domanda è
per ottenere test riproducibili che si desidera
assicurati che il tuo database sia in a
stato particolare prima di eseguire il
prova e una risposta è che puoi fare
qualunque cosa tu voglia perché una volta che sei
nelle definizioni dei passaggi sei in Ruby
codice che ti programma in modo arbitrario
puoi iniziare lo script di test prima che io sia
eseguendo il test, chiamerò un HTTP
metodo che ripristinerà lo stato del
database a uno stato conosciuto e poi lo farò
esegui il mio test e poi forse dopo il
prova come ho impostato tipo Teardown
cosa puoi davvero dire e sì è così
un buon modo per farlo, ma puoi farlo
decidi che è questo il punto e perché è così
programmazione arbitraria non sei vincolato
ad apprezzare questo testo cosa magica che siamo
in Rubino è possibile chiamare metodi sul
Internet come servizi di riposo che puoi fare
qualunque cosa tu voglia così nella tua risposta tua
domanda sì buone altre domande si
intendi come il database SQL su a
iPhone sì, voglio dire che non c’è nessuna zucca
supporto per ho fatto ripetere la domanda
mi sta salutando per non ripetere il
domanda qualsiasi cosa, quindi la domanda è
che dire del supporto per il Vice locale
database come database SQLite e così via
e così nella zucca che stai attraversando
l’interfaccia utente e di solito non ce l’hanno
ripristina il mio pulsante database e l’interfaccia utente a
Almeno potresti fare un test speciale
costruisci dove effettivamente metti e persone
Fallo costruiscono build speciali dove
mettono pulsanti di reset ma puoi anche
fare le cose cattive che sta usando alcuni di
le funzioni di livello inferiore per chiamare a
metodo personalizzato in
su iOS nella tua app delegato e poi
fare quello che fa cose cattive sul
dispositivo che vuoi fare ma solo nel tuo
ambiente di test quindi solo compilare
quella funzione nel tuo ambiente di test
ma sì, non sto parlando di questo
ma ci sono come un livello di basso livello
funzioni backdoor per fare tecnico
cose come questa e le persone li usano
sì, non una domanda va bene così la domanda
è che i test impiegheranno molto tempo
correre e c’è un modo per limitare che
tempo per un’istanza di fare qualcosa
di analisi dove stai facendo test
che sono rilevanti solo per il codice I
appena registrato se stai facendo CI e
no, non è qualcosa che supportiamo
sarebbe una sofisticata analisi per provare
e determinare va bene io sono solo sul
schermo dell’artista e voglio solo tornare
esegui i test lì, non devi impostarlo
su manualmente se si dispone di un qualche tipo di ma
ci sono modi per limitare quanto spesso tu
eseguire test ci sono modi per limitare
i test da eseguire è possibile utilizzare qualcosa
chiamato testo e cetriolo per dire solo io
vuoi eseguire le cose che sono taggate
con questo tag particolare ed è possibile
fare varie ottimizzazioni delle prestazioni per
rendere il test più veloce come il nostro
i clienti ci usano di solito sono io che corro
significa sul dispositivo cloud di solito
eseguire un test al giorno durante la notte, così loro
non mi importa se ci vogliono cinque
minuti o trenta minuti perché chi
ti importa che stai dormendo se stai correndo
CI su simulatori allora forse sei un po ‘
più preoccupato e tu puoi fare un po ‘
le ottimizzazioni cercano di eliminare il sonno
dal tuo test e così via e prova ad usare
aspettando e accelerando in generale ma si
per quanto riguarda l’analisi nessun supporto per
che più domande mi permettano di controllare il tempo
sì, altri due minuti ci servono almeno
un’altra domanda si, è basata
su quante app stai testando così noi
contiamo un’app come piattaforma, quindi se
stai sviluppando la stessa app per
Android e iOS sono due app
altrimenti pagheresti non c’è
limite particolare su quanto a lungo il tuo
i test funzionano e lo faremo se ci fosse qualche cliente
usando troppo tempo lo faremo
prova che sai fare un accordo ragionevole
loro ma non abbiamo un rigore
limitazione su quanto tempo è possibile eseguire
ma tu paghi per app e puoi correre
qualunque cosa tu voglia ma diciamo una volta al giorno
è la cosa comune perché tu sei
correndo in CI forse di notte si
e hai prezzi diversi a seconda
su quanti aumenti si ottiene uno sconto se
hai più EPS e qualcosa che puoi
controlla il sito web per corrente
prezzo ora è un equo intendo il
dispositivo in modo che la domanda è che hai
istruzioni per impostare come il tuo
dispositivo cloud la verità è che piace
questo è il nostro business, siamo piuttosto bravi
nello sviluppo e nel mantenimento e
funzionamento di questo dispositivo cloud e ad uno
storia è che non si vuole veramente
fallo perché sappiamo che c’è
un bel po ‘di dolore che stiamo cercando di fare
meno dolore, ma c’è un bel po ‘di
dolore coinvolto nel funzionamento e nell’avere
questo funziona in modo affidabile e coerente, quindi no
non ci sono le istruzioni per che si
potrebbe costruirlo ma richiederebbe
un bel po ‘di ricerca e tu sai
il sudore delle operazioni per averlo in esecuzione
Stapley che è il motivo per cui abbiamo fornito come a
servizio giusto potremmo ad un certo punto aprire
fonte una struttura interna che abbiamo
per fare l’automazione del dispositivo su iOS noi
hai già attivato l’automazione di alcuni dispositivi
Android disponibile ma scalabile
a livello di nuvola è qualcosa che noi
vendere e ci vuole un sacco di lavoro sì
buona domanda vuoi pranzare tutti
giusto grazie sono molto disponibile per
domande e discussioni dopo sempre
grazie per l’ ascolto

Please follow and like us: