SlideShare une entreprise Scribd logo
1  sur  29
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 How it was supposed to be
Win UI tests System tests Mac UI tests Ruby ??? Cucumber AQA TestComplete Where is TestComplete?
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 Ruby Cucumber What was decided
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: initial state
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: initiate command
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: process results
TestComplete part 06.02.11 Reset status Process functions
TestComplete part 06.02.11 Wait for command Execute code Send results Set “done” status
Ruby part: runner 06.02.11 Verify “done” status Set “pending” status Send code to execute Verify completion Get results
Ruby part: client code 06.02.11 Valid TC code Call TC code
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> AQA TestComplete client Http bridge Executable TestComplete code Ruby client Data exchange
Data exchange Get results Transform into Ruby structure Fail if some errors present
Stable communication Stable communication AQA TestComplete client Http bridge Ruby client Hard cases: stable areas
Case 1: TC request failed Resolution: Resend several times until success AQA TestComplete client Http bridge Ruby client Hard cases
Case 2: TC crashes Resolution: Ruby client waits for some limited time to execute AQA TestComplete client Http bridge Ruby client Hard cases
Case 3: execution is pending when Ruby client starts Resolution: Ruby client sets status into «done» at the begining AQA TestComplete client Http bridge Ruby client Hard cases
Case 4: bridge was stopped Resolution: clients are stopped AQA TestComplete client Http bridge Ruby client Hard cases

Contenu connexe

Tendances

Tendances (20)

RabbitMQ & Hutch
RabbitMQ & HutchRabbitMQ & Hutch
RabbitMQ & Hutch
 
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
 
PPW2007 - Continuity Project
PPW2007 - Continuity ProjectPPW2007 - Continuity Project
PPW2007 - Continuity Project
 
Rust kafka-5-2019-unskip
Rust kafka-5-2019-unskipRust kafka-5-2019-unskip
Rust kafka-5-2019-unskip
 
Better performances with HTTP/2
Better performances with HTTP/2Better performances with HTTP/2
Better performances with HTTP/2
 
Distributed messaging with AMQP
Distributed messaging with AMQPDistributed messaging with AMQP
Distributed messaging with AMQP
 
RabbitMQ and AMQP Model
RabbitMQ and AMQP ModelRabbitMQ and AMQP Model
RabbitMQ and AMQP Model
 
Java Messaging with AMQP and RabbitMQ
Java Messaging with AMQP and RabbitMQ Java Messaging with AMQP and RabbitMQ
Java Messaging with AMQP and RabbitMQ
 
Making react more like rails
Making react more like railsMaking react more like rails
Making react more like rails
 
Benefits of Reactive Programming with Reactor and Spring Boot 2 - Violeta Geo...
Benefits of Reactive Programming with Reactor and Spring Boot 2 - Violeta Geo...Benefits of Reactive Programming with Reactor and Spring Boot 2 - Violeta Geo...
Benefits of Reactive Programming with Reactor and Spring Boot 2 - Violeta Geo...
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQMessaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
 
Continous Delivery and Rails Upgrades
Continous Delivery and Rails UpgradesContinous Delivery and Rails Upgrades
Continous Delivery and Rails Upgrades
 
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
 
Until Successful Scope With Mule ESB
Until Successful Scope With Mule ESBUntil Successful Scope With Mule ESB
Until Successful Scope With Mule ESB
 
An update from the RabbitMQ team - Michael Klishin
An update from the RabbitMQ team - Michael KlishinAn update from the RabbitMQ team - Michael Klishin
An update from the RabbitMQ team - Michael Klishin
 
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST Microservice
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQMessaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
 
AMQP for phpMelb
AMQP for phpMelbAMQP for phpMelb
AMQP for phpMelb
 
AMQP with RabbitMQ
AMQP with RabbitMQAMQP with RabbitMQ
AMQP with RabbitMQ
 
