SlideShare une entreprise Scribd logo
1  sur  18
1 Integrating TestComplete and Ruby Presented by: MykolaKolisnyk AUTOMATED-TESTING.INFO
What was originally Win UI tests System tests Mac UI tests Ruby AQA TestComplete Cucumber
Win UI tests System tests Mac UI tests Ruby ??? Cucumber AQA TestComplete How it was supposed to be
Main goals Provide common layer for all areas Give the ability to involve non-technical people into automation Provide common solution for distributed testing All improvements should be done smoothly (current solution should always work) 06.02.11
Win UI tests System tests Mac UI tests AQA TestComplete Ruby Cucumber What was decided
[object Object]
Set run status
Send resultsAQA TestComplete client ,[object Object]
Switch status
Transfer dataHttp bridge Ruby client ,[object Object]
Check execution status
Get resultsRuby/TestComplete connection overview
AQA TC client Http Bridge Ruby Client Get command Command Send command Set pending status Status Check status Run command Set «done» status Send results Results Get Results How it works
TestComplete part 06.02.11 Wait for command Reset status Process functions Execute code Send results Set “done” status
Ruby part 06.02.11 Verify “done” status Valid TC code Set “pending” status Send code to execute Verify completion Call TC code Get results
Step 2: start TC client AQA TestComplete client Step 1: start bridge Http bridge Ruby client Step 3: start Ruby client How to start it
Results in YAML format. Example: ret_val: <return value> errors: - <error message 1> - <error message 2> Get results AQA TestComplete client Transform into Ruby structure Http bridge Executable TestComplete code Ruby client Data exchange Fail if some errors present
Case 2: TC crashes Case 1: TC request failed Stable communication Case 3: execution is pending when Ruby client starts Resolution: Resend several times until success Stable communication Resolution: Ruby client waits for some limited time to execute Case 4: bridge was stopped Resolution: Ruby client sets status into «done» at the begining Resolution: clients are stopped AQA TestComplete client Http bridge Ruby client Hard cases

Contenu connexe

Tendances

React + Mobile
React + MobileReact + Mobile
React + Mobileantriss
 
Care and Feeding of Large Web Applications
Care and Feeding of Large Web ApplicationsCare and Feeding of Large Web Applications
Care and Feeding of Large Web ApplicationsPerrin Harkins
 
Using RabbitMQ and Netty library to implement RPC protocol
Using RabbitMQ and Netty library to implement RPC protocolUsing RabbitMQ and Netty library to implement RPC protocol
Using RabbitMQ and Netty library to implement RPC protocolTho Q Luong Luong
 
OSMC 2008 | Lessons in Nagios Learnt From Developing Opsview by Ton Voon
OSMC 2008 | Lessons in Nagios Learnt From Developing Opsview by Ton VoonOSMC 2008 | Lessons in Nagios Learnt From Developing Opsview by Ton Voon
OSMC 2008 | Lessons in Nagios Learnt From Developing Opsview by Ton VoonNETWAYS
 
WebSDK - Switching between service providers
WebSDK - Switching between service providersWebSDK - Switching between service providers
WebSDK - Switching between service providersHotstar
 
Rust with-kafka-07-02-2019
Rust with-kafka-07-02-2019Rust with-kafka-07-02-2019
Rust with-kafka-07-02-2019Gerard Klijs
 
Rust kafka-5-2019-unskip
Rust kafka-5-2019-unskipRust kafka-5-2019-unskip
Rust kafka-5-2019-unskipGerard Klijs
 
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]Ortus Solutions, Corp
 
Monitoring and Resiliency Testing our Apache Kafka Clusters at Goldman Sachs ...
Monitoring and Resiliency Testing our Apache Kafka Clusters at Goldman Sachs ...Monitoring and Resiliency Testing our Apache Kafka Clusters at Goldman Sachs ...
Monitoring and Resiliency Testing our Apache Kafka Clusters at Goldman Sachs ...HostedbyConfluent
 
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...Flink Forward
 
End to end testing a web application with Clojure
End to end testing a web application with ClojureEnd to end testing a web application with Clojure
End to end testing a web application with ClojureGerard Klijs
 
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]Ortus Solutions, Corp
 
