Automating UI testing

Adam Siton
Adam SitonSoftware engineer at Any.DO
Automating UI testing ,[object Object]
About me
Road map ,[object Object],[object Object],[object Object],[object Object]
Why do we need automated tests ,[object Object]
We want a 5 star app ,[object Object],[object Object]
There are always more scenarios ,[object Object],[object Object],[object Object],[object Object],[object Object]
Refactoring is alway dangerous ,[object Object],[object Object]
Flexibility ,[object Object],[object Object]
The solution - Automation ,[object Object],[object Object]
UIAutomation
UIAutomation framework ,[object Object],[object Object],[object Object],[object Object]
UIAutomation elements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UIAutomation elements ,[object Object],UIATarget.localTarget()
UIAutomation elements ,[object Object],[object Object],UIATarget.localTarget() .frontMostApp()
UIAutomation elements ,[object Object],[object Object],[object Object],UIATarget.localTarget().frontMostApp() .mainWindow()
UIAutomation elements ,[object Object],[object Object],[object Object],[object Object],UIATarget.localTarget().frontMostApp().mainWindow() .tableViews()[0]
UIAutomation elements ,[object Object],[object Object],[object Object],[object Object],[object Object],UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0] .cells()[0]
UIAutomation elements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[0] .elements()[“Chocolate Cake”]
Logging ,[object Object],[object Object],[object Object]
Logging ,[object Object]
Logging ,[object Object]
Logging ,[object Object]
Logging ,[object Object]
Logging ,[object Object]
UIAutomation commands ,[object Object],[object Object],[object Object],[object Object]
UIAutomation commands ,[object Object],[object Object],[object Object],[object Object]
UIAutomation elements ,[object Object],[object Object]
Demo
UIAutomation - Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Presenting - FoneMonkey
FoneMonkey ,[object Object],[object Object],[object Object]
Adding FoneMonkey framework ,[object Object]
Adding FoneMonkey framework ,[object Object]
Adding FoneMonkey framework ,[object Object]
Adding FoneMonkey framework ,[object Object]
Adding FoneMonkey framework ,[object Object]
Using FoneMonkey ,[object Object],[object Object]
Using FoneMonkey ,[object Object],[object Object]
Using FoneMonkey ,[object Object],[object Object],[object Object],[object Object]
Using FoneMonkey ,[object Object],[object Object]
Demo
Extending FoneMonkey ,[object Object],[object Object],[object Object],[object Object]
Adding touch events #import "FoneMonkeyAPI.h" #import "MyView+FoneMonkey.h" @implementation MyView (FoneMonkey) - (NSString*) monkeyID {      return self.myViewId ? self.myViewId :          [super monkeyID]; } - (void) handleMonkeyTouchEvent:(NSSet*)touches withEvent:(UIEvent*)event {      UITouch* touch = [touches anyObject];      if (touch.tapCount == 2) {          [FoneMonkeyAPI record:self command:@"DoubleTouch" args:nil];      } else {          [super handleMonkeyTouchEvent:touches withEvent:event];      } }   @end
Adding control events - (UIControlEvents)monkeyEventsToHandle { return UIControlEventEditingDidEnd; }  - (void) handleMonkeyEventFromSender:(id)sender forEvent:(UIEvent*)event { if (!self.editing && self.text != nil) { [FoneMonkeyAPI record:self command:FMCommandInputText  args:[NSArray arrayWithObject:[self.text copy]]]; } else { [FoneMonkeyAPI continueRecording]; } }
Extending playback - (void) playbackMonkeyEvent:(FMCommandEvent*)event {    if (event.command isEqualToString:@"Drag") {       [self performDrag];     } else { [super playBackMonkeyEvent:event]; } }
What about gestures ,[object Object],[object Object],[object Object],[object Object]
Extending gestures with Method swizzling ,[object Object],[object Object],@implementation MyView (FoneMonkey) #import “ FoneMonkeyAPI.h” #import <objc/runtime.h> + (void) load      Method originalMethod = class_getInstanceMethod(self, @selector(handleSwipe:));   Method replacedMethod = class_getInstanceMethod(self, @selector(fm_handleSwipe:)); method_exchangeImplementations(originalMethod, replacedMethod); } @implementation MyView (FoneMonkey) - (void) fm_handleSwipe:(UIGestureRecognizer *)recognizer      [self fm_handleSwipe:recognizer]; [FoneMonkeyAPI record:self command:@&quot;Swipe&quot; args:nil]; }
Demo
FoneMonkey - Running tests
FoneMonkey script formats ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion
FoneMonkey VS UIAutomation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Other alternatives ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Frank
Where to go from here ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],But what if I do need extended functionality? ,[object Object],[object Object]
Resources ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thanks
1 of 57