Supersonic, Subatomic, Kubernetes native java
Supersonic, Subatomic, Kubernetes native javaSupersonic, Subatomic, Kubernetes native java
Supersonic, Subatomic, Kubernetes native java
 

En vedette (9)

CLIPPING COLLECTION-Noisettes
CLIPPING COLLECTION-NoisettesCLIPPING COLLECTION-Noisettes
CLIPPING COLLECTION-Noisettes
 
5 Steps to Disciplined Dreaming
5 Steps to Disciplined Dreaming5 Steps to Disciplined Dreaming
5 Steps to Disciplined Dreaming
 
Tugas matematika 3
Tugas matematika 3Tugas matematika 3
Tugas matematika 3
 
TPDDL Gives Them Wings
TPDDL Gives Them WingsTPDDL Gives Them Wings
TPDDL Gives Them Wings
 
Alam Mahmood presentation 2015
Alam Mahmood presentation 2015Alam Mahmood presentation 2015
Alam Mahmood presentation 2015
 
Financial Inclusion -A study on East African Country Uganda,
Financial Inclusion -A study on East African Country Uganda,Financial Inclusion -A study on East African Country Uganda,
Financial Inclusion -A study on East African Country Uganda,
 
Usman_Kunnath_Resume_Production_Support_Engineer
Usman_Kunnath_Resume_Production_Support_EngineerUsman_Kunnath_Resume_Production_Support_Engineer
Usman_Kunnath_Resume_Production_Support_Engineer
 
Bài tập thực hành số 1
Bài tập thực hành số 1Bài tập thực hành số 1
Bài tập thực hành số 1
 
Transfer pricing How MNC's use it
Transfer pricing  How MNC's use itTransfer pricing  How MNC's use it
Transfer pricing How MNC's use it
 

Similaire à Ruby и TestComplete

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
Roopa Nadkarni
 
Mq ssl channels_on_windows
Mq ssl channels_on_windowsMq ssl channels_on_windows
Mq ssl channels_on_windows
karthickmsit
 
Productivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA TestersProductivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA Testers
WSO2
 
Running large scale Kafka upgrades at Yelp (Manpreet Singh,Yelp) Kafka Summit...
Running large scale Kafka upgrades at Yelp (Manpreet Singh,Yelp) Kafka Summit...Running large scale Kafka upgrades at Yelp (Manpreet Singh,Yelp) Kafka Summit...
Running large scale Kafka upgrades at Yelp (Manpreet Singh,Yelp) Kafka Summit...
confluent
 
tomcat server certification
tomcat server certificationtomcat server certification
tomcat server certification
Vskills
 

Similaire à Ruby и TestComplete (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
 
Inter-Process/Task Communication With Message Queues
Inter-Process/Task Communication With Message QueuesInter-Process/Task Communication With Message Queues
Inter-Process/Task Communication With Message Queues
 
(DEV310) CI/CD of Services with Mocking & Resiliency Testing Using AWS
(DEV310) CI/CD of Services with Mocking & Resiliency Testing Using AWS(DEV310) CI/CD of Services with Mocking & Resiliency Testing Using AWS
(DEV310) CI/CD of Services with Mocking & Resiliency Testing Using AWS
 
Move fast and consumer driven contract test things
Move fast and consumer driven contract test thingsMove fast and consumer driven contract test things
Move fast and consumer driven contract test things
 
Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit
Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking ToolkitConnect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit
Connect, Test, Optimize: The Ultimate Kafka Connector Benchmarking Toolkit
 
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)
 
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
 
Mq ssl channels_on_windows
Mq ssl channels_on_windowsMq ssl channels_on_windows
Mq ssl channels_on_windows
 
Debugging Complex Issues in Web Applications
Debugging Complex Issues in Web ApplicationsDebugging Complex Issues in Web Applications
Debugging Complex Issues in Web Applications
 
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
 
Where is my scalable api?
Where is my scalable api?Where is my scalable api?
Where is my scalable api?
 
Productivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA TestersProductivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA Testers
 