End-to-End Reactive Data Access Using R2DBC with RSocket and Proteus
End-to-End Reactive Data Access Using R2DBC with RSocket and ProteusEnd-to-End Reactive Data Access Using R2DBC with RSocket and Proteus
End-to-End Reactive Data Access Using R2DBC with RSocket and ProteusVMware Tanzu
 
Game Networking for Online games
Game Networking for Online gamesGame Networking for Online games
Game Networking for Online gamesMinh Nghiem
 
Introduction to K6
Introduction to K6Introduction to K6
Introduction to K6Knoldus Inc.
 
Building a Dynamic DNS Infrastructure
Building a Dynamic DNS InfrastructureBuilding a Dynamic DNS Infrastructure
Building a Dynamic DNS InfrastructureKhalid Hasanov
 
How and why we got Prometheus working with Docker Swarm
How and why we got Prometheus working with Docker SwarmHow and why we got Prometheus working with Docker Swarm
How and why we got Prometheus working with Docker SwarmLuke Marsden
 

Tendances (20)

React + Mobile
React + MobileReact + Mobile
React + Mobile
 
Care and Feeding of Large Web Applications
Care and Feeding of Large Web ApplicationsCare and Feeding of Large Web Applications
Care and Feeding of Large Web Applications
 
Using RabbitMQ and Netty library to implement RPC protocol
Using RabbitMQ and Netty library to implement RPC protocolUsing RabbitMQ and Netty library to implement RPC protocol
Using RabbitMQ and Netty library to implement RPC protocol
 
OSMC 2008 | Lessons in Nagios Learnt From Developing Opsview by Ton Voon
OSMC 2008 | Lessons in Nagios Learnt From Developing Opsview by Ton VoonOSMC 2008 | Lessons in Nagios Learnt From Developing Opsview by Ton Voon
OSMC 2008 | Lessons in Nagios Learnt From Developing Opsview by Ton Voon
 
WebSDK - Switching between service providers
WebSDK - Switching between service providersWebSDK - Switching between service providers
WebSDK - Switching between service providers
 
Rust with-kafka-07-02-2019
Rust with-kafka-07-02-2019Rust with-kafka-07-02-2019
Rust with-kafka-07-02-2019
 
Rust kafka-5-2019-unskip
Rust kafka-5-2019-unskipRust kafka-5-2019-unskip
Rust kafka-5-2019-unskip
 
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
 
Monitoring and Resiliency Testing our Apache Kafka Clusters at Goldman Sachs ...
Monitoring and Resiliency Testing our Apache Kafka Clusters at Goldman Sachs ...Monitoring and Resiliency Testing our Apache Kafka Clusters at Goldman Sachs ...
Monitoring and Resiliency Testing our Apache Kafka Clusters at Goldman Sachs ...
 
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
 
End to end testing a web application with Clojure
End to end testing a web application with ClojureEnd to end testing a web application with Clojure
End to end testing a web application with Clojure
 
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
Brad wood - 5 CommandBox Modules You Should Be Using [Into The Box 2020]
 
Sprint 12
Sprint 12Sprint 12
Sprint 12
 
End-to-End Reactive Data Access Using R2DBC with RSocket and Proteus
End-to-End Reactive Data Access Using R2DBC with RSocket and ProteusEnd-to-End Reactive Data Access Using R2DBC with RSocket and Proteus
End-to-End Reactive Data Access Using R2DBC with RSocket and Proteus
 
Cassovary
CassovaryCassovary
Cassovary
 
Ad Server Optimization
Ad Server OptimizationAd Server Optimization
Ad Server Optimization
 
Game Networking for Online games
Game Networking for Online gamesGame Networking for Online games
Game Networking for Online games
 
Introduction to K6
Introduction to K6Introduction to K6
Introduction to K6
 
Building a Dynamic DNS Infrastructure
Building a Dynamic DNS InfrastructureBuilding a Dynamic DNS Infrastructure
Building a Dynamic DNS Infrastructure
 
How and why we got Prometheus working with Docker Swarm
How and why we got Prometheus working with Docker SwarmHow and why we got Prometheus working with Docker Swarm
How and why we got Prometheus working with Docker Swarm
 

En vedette

Александр Кабалюк – SilkTest
Александр Кабалюк – SilkTestАлександр Кабалюк – SilkTest
Александр Кабалюк – SilkTestautomated-testing.info
 