Recommended

[XCode] Automating UI Testing by
[XCode] Automating UI Testing[XCode] Automating UI Testing
[XCode] Automating UI TestingPhineas Huang
2.9K views42 slides
UI Testing Automation - Alex Kalinovsky - CreamTec LLC by
UI Testing Automation - Alex Kalinovsky - CreamTec LLCUI Testing Automation - Alex Kalinovsky - CreamTec LLC
UI Testing Automation - Alex Kalinovsky - CreamTec LLCJim Lane
1.8K views18 slides
UI Testing Automation by
UI Testing AutomationUI Testing Automation
UI Testing AutomationAgileEngine
10.3K views18 slides
UI Testing Best Practices - An Expected Journey by
UI Testing Best Practices - An Expected JourneyUI Testing Best Practices - An Expected Journey
UI Testing Best Practices - An Expected JourneyOren Farhi
5.1K views45 slides
Automated UI testing done right (DDDSydney) by
Automated UI testing done right (DDDSydney)Automated UI testing done right (DDDSydney)
Automated UI testing done right (DDDSydney)Mehdi Khalili
17.9K views143 slides
JsUnit by
JsUnitJsUnit
JsUnitAlex Chaffee
3.1K views21 slides

More Related Content

What's hot

Integrating Selenium testing infrastructure into Scala Project by
Integrating Selenium testing infrastructure into Scala ProjectIntegrating Selenium testing infrastructure into Scala Project
Integrating Selenium testing infrastructure into Scala ProjectKnoldus Inc.
4.6K views32 slides
Breaking free from static abuse in test automation frameworks and using Sprin... by
Breaking free from static abuse in test automation frameworks and using Sprin...Breaking free from static abuse in test automation frameworks and using Sprin...
Breaking free from static abuse in test automation frameworks and using Sprin...Abhijeet Vaikar
508 views35 slides
Selenium interview questions and answers by
Selenium interview questions and answersSelenium interview questions and answers
Selenium interview questions and answerskavinilavuG
331 views22 slides
Integration Testing With ScalaTest and MongoDB by
Integration Testing With ScalaTest and MongoDBIntegration Testing With ScalaTest and MongoDB
Integration Testing With ScalaTest and MongoDBMichal Bigos
10.5K views48 slides
SwtBot: Unit Testing Made Easy by
SwtBot: Unit Testing Made EasySwtBot: Unit Testing Made Easy
SwtBot: Unit Testing Made EasyAnkit Goel
3.1K views27 slides
Tellurium At Rich Web Experience2009 by
Tellurium At Rich Web Experience2009Tellurium At Rich Web Experience2009
Tellurium At Rich Web Experience2009John.Jian.Fang
1.1K views55 slides

What's hot(20)

