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

Why not Tapster? (Code d’Armor)

Why not Tapster? (Code d’Armor)

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 full-size slide

  2. Picture: Tapster Robotics, Inc.

    View full-size slide

  3. Picture: Freepik, Flaticon Basic License

    View full-size slide







  4. 5

    View full-size slide













  5. 7

    View full-size slide









  6. 8

    View full-size slide

  7. Pictures: Arduino, SainSmart, Bitbeam
    10

    View full-size slide









  8. Picture: Tapster Robotics, Inc.
    11

    View full-size slide

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

    View full-size slide










  10. 15

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  15. 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 full-size slide

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

    View full-size slide

  17. 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 full-size slide

  18. 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 full-size slide

  19. 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 full-size slide

  20. 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 full-size slide

  21. 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 full-size slide

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

    View full-size slide

  23. 30









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

    View full-size slide

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

    View full-size slide

  25. 33 > sources

    View full-size slide

  26. 34 > sources

    View full-size slide

  27. 35 > sources

    View full-size slide

  28. 36 > sources

    View full-size slide

  29. 37
    > sources
    > assistants: en, fr

    View full-size slide

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

    View full-size slide







  31. 40

    View full-size slide





  32. 42

    View full-size slide

  33. Picture: Freepik, Flaticon Basic License

    View full-size slide









  34. 45

    View full-size slide





















  35. 46

    View full-size slide







  36. 47

    View full-size slide











  37. 48

    View full-size slide











  38. 49

    View full-size slide

  39. Picture: Tapster Robotics, Inc.

    View full-size slide