Философия и построение тестового фреймворка на основе BDD в PHP проектах
Философия и построение тестового фреймворка на основе BDD в PHP проектахФилософия и построение тестового фреймворка на основе BDD в PHP проектах
Философия и построение тестового фреймворка на основе BDD в PHP проектахautomated-testing.info
 
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхКурс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхautomated-testing.info
 
Швейцарский нож для Android
Швейцарский нож для AndroidШвейцарский нож для Android
Швейцарский нож для Androidautomated-testing.info
 

En vedette (6)

Selenium в облаках
Selenium в облакахSelenium в облаках
Selenium в облаках
 
Александр Кабалюк – SilkTest
Александр Кабалюк – SilkTestАлександр Кабалюк – SilkTest
Александр Кабалюк – SilkTest
 
За пределами PageObject
За пределами PageObjectЗа пределами PageObject
За пределами PageObject
 
Философия и построение тестового фреймворка на основе BDD в PHP проектах
Философия и построение тестового фреймворка на основе BDD в PHP проектахФилософия и построение тестового фреймворка на основе BDD в PHP проектах
Философия и построение тестового фреймворка на основе BDD в PHP проектах
 
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхКурс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
 
Швейцарский нож для Android
Швейцарский нож для AndroidШвейцарский нож для Android
Швейцарский нож для Android
 

Similaire à Integrating TC and Ruby

web 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwickweb 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwickRoopa Nadkarni
 
How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)Giulio Vian
 
Debugging Complex Issues in Web Applications
Debugging Complex Issues in Web ApplicationsDebugging Complex Issues in Web Applications
Debugging Complex Issues in Web ApplicationsVMware Tanzu
 
Productivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA TestersProductivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA TestersWSO2
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsMárton Kodok
 
Verify Your Kubernetes Clusters with Upstream e2e tests
Verify Your Kubernetes Clusters with Upstream e2e testsVerify Your Kubernetes Clusters with Upstream e2e tests
Verify Your Kubernetes Clusters with Upstream e2e testsKen'ichi Ohmichi
 
Automated acceptance test
Automated acceptance testAutomated acceptance test
Automated acceptance testBryan Liu
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...Matt Leming
 
APIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingPhil Wilkins
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...VMware Tanzu
 
Bottlenecks rel b works and rel c planning
Bottlenecks rel b works and rel c planningBottlenecks rel b works and rel c planning
Bottlenecks rel b works and rel c planningJun Li
 
How to Control Service Startup Order in Docker Compose
How to Control Service Startup Order in Docker ComposeHow to Control Service Startup Order in Docker Compose
How to Control Service Startup Order in Docker ComposeBogdan Marian
 
Where is my scalable api?
Where is my scalable api?Where is my scalable api?
Where is my scalable api?Altoros
 
Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Thomas Shaw
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...WebStackAcademy
 
Testing with test_complete
Testing with test_completeTesting with test_complete
Testing with test_completebinuiweb
 

Similaire à Integrating TC and Ruby (20)

Load testing Java & Docker
Load testing Java & DockerLoad testing Java & Docker
Load testing Java & Docker
 
Tomcat 6: Evolving our server
Tomcat 6: Evolving our serverTomcat 6: Evolving our server
Tomcat 6: Evolving our server
 
web 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwickweb 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwick
 
How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)How's relevant JMeter to me - DevConf (Letterkenny)
How's relevant JMeter to me - DevConf (Letterkenny)
 
Debugging Complex Issues in Web Applications
Debugging Complex Issues in Web ApplicationsDebugging Complex Issues in Web Applications
Debugging Complex Issues in Web Applications
 
Productivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA TestersProductivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA Testers
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud Workflows
 
Capistrano
CapistranoCapistrano
Capistrano
 
Verify Your Kubernetes Clusters with Upstream e2e tests
Verify Your Kubernetes Clusters with Upstream e2e testsVerify Your Kubernetes Clusters with Upstream e2e tests
Verify Your Kubernetes Clusters with Upstream e2e tests
 
Automated acceptance test
Automated acceptance testAutomated acceptance test
Automated acceptance test
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 
APIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go Streaming
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
 
