SlideShare a Scribd company logo
1 of 17
Download to read offline
IOS UIAutomation integration


                       François Reynaud
                    freynaud@ebay.com
           github.com/freynaud/ios-driver
Goal
Cut down the time needed for the eBay IOS
native apps regression.

 o build something light
 o reuse as much as possible
 o open source
Instruments
Instruments tests
Integration capabilities
Selenium-isation



             REST API

    client              server

                                 Instruments
REST API
Content management
Content management
{
        "label": "Bien que 8,848 mètres de haut, Montagne 1 aient été montés la première fois
                29 May 1953.",
        "name": "Bien que 8,848 mètres de haut, Montagne 1 aient été montés la première fois
                29 May 1953.",
        "value": "Bien que 8,848 mètres de haut, Montagne 1 aient été montés la première fois
                29 May 1953.",

        "rect": {
                 "origin": {
                               "x": 34,
                               "y": 168
                },
                "size": {
                               "height": 164,
                               "width": 251
                }
        },
        "type": "UIAStaticText",
    }
Content management
Content management

IOSCapabilities cap = IOSCapabilities.ipad("eBay");

cap.setLanguage("fr");

UIADriver driver = new RemoteUIADriver(url, cap);

Criteria c = new NameCriteria("Agree", serverL10N);

UIAElement button = driver.findElement(c);

button.tap();
Inspector
Example
@Test(dataProvider = "ipad")
 public void testIOSAppIPAD(String l) throws Exception {
   IOSCapabilities cap = IOSCapabilities.ipad("eBay");
   cap.setLanguage(l);

    UIADriver driver = new RemoteUIADriver("http://localhost:4444/wd/hub", cap);

    Criteria c1 = new TypeCriteria(UIAButton.class);
    Criteria c2 = new NameCriteria("Agree", L10NStrategy.serverL10N);
    Criteria c = new AndCriteria(c1, c2);

    UIAElement button = driver.findElement(c);
    button.tap();

    driver.setDeviceOrientation(UIA_DEVICE_ORIENTATION_PORTRAIT);

    Criteria ui = new TypeCriteria(UIATextField.class);
    Criteria p = new TypeCriteria(UIASecureTextField.class);

    UIATextField userId = (UIATextField) driver.findElement(ui);
    userId.setValue("francois_uk1");

    UIASecureTextField pwd = (UIASecureTextField) driver.findElement(p);
    pwd.setValue("password");

    driver.takeScreenshot(ss.png);
    Reporter.log("<img src='ss.png'>");

    driver.quit();
}
Demo
Why ?



            REST API

   client              server

                                Instruments
Integrating Selenium grid.
                             server
                                  Instruments




client(s)    Hub             server
                                  Instruments




                             server
                                  Instruments
Demo

More Related Content

What's hot

Kube-AWS
Kube-AWSKube-AWS
Kube-AWSCoreOS
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitAndreas Heim
 
Terraform Introduction
Terraform IntroductionTerraform Introduction
Terraform Introductionsoniasnowfrog
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...Yevgeniy Brikman
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021TomStraub5
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSYevgeniy Brikman
 
Terraform Abstractions for Safety and Power
Terraform Abstractions for Safety and PowerTerraform Abstractions for Safety and Power
Terraform Abstractions for Safety and PowerCalvin French-Owen
 
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)Diacode
 
Transfer to kubernetes data platform from EMR
Transfer to kubernetes data platform from EMRTransfer to kubernetes data platform from EMR
Transfer to kubernetes data platform from EMR창언 정
 
Terraform Modules and Continuous Deployment
Terraform Modules and Continuous DeploymentTerraform Modules and Continuous Deployment
Terraform Modules and Continuous DeploymentZane Williamson
 
EC2とVarnishで画像配信
EC2とVarnishで画像配信EC2とVarnishで画像配信
EC2とVarnishで画像配信Issei Naruta
 
tofu - COOKPAD's image system
tofu - COOKPAD's image systemtofu - COOKPAD's image system
tofu - COOKPAD's image systemIssei Naruta
 
"Continuously delivering infrastructure using Terraform and Packer" training ...
"Continuously delivering infrastructure using Terraform and Packer" training ..."Continuously delivering infrastructure using Terraform and Packer" training ...
"Continuously delivering infrastructure using Terraform and Packer" training ...Anton Babenko
 
ILM - Pipeline in the cloud
ILM - Pipeline in the cloudILM - Pipeline in the cloud
ILM - Pipeline in the cloudAaron Carey
 
Scaling terraform
Scaling terraformScaling terraform
Scaling terraformPaolo Tonin
 