Developing Microservices with Apache Camel
Developing Microservices with Apache CamelDeveloping Microservices with Apache Camel
Developing Microservices with Apache Camel
 
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
 
Websocket
WebsocketWebsocket
Websocket
 
Running large scale Kafka upgrades at Yelp (Manpreet Singh,Yelp) Kafka Summit...
Running large scale Kafka upgrades at Yelp (Manpreet Singh,Yelp) Kafka Summit...Running large scale Kafka upgrades at Yelp (Manpreet Singh,Yelp) Kafka Summit...
Running large scale Kafka upgrades at Yelp (Manpreet Singh,Yelp) Kafka Summit...
 
tomcat server certification
tomcat server certificationtomcat server certification
tomcat server certification
 
Expand Your Testing with Virtual Services
Expand Your Testing with Virtual ServicesExpand Your Testing with Virtual Services
Expand Your Testing with Virtual Services
 
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
 

Plus de automated-testing.info

Александр Кабалюк – SilkTest
Александр Кабалюк – SilkTestАлександр Кабалюк – SilkTest
Александр Кабалюк – SilkTest
automated-testing.info
 
За пределами PageObject
За пределами PageObjectЗа пределами PageObject
За пределами PageObject
automated-testing.info
 
Автоматизация тестирования как сервис
Автоматизация тестирования как сервисАвтоматизация тестирования как сервис
Автоматизация тестирования как сервис
automated-testing.info
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием PythonБыстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием Python
automated-testing.info
 
Andrey Azimov - Как найти работу тестировщику?
Andrey Azimov - Как найти работу тестировщику?Andrey Azimov - Как найти работу тестировщику?
Andrey Azimov - Как найти работу тестировщику?
automated-testing.info
 
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
automated-testing.info
 

Plus de automated-testing.info (20)

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

Ruby и TestComplete

  • 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 How it was supposed to be
  • 4. Win UI tests System tests Mac UI tests Ruby ??? Cucumber AQA TestComplete Where is TestComplete?
  • 5. 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
  • 6. Win UI tests System tests Mac UI tests Ruby Cucumber What was decided
  • 7. Win UI tests System tests Mac UI tests AQA TestComplete Ruby Cucumber What was decided
  • 8.
  • 10.
  • 12.
  • 15. 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: initial state
  • 16. 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: initiate command
  • 17. 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: process results
  • 18. TestComplete part 06.02.11 Reset status Process functions
  • 19. TestComplete part 06.02.11 Wait for command Execute code Send results Set “done” status
  • 20. Ruby part: runner 06.02.11 Verify “done” status Set “pending” status Send code to execute Verify completion Get results
  • 21. Ruby part: client code 06.02.11 Valid TC code Call TC code
  • 22. 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
  • 23. Results in YAML format. Example: ret_val: <return value> errors: - <error message 1> - <error message 2> AQA TestComplete client Http bridge Executable TestComplete code Ruby client Data exchange
  • 24. Data exchange Get results Transform into Ruby structure Fail if some errors present
  • 25. Stable communication Stable communication AQA TestComplete client Http bridge Ruby client Hard cases: stable areas
  • 26. Case 1: TC request failed Resolution: Resend several times until success AQA TestComplete client Http bridge Ruby client Hard cases
  • 27. Case 2: TC crashes Resolution: Ruby client waits for some limited time to execute AQA TestComplete client Http bridge Ruby client Hard cases
  • 28. Case 3: execution is pending when Ruby client starts Resolution: Ruby client sets status into «done» at the begining AQA TestComplete client Http bridge Ruby client Hard cases
  • 29. Case 4: bridge was stopped Resolution: clients are stopped AQA TestComplete client Http bridge Ruby client Hard cases
  • 30. 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
  • 31. 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
  • 32. Alternative 06.02.11 Original post at: http://samsagiletesting.blogspot.com/2010/03/test-complete-and-ruby.html
  • 33. 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