Bottlenecks rel b works and rel c planning
Bottlenecks rel b works and rel c planningBottlenecks rel b works and rel c planning
Bottlenecks rel b works and rel c planning
 
How to Control Service Startup Order in Docker Compose
How to Control Service Startup Order in Docker ComposeHow to Control Service Startup Order in Docker Compose
How to Control Service Startup Order in Docker Compose
 
Where is my scalable api?
Where is my scalable api?Where is my scalable api?
Where is my scalable api?
 
Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 
Testing with test_complete
Testing with test_completeTesting with test_complete
Testing with test_complete
 
Where is my scalable API?
Where is my scalable API?Where is my scalable API?
Where is my scalable API?
 

Plus de automated-testing.info

Автоматизация тестирования как сервис
Автоматизация тестирования как сервисАвтоматизация тестирования как сервис
Автоматизация тестирования как сервисautomated-testing.info
 
Тестирование производительности Ajax приложений с помощью JMeter
Тестирование производительности Ajax приложений с помощью JMeterТестирование производительности Ajax приложений с помощью JMeter
Тестирование производительности Ajax приложений с помощью JMeterautomated-testing.info
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием PythonБыстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием Pythonautomated-testing.info
 
“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектах“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектахautomated-testing.info
 
Проблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestCompleteПроблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestCompleteautomated-testing.info
 
Совершенный тестовый фреймворк
Совершенный тестовый фреймворкСовершенный тестовый фреймворк
Совершенный тестовый фреймворкautomated-testing.info
 
В поисках магической кнопки или как приручить SOAP UI
В поисках магической кнопки или как приручить SOAP UIВ поисках магической кнопки или как приручить SOAP UI
В поисках магической кнопки или как приручить SOAP UIautomated-testing.info
 
Фреймворк для регрессионного тестирования на основе WebDriver
Фреймворк для регрессионного тестирования на основе WebDriverФреймворк для регрессионного тестирования на основе WebDriver
Фреймворк для регрессионного тестирования на основе WebDriverautomated-testing.info
 
Andrey Azimov - Как найти работу тестировщику?
Andrey Azimov - Как найти работу тестировщику?Andrey Azimov - Как найти работу тестировщику?
Andrey Azimov - Как найти работу тестировщику?automated-testing.info
 
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...automated-testing.info
 
Alexei Zozulenko - Test automation failure
Alexei Zozulenko - Test automation failureAlexei Zozulenko - Test automation failure
Alexei Zozulenko - Test automation failureautomated-testing.info
 
Vladimir Primakov - Test Automation By Example
Vladimir Primakov - Test Automation By ExampleVladimir Primakov - Test Automation By Example
Vladimir Primakov - Test Automation By Exampleautomated-testing.info
 
Alexander Zvonov Test Automation Story
Alexander Zvonov Test Automation StoryAlexander Zvonov Test Automation Story
Alexander Zvonov Test Automation Storyautomated-testing.info
 
Daria Chernishova Test Automation Story
Daria Chernishova Test Automation StoryDaria Chernishova Test Automation Story
Daria Chernishova Test Automation Storyautomated-testing.info
 

Plus de automated-testing.info (20)

Автоматизация тестирования как сервис
Автоматизация тестирования как сервисАвтоматизация тестирования как сервис
Автоматизация тестирования как сервис
 
Тестирование производительности Ajax приложений с помощью JMeter
Тестирование производительности Ajax приложений с помощью JMeterТестирование производительности Ajax приложений с помощью JMeter
Тестирование производительности Ajax приложений с помощью JMeter
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием PythonБыстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием Python
 
“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектах“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектах
 
Проблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestCompleteПроблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestComplete
 
Совершенный тестовый фреймворк
Совершенный тестовый фреймворкСовершенный тестовый фреймворк
Совершенный тестовый фреймворк
 
В поисках магической кнопки или как приручить SOAP UI
В поисках магической кнопки или как приручить SOAP UIВ поисках магической кнопки или как приручить SOAP UI
В поисках магической кнопки или как приручить SOAP UI
 
Фреймворк для регрессионного тестирования на основе WebDriver
Фреймворк для регрессионного тестирования на основе WebDriverФреймворк для регрессионного тестирования на основе WebDriver
Фреймворк для регрессионного тестирования на основе WebDriver
 