What's hot (20)

Kube-AWS
Kube-AWSKube-AWS
Kube-AWS
 
London Hug 19/5 - Terraform in Production
London Hug 19/5 - Terraform in ProductionLondon Hug 19/5 - Terraform in Production
London Hug 19/5 - Terraform in Production
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
 
Terraform Introduction
Terraform IntroductionTerraform Introduction
Terraform Introduction
 
Final terraform
Final terraformFinal terraform
Final terraform
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021
 
An intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECSAn intro to Docker, Terraform, and Amazon ECS
An intro to Docker, Terraform, and Amazon ECS
 
Terraform Abstractions for Safety and Power
Terraform Abstractions for Safety and PowerTerraform Abstractions for Safety and Power
Terraform Abstractions for Safety and Power
 
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
 
Transfer to kubernetes data platform from EMR
Transfer to kubernetes data platform from EMRTransfer to kubernetes data platform from EMR
Transfer to kubernetes data platform from EMR
 
Terraform Modules and Continuous Deployment
Terraform Modules and Continuous DeploymentTerraform Modules and Continuous Deployment
Terraform Modules and Continuous Deployment
 
EC2とVarnishで画像配信
EC2とVarnishで画像配信EC2とVarnishで画像配信
EC2とVarnishで画像配信
 
tofu - COOKPAD's image system
tofu - COOKPAD's image systemtofu - COOKPAD's image system
tofu - COOKPAD's image system
 
"Continuously delivering infrastructure using Terraform and Packer" training ...
"Continuously delivering infrastructure using Terraform and Packer" training ..."Continuously delivering infrastructure using Terraform and Packer" training ...
"Continuously delivering infrastructure using Terraform and Packer" training ...
 
ILM - Pipeline in the cloud
ILM - Pipeline in the cloudILM - Pipeline in the cloud
ILM - Pipeline in the cloud
 
Cyansible
CyansibleCyansible
Cyansible
 
Terraform at Scale
Terraform at ScaleTerraform at Scale
Terraform at Scale
 
Sbt
SbtSbt
Sbt
 
Scaling terraform
Scaling terraformScaling terraform
Scaling terraform
 

Viewers also liked

Tesis sheridan revision final
Tesis sheridan revision finalTesis sheridan revision final
Tesis sheridan revision finalF1r2a3n4c5i6s7c8o
 
Artículos de Arturo Medina en la Revista Ausbanc
Artículos de Arturo Medina en la Revista AusbancArtículos de Arturo Medina en la Revista Ausbanc
Artículos de Arturo Medina en la Revista AusbancArturo Medina Martín
 
La població d’ espanya i de catalunya
La població d’ espanya i de catalunyaLa població d’ espanya i de catalunya
La població d’ espanya i de catalunyaFarré Reinalda
 
(teoria del pago)
(teoria del pago)(teoria del pago)
(teoria del pago)malfo
 
Anti theftsystemforvechicles1 final
Anti theftsystemforvechicles1 finalAnti theftsystemforvechicles1 final
Anti theftsystemforvechicles1 finalAshu0711
 
Tema 6 La construccion del estado liberal 1833_1868
Tema 6 La construccion del estado liberal 1833_1868Tema 6 La construccion del estado liberal 1833_1868
Tema 6 La construccion del estado liberal 1833_1868angel_elgranado
 
El Medio Natural España y Europa (Tema 2)
El Medio Natural España y Europa (Tema 2)El Medio Natural España y Europa (Tema 2)
El Medio Natural España y Europa (Tema 2)Bea Hervella
 
Educación diferencial
Educación diferencial Educación diferencial
Educación diferencial daytiare
 
PRspeak Profile-Lovely Sarkar
PRspeak Profile-Lovely SarkarPRspeak Profile-Lovely Sarkar
PRspeak Profile-Lovely SarkarLovely Sarkar
 
|AKBAR TRADING EST. SAUDI ARABIA|TE TYCO ELECTRONICS Epp 0317-4 08 solderle...
|AKBAR TRADING EST. SAUDI ARABIA|TE TYCO ELECTRONICS Epp 0317-4 08   solderle...|AKBAR TRADING EST. SAUDI ARABIA|TE TYCO ELECTRONICS Epp 0317-4 08   solderle...
|AKBAR TRADING EST. SAUDI ARABIA|TE TYCO ELECTRONICS Epp 0317-4 08 solderle...AKBAR TRADING
 
La Población (Tema 3)
La Población (Tema 3)La Población (Tema 3)
La Población (Tema 3)Bea Hervella
 

Viewers also liked (19)

