indledning til programmerbare kontrol med eu - erhvervsgrenen automatisering

, introduktion til programmerbare testning med eu - erhvervsgrenen automatisering,,,,, 94,,,,,,,, 14,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, forestil dig at være i stand til at skrive drejebøger, der automatisk påvirke din programmerbare anvendelse og være i stand til at kontrollere resultaterne.med eu - erhvervsgrenens automatisering, du kan.eu - erhvervsgrenens automatisering er et værktøj, der leveres af æble - for at udføre et højere niveau af forsøg på din programmerbare anvendelse ud over alt, der kan opnås med xctest.,,, 1.   hvid kasse mod sorte boks testning, du har måske hørt sammenligning af hvide kasse prøvning mod sorte boks undersøgelse med hensyn til, hvordan man kan teste et stykke software.hvis du ikke er bekendt med disse begreber, lad mig forklare, hvordan de virker.,, hvid kasse testning, forestille sig, at der er et stykke software, der kører i en kasse.med hvide kasse testning, du kan se ind i boksen og se på alle de saftige stykker af, hvordan programmet virker, og at gøre uddannelse beslutninger om, hvordan tester software.- du kan også få dybere kroge i software fra prøver at skrive.,, enhed afprøvning er hvid kasse test.   når skriveenhed test, de tester er finkornet adgang til koden under prøvningen.de tester faktisk kan skrive test, at udnytte software under prøvningen ved metode, eller enhed,.,, programmerbare software - udvikling, vi bruger, xctest, rammer til at udføre denne form for kontrol.se anden     lektion, jeg skrev   om at komme i gang med at xctest.,, sorte boks testning, i sort boks, afprøvning, kassen er uigennemsigtig.forsøgslederen kan ikke se ind i boksen.de tester ikke kan få adgang til og ikke ved gennemførelsen af kodeksen base   skrive test.i stedet er de tester er tvunget til at bruge   anvendelse som en slutbruger vil ved at interagere med anvendelsen og venter på deres svar, at kontrollere, at de resultater, der er mindst to måder at gennemføre denne type test.,, tester  , der   gentagne gange, og   manuelt udfører en række forud fastsatte foranstaltninger, og visuelt kontrollerer resultaterne. brug   særlige værktøjer til at teste anvendelse med api - grænseflader, der opfører sig lignende, hvordan et menneske sammen.,, programmerbare anvendelse, udvikling, æble er et værktøj til eu - erhvervsgrenens automatisering, til at udføre sort boks test., 2.hvad er eu - erhvervsgrenens automatisering? , eu - erhvervsgrenens automatisering, er et værktøj, der giver æble og vedligeholder for højere niveau, automatiske, afprøvning af programmerbare ansøgninger.test er skrevet i javascript, overholder   en adi er defineret af æble.,, skrive test kan gøres lettere ved at stole på tilgængelighed etiketter for brugergrænseflade elementer i ansøgningen.bare rolig, hvis du ikke har defineret, der er alternativer,.,, eu - erhvervsgrenens automatisering api mangler typisk xunit   baseret format for at skrive test.en forskel med   enhed test er, at   forsøgslederen skal   manuelt log succes og fiasko.eu - erhvervsgrenens automatisering prøver at løbe fra den automatisering instrument inden for den, instrumenter, værktøj, der kommer med apples udvikler værktøjer.prøverne kan køres i six simulator eller på en fysisk anordning.,,, 3.eu - erhvervsgrenens automatisering (test, trin 1: åbne stikprøven projekt, jeg har opdateret stikprøven projekt i den tidligere forelæsning om programmerbare testning med nogle yderligere brugergrænseflade elementer, som giver nogle nyttige kroge til at tilføje eu - erhvervsgrenen automatisering test.download projektet fra github.luk projektet og anvendelse for at sikre, at det fungerer som forventet.  , du bør se en brugergrænseflade, svarer til den, der er vist nedenfor.,,,,,,,, før vi skriver alle prøvninger, føle sig fri til at afprøve stikprøven anvendelse at blive fortrolige med dens funktion.som bruger, og du kan indtaste tekst i tekstfeltet og slå knappen til at se en etiket på skærmen, der viser den omvendte, indtastede snor.,, trin 2: skabe en eu - erhvervsgrenens automatisering test, nu du er bekendt med prøven, anvendelse, det er tid til at tilføje en eu - erhvervsgrenens automatisering test.eu - erhvervsgrenens automatisering er et værktøj, der kan findes i instrumenter.at løbe stikprøven anvendelse i instrumenter, udvælge, produkt > profil,   fra xcode er menu.vælg, automatisering,   fra listen over redskaber.,,,,,,, de vigtigste instrumenter vindue åbner med et enkelt instrument, klar til at løbe, automatisering instrument (automatisering instrument udfører eu - erhvervsgrenen automatisering test - cases).du skal også se et område i den nederste halvdel af vindue, der ligner en tekst, redaktør.det er manuskriptet redaktør.det er, hvor du kan skrive din ui automatisering test.for det første test, følg nedenstående anvisninger, idet hver linje til manuskriptet i manuskriptet redaktør., begynd med lagring af en henvisning til teksten område i en variabel,.,, var inputfield = mål. frontmostapp(). mainwindow(). textfields() ["input område"], fastsætte tekstfeltet værdi.,,, inputfield. setvalue ("hej"), kontrollere, at værdien var vellykket, og hvis det er, har bestået prøven.ikke består testen, hvis det ikke var, hvis (inputfield. value()!= "hej") uialogger. logfail ("input område ikke var i stand til at være med i snoren!"); andre uialogger. logpass ("input - området var i stand til at være med i snoren!"),,, mens denne test er temmelig triviel, det har værdi.vi har lige skrevet en test, test af tilstedeværelsen af en tekst inden da   anvendelse   er iværksat, og at der test, hvis en tilfældig række kan fastsættes som den tekst, der er værdi.hvis du ikke tror mig, så tag tekstfelt fra tegning, og testen.vil du se, at det ikke.,, denne test viser tre vigtige dele af eu - erhvervsgrenens automatisering test.for det første viser, hvordan man får adgang til et enkelt brugergrænseflade element, teksten område.vi specifikt adgang en ordbog over hele teksten områder på basen for ansøgning via target. frontmostapp(). mainwindow(). textfields(),  , og vi så finde den tekst, vi er interesseret i, efter en nøgle, input område.det vigtigste er faktisk tilgængelighed i mærkningen af teksten.i dette tilfælde, det er fastlagt i tegning.vi kan også være tilgængelige etiket i kode med, accessibilitylabel, ejendom, nsobject,.,, adgang til ansøgningen er hovedkanal, foran de fleste anvendelse, og målet er fælles i forbindelse med eu - erhvervsgrenens automatisering.jeg vil vise dig, hvordan vi gør dette lettere og mindre vidtløftig senere i denne forelæsning.,, for det andet viser du, at du kan interagere med brugergrænseflade elementer på skærmen.i denne sag har vi sat tekstfeltet værdi, som brugeren interaktion med anvendelse af indtaste tekst i tekstfeltet.,, og for det tredje eksempel viser også en metode til at kontrollere, hvad der sker i ansøgningen.hvis værdien er lykkedes os at opstille, prøven passerer.hvis værdien er ikke fastsat, prøvning ikke.,,, trin 3: at redde tests, og skrive test i manuskriptet redaktør er belejligt, det bliver hurtigt besværlige og vanskelige at opretholde.hvis du stopper instrumenter, gemt ændringer er kasseret.vi er nødt til at redde de test, vi skriver.simpelthen kopiere og sæt din test i et nyt dokument i din favorit tekst redaktør, og gem den.du kan finde den test, der skabes i denne forelæsning i stikprøven projekt under, jumblify /jumblifytests /automationtests. js,.,, at testen, udvælge midten regning i rude til højre næste til manuskriptet redaktør, og udvælge, tilføje > import.,,,,,,, du vil blive tilskyndet til at vælg manuskriptet til import.sejle til reddede manuskript og import.du kan stadig ændre manus i manuskriptet redaktør.eventuelle ændringer vil automatisk blive reddet i eksterne fil, du har skabt,.,, trin 4: at udnytte en knap, lad os opdatere vores test for at teste interaktion med knappen.vores test allerede har tilføjet tekst tekstfeltet, så vi kun behøver at tilføje kode til at trykke på knappen.lad os først overveje, hvordan vi kan finde knappen i betragtning, således at det kan udnyttes.der er mindst tre måder at opnå denne og hver metode har sin tradeoffs.,,, model 1, kan vi programmatically tap (x, y) koordinerer på skærmen.vi gør dette med følgende linje kode:,,, mål. tap ((x: kl, y: 50.00}), selvfølgelig, jeg aner ikke, om de er koordinaterne for knap på skærmen, og jeg vil ikke bekymre mig om det, fordi dette ikke er det rigtige værktøj til dette job.jeg er kun at nævne det, så du ved, den eksisterer.ved hjælp af tap   metode, mål, til at udnytte en knap er fejl udsat, fordi den knap kan ikke altid være på det specifikke koordinere.,, fremgangsmåde, er det også muligt at finde den knap, som søger den vifte af knapper af de vigtigste vindue, svarende til, hvordan vi adgang til teksten område i den første undersøgelse.i stedet for at få adgang til knappen direkte ved hjælp af en nøgle, vi kan finde en række knapper på de vigtigste vindue og svær kode et system indeks for at få en henvisning til knap.,,, mål. frontmostapp(). mainwindow(). buttons() [0]. tap();, er denne fremgangsmåde lidt bedre.vi er ikke svært, kodning, en koordinering, men vi er hårde kodning et system indeks for at finde knappen.hvis vi tilføjer en knap på den side, det kan komme til at bryde denne test,.,,, model 3, det bringer mig til det tredje måde at finde en knap på siden med tilgængelighed etiketter.ved hjælp af en tilgængelighed etiket, kan vi direkte adgang til knap kunne bare lide at vi ville finde et objekt i en ordbog med en nøgle, mål. frontmostapp(). mainwindow(). buttons() ["jumblify knap"]. tap();,, hvis du tilføjer ovennævnte linje til manuskriptet og køre den, får du en fejl.,,,,,,, det er, fordi vi ikke har defineret de tilgængelighed etiket til knappen endnu.for at gøre det, flip over til xcode og åbne projektets skitse.find knappen i betragtning og åbne, identitet, inspektør,   til højre (udsigt > værker > identitet -).sikre, at tilgængelighed, er aktiveret og indstillet, etiket, for knap til, jumblify knap.,,,,,, til testen igen, du bliver nødt til at løbe anvendelse fra xcode ved at udvælge, produkt,  , >, løb,   og profil anvendelse igen ved at udvælge, produkt,  , >, profil.dette er de forsøg og hver prøvning skal gå nu.,, løntrin 5: kontrollere rod snor  , som jeg nævnte tidligere, er vores anvendelse   tager en række tekst som input, og når brugeren haner knappen, udviser omvendt snor.vi er nødt til at tilføje et yderligere prøvninger for at verificere, at input - string er korrekt.for at kontrollere, at de, uilabel, er befolket med rette snor, vi er nødt til at finde ud af, hvordan til at henvise til det, uilabel,   og kontrollere snoren, så viser.det er en fælles   problem, når automatiseringen test, og det er, at finde ud af, hvordan til at henvise til et element i   anvendelse   til en påstand om det, er der en metode på næsten alle mål i eu - erhvervsgrenens automatisering api, logelementtree,.denne metode stammer den indlejrede elementer af et bestemt element.det er vigtigt at forstå det hierarki af elementer i   anvendelse og bidrager til at finde ud af, hvordan målet   et specifikt element.,,, lad os se, hvordan det fungerer i skovhugst elementet træ af de vigtigste vindue.tag et kig på den følgende linje kode.,,, mål. frontmostapp(). mainwindow(). logelementtree();,, at denne linje til prøvningen manuskript resultater på følgende output:,,,,,,,, som du kan se, er der en, uiastatictext, underelement af, uiawindow,  , og de kan også se, at det har en navn, ih,, som tilfældigvis også er omvendt snor, vi er nødt til at kontrollere.nu, for at fuldføre vores test, vi skal lige tilføje kode adgang til dette element og sikre, at det er til stede.,, hvorfor har vi kun brug for at kontrollere, om de  , uiastatictext element er til stede?,  , fordi del hedder det omvendt række input - snor, kontrol, det er til stede, bekræfter, at den snor, var korrekt.hvis elementet eksisterer ikke, når der ved navn – omvendt snor, så betyder det snoren var ikke   korrekt omvendt.,, var stringresult = mål. frontmostapp(). mainwindow(). statictexts() ["ih"]; hvis (!stringresult. isvalid()) uialogger. logfail ("output tekst ikke var fastsat med korrekt omvendt snor!"); andre uialogger. logpass ("output tekst blev fastsat med korrekt omvendt snor!"),,, 4.en dråbe i havet, og der er så mange andre måder, som slutbrugeren kan interagere med programmerbare anordninger, mens du bruger din app.det betyder, at der er mange andre måder, du kan bruge eu - erhvervsgrenens automatisering til simulering af disse interaktioner.snarere end at forsøge at fange en omfattende liste over disse interaktioner, vil jeg henvise dem til eu - erhvervsgrenens automatisering referencedokumentation., for hver type objekt, som du kan interagere med, du kan se listen over de metoder, der er til rådighed på dette objekt.nogle metoder til fremskaffelse af attributter om genstanden, mens andre er til simulering af røre interaktion, som flickinsidewithoptions, om, uiawindow,.,, registrering af en samling, som de forsøger at teste mere og mere kompliceret system med eu - erhvervsgrenens automatisering, du vil finde, at det er meget kedeligt, at gentagne gange, logelementtree,   for at finde de elementer, du leder efter.det bliver kedeligt og komplekse ansøgninger med en sammensat baggrund hierarki eller navigation.i disse tilfælde kan du bruge et andet element af instrumenter, for at optage en række bruger interaktioner.hvad der er endnu federe, at instrumenter skaber eu - erhvervsgrenens automatisering javascript kode, der er nødvendig for at gengive de registrerede interaktioner.her er hvordan du kan prøve det selv.,,, instrumenter og med automatisering instrument valgt, se den knap på bunden af vinduet.,,,,,,,, hvis du klikker på det knap, instrumenter vil starte en optagelse som vist i skærmbillede nedenfor.,,,,,, instrumenter vil sætte din   anvendelse i den programmerbare simulator, og du vil være i stand til at kommunikere med det.instrumenter vil skabe en drejebog baseret på din interaktioner i realtid.giv det et forsøg.drej den programmerbare simulator, tap på tilfældige steder, udføre en stjålet gestus, osv. det er en meget nyttig måde at hjælpe undersøge mulighederne for eu - erhvervsgrenens automatisering.,,, at undgå en monolitisk kode base, som du måske kan forudse, hvis vi fortsætter med at tilføje flere test test til den sag, vi har skabt i de samme metode, vil den hurtigt blive svært at opretholde.hvad kan vi gøre for at forhindre, at det sker.i min test, vil jeg gøre to ting for at løse dette problem:,,, en test for en funktion:,   indebærer dette, at de undersøgelser, vi skriver skal fokusere på et bestemt stykke funktionalitet.jeg vil også give det en passende betegnelse, f.eks. testemptyinputfield,.,, gruppen vedrørende test i en fil:,   jeg også gruppe vedrørende test i samme sag.det holder kodeksen i en fil at håndtere.det gør det også lettere at afprøve forskellige stykker funktioner ved at udføre test i en bestemt sag.desuden, du kan skabe en mester manuskript, som du kalder de funktioner, eller prøver du har grupperet i andre sager, i følgende kode snippet, vi importerer javascript fil, og det gør de funktioner i det javascript fil rådighed.,,,&#import "othertests. er", afslutning, i denne forelæsning, du har lært værdien af højere niveau, afprøvning, og hvordan eu - erhvervsgrenen automatisering kan bidrage til at udfylde hullet.det er et værktøj til at hjælpe med at sikre det skib, pålidelige og robuste ansøgninger.,, referencer, automatisering javascript reference -

Sample Application screenshot
Instrument chooser screenshot
Instruments screenshot
Instruments Error Message Screenshot
Interface Builder Accessibility Inspector Screenshot
Instruments logElementTree screenshot
Instruments screenshot showing record button
Instruments Screenshot showing capture in progress



Previous:
Next Page: