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.

323bb1cb39e6478e559b6e13d2fdf518?s=128

Pierre-Yves Lapersonne

May 04, 2017
Tweet

Transcript

  1. ✿✿✿✿ ʕ •ᴥ•ʔ/ ︻デ═一 Cette œuvre est mise à disposition

    selon les termes de la Licence Creative Commons Attribution 4.0 International. Version 9- 28/08/2018
  2. None
  3. Picture: Tapster Robotics, Inc.

  4. Picture: Freepik, Flaticon Basic License

  5. • • • • • • 5

  6. None
  7. • ◦ • ◦ • ◦ • ◦ • ◦

    • ◦ 7
  8. • ◦ • ◦ • ◦ • ◦ 8

  9. None
  10. Pictures: Arduino, SainSmart, Bitbeam 10

  11. • • • ◦ ◦ • • ◦ Picture: Tapster

    Robotics, Inc. 11
  12. • • 12

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

  15. • ◦ • ◦ ◦ • ◦ • ◦ 15

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

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

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

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

  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
  21. None
  22. 22 Credits: OpenSignal, Wikipedia, Samsung, Apple

  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
  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
  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 > ...
  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
  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
  28. 28 # terminal (Tapster side) $ node server.js --address 127.0.0.1

    --port 4242 --calibration my_calibration_file.json > ... Credits: Node.js, Tapster
  29. None
  30. 30 • ◦ • ◦ • ◦ • ◦ •

    See: https://github.com/pylapp/tapsterbot/wiki/04-%5C--The-Tapster-2-API
  31. None
  32. 32 Credits: Google, Node.js, Python, Robot Framework, Snips, Tapster, W3C

  33. 33 > sources

  34. 34 > sources

  35. 35 > sources

  36. 36 > sources

  37. 37 > sources > assistants: en, fr

  38. 38 Clients sending HTTP requests Node.js server with HTTP REST

    API Tapster robot device
  39. None
  40. • • • • • • 40

  41. • • • 41

  42. • • • • 42

  43. Picture: Freepik, Flaticon Basic License

  44. None
  45. • • • • • • • • 45

  46. • • • • • • • • • •

    • • • • • • • • • • 46
  47. • • • • • • 47

  48. • • • • • • • • • •

    48
  49. • • • • • • • • • •

    49
  50. None
  51. Picture: Tapster Robotics, Inc.