Gestiondeprojets
GestiondeprojetsGestiondeprojets
Gestiondeprojets
 
List building
List buildingList building
List building
 
Seminario 9
Seminario 9Seminario 9
Seminario 9
 
Seminario 9
Seminario 9Seminario 9
Seminario 9
 
Tesis sheridan revision final
Tesis sheridan revision finalTesis sheridan revision final
Tesis sheridan revision final
 
Artículos de Arturo Medina en la Revista Ausbanc
Artículos de Arturo Medina en la Revista AusbancArtículos de Arturo Medina en la Revista Ausbanc
Artículos de Arturo Medina en la Revista Ausbanc
 
Ensauo final 5
Ensauo final 5Ensauo final 5
Ensauo final 5
 
La població d’ espanya i de catalunya
La població d’ espanya i de catalunyaLa població d’ espanya i de catalunya
La població d’ espanya i de catalunya
 
(teoria del pago)
(teoria del pago)(teoria del pago)
(teoria del pago)
 
Anti theftsystemforvechicles1 final
Anti theftsystemforvechicles1 finalAnti theftsystemforvechicles1 final
Anti theftsystemforvechicles1 final
 
Participant Guide Selling and Succession
Participant Guide Selling and SuccessionParticipant Guide Selling and Succession
Participant Guide Selling and Succession
 
Participant Guide insurance planning
Participant Guide insurance planningParticipant Guide insurance planning
Participant Guide insurance planning
 
Tema 6 La construccion del estado liberal 1833_1868
Tema 6 La construccion del estado liberal 1833_1868Tema 6 La construccion del estado liberal 1833_1868
Tema 6 La construccion del estado liberal 1833_1868
 
El Medio Natural España y Europa (Tema 2)
El Medio Natural España y Europa (Tema 2)El Medio Natural España y Europa (Tema 2)
El Medio Natural España y Europa (Tema 2)
 
Educación diferencial
Educación diferencial Educación diferencial
Educación diferencial
 
PRspeak Profile-Lovely Sarkar
PRspeak Profile-Lovely SarkarPRspeak Profile-Lovely Sarkar
PRspeak Profile-Lovely Sarkar
 
ROOM
ROOMROOM
ROOM
 
|AKBAR TRADING EST. SAUDI ARABIA|TE TYCO ELECTRONICS Epp 0317-4 08 solderle...
|AKBAR TRADING EST. SAUDI ARABIA|TE TYCO ELECTRONICS Epp 0317-4 08   solderle...|AKBAR TRADING EST. SAUDI ARABIA|TE TYCO ELECTRONICS Epp 0317-4 08   solderle...
|AKBAR TRADING EST. SAUDI ARABIA|TE TYCO ELECTRONICS Epp 0317-4 08 solderle...
 
La Población (Tema 3)
La Población (Tema 3)La Población (Tema 3)
La Población (Tema 3)
 

Similar to Doc

AWS Elastic Container Service - DockerHN
AWS Elastic Container Service - DockerHNAWS Elastic Container Service - DockerHN
AWS Elastic Container Service - DockerHNNguyen Anh Tu
 
AWS September Webinar Series - Running Microservices with Amazon EC2 Contain...
AWS September Webinar Series -  Running Microservices with Amazon EC2 Contain...AWS September Webinar Series -  Running Microservices with Amazon EC2 Contain...
AWS September Webinar Series - Running Microservices with Amazon EC2 Contain...Amazon Web Services
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesChris Bailey
 
A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)Julien SIMON
 
Introduction to Amazon EC2 Container Service and setting up build pipeline wi...
Introduction to Amazon EC2 Container Service and setting up build pipeline wi...Introduction to Amazon EC2 Container Service and setting up build pipeline wi...
Introduction to Amazon EC2 Container Service and setting up build pipeline wi...Swapnil Dahiphale
 
Automation with Packer and TerraForm
Automation with Packer and TerraFormAutomation with Packer and TerraForm
Automation with Packer and TerraFormWesley Charles Blake
 
DevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office HoursDevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office HoursAmazon Web Services
 
Tech connect aws
Tech connect  awsTech connect  aws
Tech connect awsBlake Diers
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesChris Bailey
 
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel AvivSelf Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel AvivAmazon Web Services
 
AWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and JavaAWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and JavaManish Pandit
 
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2Amazon Web Services
 
Immutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and JenkinsImmutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and JenkinsManish Pandit
 
Amazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to productionAmazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to productionPaolo latella
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStackPuppet
 
自己修復的なインフラ -Self-Healing Infrastructure-
自己修復的なインフラ -Self-Healing Infrastructure-自己修復的なインフラ -Self-Healing Infrastructure-
自己修復的なインフラ -Self-Healing Infrastructure-sinsoku listy
 