Codeception - WTF?
Codeception - WTF?Codeception - WTF?
Codeception - WTF?
 
Keyword driven testing
Keyword driven testingKeyword driven testing
Keyword driven testing
 
Why it is not working
Why it is not workingWhy it is not working
Why it is not working
 
Andrey Azimov - Как найти работу тестировщику?
Andrey Azimov - Как найти работу тестировщику?Andrey Azimov - Как найти работу тестировщику?
Andrey Azimov - Как найти работу тестировщику?
 
Jenkins auto configureforbranch-php
Jenkins auto configureforbranch-phpJenkins auto configureforbranch-php
Jenkins auto configureforbranch-php
 
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
 
Alexei Zozulenko - Test automation failure
Alexei Zozulenko - Test automation failureAlexei Zozulenko - Test automation failure
Alexei Zozulenko - Test automation failure
 
Vladimir Primakov - Test Automation By Example
Vladimir Primakov - Test Automation By ExampleVladimir Primakov - Test Automation By Example
Vladimir Primakov - Test Automation By Example
 
Codeception Introduction
Codeception IntroductionCodeception Introduction
Codeception Introduction
 
Ivan Bordug Test Automation Story
Ivan Bordug Test Automation StoryIvan Bordug Test Automation Story
Ivan Bordug Test Automation Story
 
Alexander Zvonov Test Automation Story
Alexander Zvonov Test Automation StoryAlexander Zvonov Test Automation Story
Alexander Zvonov Test Automation Story
 
Daria Chernishova Test Automation Story
Daria Chernishova Test Automation StoryDaria Chernishova Test Automation Story
Daria Chernishova Test Automation Story
 

Integrating TC and Ruby

  • 1. 1 Integrating TestComplete and Ruby Presented by: MykolaKolisnyk AUTOMATED-TESTING.INFO
  • 2. What was originally Win UI tests System tests Mac UI tests Ruby AQA TestComplete Cucumber
  • 3. Win UI tests System tests Mac UI tests Ruby ??? Cucumber AQA TestComplete How it was supposed to be
  • 4. Main goals Provide common layer for all areas Give the ability to involve non-technical people into automation Provide common solution for distributed testing All improvements should be done smoothly (current solution should always work) 06.02.11
  • 5. Win UI tests System tests Mac UI tests AQA TestComplete Ruby Cucumber What was decided
  • 6.
  • 8.
  • 10.
  • 13. AQA TC client Http Bridge Ruby Client Get command Command Send command Set pending status Status Check status Run command Set «done» status Send results Results Get Results How it works
  • 14. TestComplete part 06.02.11 Wait for command Reset status Process functions Execute code Send results Set “done” status
  • 15. Ruby part 06.02.11 Verify “done” status Valid TC code Set “pending” status Send code to execute Verify completion Call TC code Get results
  • 16. Step 2: start TC client AQA TestComplete client Step 1: start bridge Http bridge Ruby client Step 3: start Ruby client How to start it
  • 17. Results in YAML format. Example: ret_val: <return value> errors: - <error message 1> - <error message 2> Get results AQA TestComplete client Transform into Ruby structure Http bridge Executable TestComplete code Ruby client Data exchange Fail if some errors present
  • 18. Case 2: TC crashes Case 1: TC request failed Stable communication Case 3: execution is pending when Ruby client starts Resolution: Resend several times until success Stable communication Resolution: Ruby client waits for some limited time to execute Case 4: bridge was stopped Resolution: Ruby client sets status into «done» at the begining Resolution: clients are stopped AQA TestComplete client Http bridge Ruby client Hard cases
  • 19. AQA TestComplete client AQA TestComplete client Http bridge Http bridge Target Machine 2 Target Machine 1 Re-initialize client with new target Ruby code Distributed execution
  • 20. Goals achievement 06.02.11 Win UI tests System tests Mac UI tests It still works AQA TestComplete Ruby Distributed architecture Common Layer Cucumber Works for non-technical people
  • 21. Alternative 06.02.11 Original post at: http://samsagiletesting.blogspot.com/2010/03/test-complete-and-ruby.html
  • 22. Why alternative doesn’t work? Too tight connection to TestComplete Dependency on system-dependend values (UID) Distributed solution works for Windows only Complex Ruby structures 06.02.11