Your SlideShare is downloading. ×
Ruby и TestComplete
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ruby и TestComplete

935

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
935
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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.
    • Get command
    • 9. Set run status
    • 10. Send results
    AQA TestComplete client
    Http bridge
    Ruby client
    • Send command
    • 13. Check execution status
    • 14. Get results
    Ruby/TestComplete connection overview
  • 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
  • 34. Questions?
  • 35. AUTOMATED-TESTING.INFO
    06.02.11

×