Integrating Selenium testing infrastructure into Scala Project by Knoldus Inc.
Integrating Selenium testing infrastructure into Scala ProjectIntegrating Selenium testing infrastructure into Scala Project
Integrating Selenium testing infrastructure into Scala Project
Knoldus Inc.4.6K views
Breaking free from static abuse in test automation frameworks and using Sprin... by Abhijeet Vaikar
Breaking free from static abuse in test automation frameworks and using Sprin...Breaking free from static abuse in test automation frameworks and using Sprin...
Breaking free from static abuse in test automation frameworks and using Sprin...
Abhijeet Vaikar508 views
Selenium interview questions and answers by kavinilavuG
Selenium interview questions and answersSelenium interview questions and answers
Selenium interview questions and answers
kavinilavuG331 views
Integration Testing With ScalaTest and MongoDB by Michal Bigos
Integration Testing With ScalaTest and MongoDBIntegration Testing With ScalaTest and MongoDB
Integration Testing With ScalaTest and MongoDB
Michal Bigos10.5K views
SwtBot: Unit Testing Made Easy by Ankit Goel
SwtBot: Unit Testing Made EasySwtBot: Unit Testing Made Easy
SwtBot: Unit Testing Made Easy
Ankit Goel3.1K views
Tellurium At Rich Web Experience2009 by John.Jian.Fang
Tellurium At Rich Web Experience2009Tellurium At Rich Web Experience2009
Tellurium At Rich Web Experience2009
John.Jian.Fang1.1K views
Getting Started with XCTest and XCUITest for iOS App Testing by Bitbar
Getting Started with XCTest and XCUITest for iOS App TestingGetting Started with XCTest and XCUITest for iOS App Testing
Getting Started with XCTest and XCUITest for iOS App Testing
Bitbar13K views
Scala for Test Automation by rthanavarapu
Scala for Test AutomationScala for Test Automation
Scala for Test Automation
rthanavarapu7.8K views
Functional Testing made easy with SWTBot for Developers and Testers by Aurélien Pupier
Functional Testing made easy with SWTBot for Developers and TestersFunctional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and Testers
Aurélien Pupier1.4K views
Swtbot by cristitep
SwtbotSwtbot
Swtbot
cristitep1.3K views
Espresso by kanthivel
EspressoEspresso
Espresso
kanthivel263 views
Protractor framework – how to make stable e2e tests for Angular applications by Ludmila Nesvitiy
Protractor framework – how to make stable e2e tests for Angular applicationsProtractor framework – how to make stable e2e tests for Angular applications
Protractor framework – how to make stable e2e tests for Angular applications
Ludmila Nesvitiy4.4K views
Introduction to Selenium IDE by drnikki
Introduction to Selenium IDEIntroduction to Selenium IDE
Introduction to Selenium IDE
drnikki1.1K views
Protractor Tutorial Quality in Agile 2015 by Andrew Eisenberg
Protractor Tutorial Quality in Agile 2015Protractor Tutorial Quality in Agile 2015
Protractor Tutorial Quality in Agile 2015
Andrew Eisenberg2.1K views
Web UI test automation instruments by Artem Nagornyi
Web UI test automation instrumentsWeb UI test automation instruments
Web UI test automation instruments
Artem Nagornyi10K views

Similar to Automating UI testing

What is selenium by
What is seleniumWhat is selenium
What is seleniumPesara Swamy
66.8K views8 slides
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma... by
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...Anna Russo
1.3K views61 slides
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma... by
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...Anna Russo
2K views62 slides
Android testing by
Android testingAndroid testing
Android testingBitbar
7.4K views19 slides
Cucumber meets iPhone by
Cucumber meets iPhoneCucumber meets iPhone
Cucumber meets iPhoneErin Dees
19.9K views62 slides
iOS Application Testing by
iOS Application TestingiOS Application Testing
iOS Application TestingMreetyunjaya Daas
14.2K views12 slides

Similar to Automating UI testing(20)