Similar to Doc (20)

AWS Elastic Container Service - DockerHN
AWS Elastic Container Service - DockerHNAWS Elastic Container Service - DockerHN
AWS Elastic Container Service - DockerHN
 
AWS September Webinar Series - Running Microservices with Amazon EC2 Contain...
AWS September Webinar Series -  Running Microservices with Amazon EC2 Contain...AWS September Webinar Series -  Running Microservices with Amazon EC2 Contain...
AWS September Webinar Series - Running Microservices with Amazon EC2 Contain...
 
EC2 Container Service
EC2 Container ServiceEC2 Container Service
EC2 Container Service
 
Amazon EC2 Container Service
Amazon EC2 Container ServiceAmazon EC2 Container Service
Amazon EC2 Container Service
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
 
A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)
 
Introduction to Amazon EC2 Container Service and setting up build pipeline wi...
Introduction to Amazon EC2 Container Service and setting up build pipeline wi...Introduction to Amazon EC2 Container Service and setting up build pipeline wi...
Introduction to Amazon EC2 Container Service and setting up build pipeline wi...
 
Automation with Packer and TerraForm
Automation with Packer and TerraFormAutomation with Packer and TerraForm
Automation with Packer and TerraForm
 
DevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office HoursDevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office Hours
 
Tech connect aws
Tech connect  awsTech connect  aws
Tech connect aws
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
 
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel AvivSelf Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
 
AWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and JavaAWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and Java
 
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
 
Immutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and JenkinsImmutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and Jenkins
 
Amazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to productionAmazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to production
 
Amazon ECS Deep Dive
Amazon ECS Deep DiveAmazon ECS Deep Dive
Amazon ECS Deep Dive
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStack
 
Orchestrating the Cloud
Orchestrating the CloudOrchestrating the Cloud
Orchestrating the Cloud
 
自己修復的なインフラ -Self-Healing Infrastructure-
自己修復的なインフラ -Self-Healing Infrastructure-自己修復的なインフラ -Self-Healing Infrastructure-
自己修復的なインフラ -Self-Healing Infrastructure-
 

Doc

  • 1. IOS UIAutomation integration François Reynaud freynaud@ebay.com github.com/freynaud/ios-driver
  • 2. Goal Cut down the time needed for the eBay IOS native apps regression. o build something light o reuse as much as possible o open source
  • 6. Selenium-isation REST API client server Instruments
  • 9. Content management { "label": "Bien que 8,848 mètres de haut, Montagne 1 aient été montés la première fois 29 May 1953.", "name": "Bien que 8,848 mètres de haut, Montagne 1 aient été montés la première fois 29 May 1953.", "value": "Bien que 8,848 mètres de haut, Montagne 1 aient été montés la première fois 29 May 1953.", "rect": { "origin": { "x": 34, "y": 168 }, "size": { "height": 164, "width": 251 } }, "type": "UIAStaticText", }
  • 11. Content management IOSCapabilities cap = IOSCapabilities.ipad("eBay"); cap.setLanguage("fr"); UIADriver driver = new RemoteUIADriver(url, cap); Criteria c = new NameCriteria("Agree", serverL10N); UIAElement button = driver.findElement(c); button.tap();
  • 13. Example @Test(dataProvider = "ipad") public void testIOSAppIPAD(String l) throws Exception { IOSCapabilities cap = IOSCapabilities.ipad("eBay"); cap.setLanguage(l); UIADriver driver = new RemoteUIADriver("http://localhost:4444/wd/hub", cap); Criteria c1 = new TypeCriteria(UIAButton.class); Criteria c2 = new NameCriteria("Agree", L10NStrategy.serverL10N); Criteria c = new AndCriteria(c1, c2); UIAElement button = driver.findElement(c); button.tap(); driver.setDeviceOrientation(UIA_DEVICE_ORIENTATION_PORTRAIT); Criteria ui = new TypeCriteria(UIATextField.class); Criteria p = new TypeCriteria(UIASecureTextField.class); UIATextField userId = (UIATextField) driver.findElement(ui); userId.setValue("francois_uk1"); UIASecureTextField pwd = (UIASecureTextField) driver.findElement(p); pwd.setValue("password"); driver.takeScreenshot(ss.png); Reporter.log("<img src='ss.png'>"); driver.quit(); }
  • 14. Demo
  • 15. Why ? REST API client server Instruments
  • 16. Integrating Selenium grid. server Instruments client(s) Hub server Instruments server Instruments
  • 17. Demo