Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why not Tapster?

Why not Tapster?

How can we automate tests?
How a robot can improve quality of softwares and mobile apps?
How to test highly secured apps?
What is the Tapster robot project?
Let me introduce this amazing project :)

Keynote made during a meetup organized by Google Developers Group Code d'Armor. Slidedeck under CC-BY.

You enjoyed reading these slides? Buy me a beer, thanks<3
(https://pylapersonne.info/buymeacoffee)

Pierre-Yves Lapersonne

May 04, 2017
Tweet

More Decks by Pierre-Yves Lapersonne

Other Decks in Technology

Transcript

  1. ✿✿✿✿ ʕ •ᴥ•ʔ/ ︻デ═一 Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.
    Version 9- 28/08/2018

    View Slide

  2. View Slide

  3. Picture: Tapster Robotics, Inc.

    View Slide

  4. Picture: Freepik, Flaticon Basic License

    View Slide







  5. 5

    View Slide

  6. View Slide













  7. 7

    View Slide









  8. 8

    View Slide

  9. View Slide

  10. Pictures: Arduino, SainSmart, Bitbeam
    10

    View Slide









  11. Picture: Tapster Robotics, Inc.
    11

    View Slide



  12. 12

    View Slide

  13. View Slide

  14. 14
    Pictures: Node.js, NodeBots, Johnny-Five, Firmata

    View Slide










  15. 15

    View Slide

  16. 16
    Source: https://github.com/hugs/tapsterbot/blob/master/software/src/bot.js

    View Slide

  17. 17
    Source: https://github.com/nodebotsau/simplebot/blob/master/examples/servos.js

    View Slide

  18. 18
    Source: https://github.com/rwaldron/johnny-five/blob/master/lib/johnny-five.js

    View Slide

  19. 19
    Sources: https://github.com/firmata/arduino/blob/master/Firmata.h https://github.com/firmata/firmata.js/blob/master/lib/firmata.js

    View Slide

  20. 20
    HTTP
    client
    Node.js Arduino Shield Servos Device
    User
    firmata
    server.js
    calibration.js
    Johnny
    Five
    UNO Shield V4
    Robot
    Framework
    web app
    Android app
    Python client

    View Slide

  21. View Slide

  22. 22
    Credits: OpenSignal, Wikipedia, Samsung, Apple

    View Slide

  23. 23
    # terminal (Appium side)
    $ appium --pre-launch --default-capabilities '{
    "udid": "UDID of your iOS device",
    "app": "pylapp.tapster.calibration.ios.RobotCalibration",
    "platformName": "iOS",
    "deviceName": "the model of your device",
    "platformVersion": "the version of the OS",
    "xcodeSigningId": "iPhone Developer (or something else you use)",
    "xcodeOrgId": "the TeamId you can get from your purchased Apple developer account"
    }'
    > ...
    # other terminal (Tapster side)
    $ node server.js &
    > ...
    $ node calibrate.js -o my_calibration_file.json
    > ...
    Source: https://medium.com/devs-foodit/iphone-automation-with-a-one-fingered-robot-a2936c840285 Credits: Appium, Node.js, Apple

    View Slide

  24. 24
    Node.js script
    (Appium client)
    Node.js script
    (bot server)
    Appium server
    XCUITest
    WebDriverAgent
    WDA Runner
    iOS app iPhone
    Tapster 2
    1 - download app
    2 - download
    runner
    3 - process
    commands

    View Slide

  25. 25
    Credits: Appium, Node.js, Google
    # terminal (Appium side)
    $ appium --pre-launch --default-capabilities '{
    "app": "path to the APK of the Android app",
    "platformName": "Android",
    "platformVersion": "the version of the OS",
    "deviceName": "a name for your device",
    "autoLaunch": "true",
    "appPackage": "pylapp.tapster.calibration.android",
    "appActivity": "pylapp.tapster.calibration.android.MainActivity"
    }'
    > ...
    # other terminal (Tapster side)
    $ node server.js &
    > ...
    $ node calibrate.js -o my_calibration_file.json
    > ...

    View Slide

  26. 26
    Node.js script
    (Appium client)
    Node.js script
    (bot server)
    Appium server
    ADB
    UI Automator
    bootstrap.jar
    Android app Android handset
    Tapster 2
    1 - download app
    2 - process
    commands

    View Slide

  27. 27
    1 - Appium: starts calibration app
    5 - Appium: gets the coordinates displayed by calibration app
    2 - Node.js: runs calibration script
    3 - Tapster bot: moves servos and tap screen of device
    4 - Calibration app: displays coordinates of touched point

    View Slide

  28. 28
    # terminal (Tapster side)
    $ node server.js --address 127.0.0.1 --port 4242 --calibration my_calibration_file.json
    > ...
    Credits: Node.js, Tapster

    View Slide

  29. View Slide

  30. 30









    See: https://github.com/pylapp/tapsterbot/wiki/04-%5C--The-Tapster-2-API

    View Slide

  31. View Slide

  32. 32
    Credits: Google, Node.js, Python, Robot Framework, Snips, Tapster, W3C

    View Slide

  33. 33 > sources

    View Slide

  34. 34 > sources

    View Slide

  35. 35 > sources

    View Slide

  36. 36 > sources

    View Slide

  37. 37
    > sources
    > assistants: en, fr

    View Slide

  38. 38
    Clients sending HTTP requests
    Node.js server with HTTP REST API
    Tapster robot
    device

    View Slide

  39. View Slide







  40. 40

    View Slide




  41. 41

    View Slide





  42. 42

    View Slide

  43. Picture: Freepik, Flaticon Basic License

    View Slide

  44. View Slide









  45. 45

    View Slide





















  46. 46

    View Slide







  47. 47

    View Slide











  48. 48

    View Slide











  49. 49

    View Slide

  50. View Slide

  51. Picture: Tapster Robotics, Inc.

    View Slide