Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1<br />Our own tool: first steps<br />Presented by: MykolaKolisnyk<br />
Why?<br />Too much new knowledge<br />Architecture gaps<br />Inconvenient IDE<br />Internal restrictions<br />Heavy Weight...
Typical Result<br />06.02.11<br />
I’ll make my own solution<br />06.02.11<br />
Requirements<br />06.02.11<br /><ul><li>Cross-platform solution
Portable to any standard programming language
Client/Server architecture
Use of standard libraries
High extensibility</li></li></ul><li>Toolset<br />06.02.11<br />JRE 1.6<br />JNA library<br />Any library supporting HTTP ...
Architecture<br />06.02.11<br />Java client API<br />Ruby client API<br />C# client API<br />Python client API<br />Http s...
Client/Server data communication<br />06.02.11<br />Code structures<br />XML Request body<br />JAXB<br />Code structures<b...
Command Request structure<br />06.02.11<br />URL:  <host>/<command class canonical name><br />Example:  http://localhost:5...
Sample server code<br />06.02.11<br />
Sample client code<br />06.02.11<br />
Technological expansion<br />06.02.11<br />GUI<br />libraries<br />System <br />libraries<br />SOA <br />libraries<br />Cl...
How to get the GUI<br />06.02.11<br />Find required window by attributes<br />Retrieve window handle<br />Send required me...
Typical window attributes<br />06.02.11<br />Caption<br />Class<br />Index<br />
How to find window<br />06.02.11<br />While EnumWindows returns true<br />WinClass matches<br />No<br />Yes<br />Caption m...
Objects hierarchy<br />06.02.11<br />Window<br />MovableWindow<br />Control<br />MainWindow<br />TextField<br />Button<br ...
Sample declaration<br />06.02.11<br />
Sample test code<br />06.02.11<br />
Upcoming SlideShare
Loading in …5
×

Design your own test automation tool

Как можно построить универсальный инструмент автоматизации для своих нужд и нужд проекта

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

Design your own test automation tool

  1. 1. 1<br />Our own tool: first steps<br />Presented by: MykolaKolisnyk<br />
  2. 2. Why?<br />Too much new knowledge<br />Architecture gaps<br />Inconvenient IDE<br />Internal restrictions<br />Heavy Weight solution<br />Lack of integrity<br />
  3. 3. Typical Result<br />06.02.11<br />
  4. 4. I’ll make my own solution<br />06.02.11<br />
  5. 5. Requirements<br />06.02.11<br /><ul><li>Cross-platform solution
  6. 6. Portable to any standard programming language
  7. 7. Client/Server architecture
  8. 8. Use of standard libraries
  9. 9. High extensibility</li></li></ul><li>Toolset<br />06.02.11<br />JRE 1.6<br />JNA library<br />Any library supporting HTTP communication (client side)<br />HttpClient<br />ANT (for testing)<br />
  10. 10. Architecture<br />06.02.11<br />Java client API<br />Ruby client API<br />C# client API<br />Python client API<br />Http server<br />Command processor<br />Command<br />Command<br />Command<br />Command<br />Command<br />Command<br />
  11. 11. Client/Server data communication<br />06.02.11<br />Code structures<br />XML Request body<br />JAXB<br />Code structures<br />Code structures<br />XML Response body<br />
  12. 12. Command Request structure<br />06.02.11<br />URL: <host>/<command class canonical name><br />Example: http://localhost:5000/com.sample.Test<br />Body: XML data representation<br />Example:<br />
  13. 13. Sample server code<br />06.02.11<br />
  14. 14. Sample client code<br />06.02.11<br />
  15. 15. Technological expansion<br />06.02.11<br />GUI<br />libraries<br />System <br />libraries<br />SOA <br />libraries<br />Client<br />ports<br />
  16. 16. How to get the GUI<br />06.02.11<br />Find required window by attributes<br />Retrieve window handle<br />Send required messages (use JNA)<br />
  17. 17. Typical window attributes<br />06.02.11<br />Caption<br />Class<br />Index<br />
  18. 18. How to find window<br />06.02.11<br />While EnumWindows returns true<br />WinClass matches<br />No<br />Yes<br />Caption matches<br />No<br />Yes<br />Index matches<br />No<br />Yes<br />Get Handle found or null<br />
  19. 19. Objects hierarchy<br />06.02.11<br />Window<br />MovableWindow<br />Control<br />MainWindow<br />TextField<br />Button<br />List<br />DialogBox<br />CheckBox<br />RadioButton<br />ListBox<br />ComboBox<br />
  20. 20. Sample declaration<br />06.02.11<br />
  21. 21. Sample test code<br />06.02.11<br />
  22. 22. Main growth directions<br />06.02.11<br />Expand technology <br />support<br />Create wizards as<br />IDE plugins<br />Port client to<br />other languages<br />Extend standard<br />Test engines<br />
  23. 23. Questions?<br />
  24. 24. 06.02.11<br />

×