What is selenium by Pesara Swamy
What is seleniumWhat is selenium
What is selenium
Pesara Swamy66.8K views
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma... by Anna Russo
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo1.3K views
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma... by Anna Russo
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo2K views
Android testing by Bitbar
Android testingAndroid testing
Android testing
Bitbar7.4K views
Cucumber meets iPhone by Erin Dees
Cucumber meets iPhoneCucumber meets iPhone
Cucumber meets iPhone
Erin Dees19.9K views
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma... by Anna Russo
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo1.5K views
Improving Software Quality- 2-day Tester Training by Anna Russo
Improving Software Quality- 2-day Tester TrainingImproving Software Quality- 2-day Tester Training
Improving Software Quality- 2-day Tester Training
Anna Russo2.1K views
Multi tool test automation platform by opkey
Multi tool test automation platformMulti tool test automation platform
Multi tool test automation platform
opkey663 views
Developers Border Line: Unit Testing by Sikandar Ahmed
Developers Border Line: Unit TestingDevelopers Border Line: Unit Testing
Developers Border Line: Unit Testing
Sikandar Ahmed1.7K views
How we've built Yahoo Fantasy Football (Droidcon Italy '15) by Alex Florescu
How we've built Yahoo Fantasy Football (Droidcon Italy '15)How we've built Yahoo Fantasy Football (Droidcon Italy '15)
How we've built Yahoo Fantasy Football (Droidcon Italy '15)
Alex Florescu2.1K views
Service center solahart cp 081313462267 by Service Solahart
Service center solahart cp 081313462267Service center solahart cp 081313462267
Service center solahart cp 081313462267
Service Solahart193 views
Selenium by nil65
SeleniumSelenium
Selenium
nil651.5K views
Stepin evening presented by Vijayan Reddy
Stepin evening presentedStepin evening presented
Stepin evening presented
Vijayan Reddy946 views
Selenium Testing Training in Bangalore by rajkamal560066
Selenium Testing Training in BangaloreSelenium Testing Training in Bangalore
Selenium Testing Training in Bangalore
rajkamal560066290 views
Automated Exploratory Testing by Justin Ison
Automated Exploratory TestingAutomated Exploratory Testing
Automated Exploratory Testing
Justin Ison1.7K views
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium by Srijan Technologies
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium

Recently uploaded

Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...ShapeBlue
114 views12 slides
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveNetwork Automation Forum
49 views35 slides
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesShapeBlue
178 views15 slides
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...ShapeBlue
121 views15 slides
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueShapeBlue
147 views20 slides
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsPriyanka Aash
103 views59 slides

Recently uploaded(20)

Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue114 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue178 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue121 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue147 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash103 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue52 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue149 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE67 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue138 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue134 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software373 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue128 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue86 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc130 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue56 views
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ by ShapeBlue
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericConfidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
ShapeBlue58 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu287 views

Automating UI testing

  • 1.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. Demo
  • 29.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. Demo
  • 42.
  • 43. Adding touch events #import &quot;FoneMonkeyAPI.h&quot; #import &quot;MyView+FoneMonkey.h&quot; @implementation MyView (FoneMonkey) - (NSString*) monkeyID {      return self.myViewId ? self.myViewId :         [super monkeyID]; } - (void) handleMonkeyTouchEvent:(NSSet*)touches withEvent:(UIEvent*)event {      UITouch* touch = [touches anyObject];      if (touch.tapCount == 2) {         [FoneMonkeyAPI record:self command:@&quot;DoubleTouch&quot; args:nil];      } else {         [super handleMonkeyTouchEvent:touches withEvent:event];      } }   @end
  • 44. Adding control events - (UIControlEvents)monkeyEventsToHandle { return UIControlEventEditingDidEnd; } - (void) handleMonkeyEventFromSender:(id)sender forEvent:(UIEvent*)event { if (!self.editing && self.text != nil) { [FoneMonkeyAPI record:self command:FMCommandInputText args:[NSArray arrayWithObject:[self.text copy]]]; } else { [FoneMonkeyAPI continueRecording]; } }
  • 45. Extending playback - (void) playbackMonkeyEvent:(FMCommandEvent*)event {    if (event.command isEqualToString:@&quot;Drag&quot;) {       [self performDrag];    } else { [super playBackMonkeyEvent:event]; } }
  • 46.
  • 47.
  • 48. Demo
  • 50.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.