SamBuCa & RobotFramework

Sylvain Fargier

03/07/23

  • Created at Nokia in 2005, still actively developed
    • Apache 2.0 licensed
    • Modular and Python based
    • Supports BDD (Behavior-Driven-Development) and DDT (Data-Driven testing)

About RobotFramework

Resolver simple motion
    [Documentation]    ensure resolver is reporting proper position
    [Tags]    hardware:8-axis-no-mechanics
    [Setup]    I prepare the test-bench for resolvers

    ${travel_resolution} =    I get "Z-axis travel resolution" setting

    When I move axis "Z" to "-10"
    And I wait for state to be "Idle"

    ${steps} =    Evaluate    -10 * ${travel_resolution}
    Then The driver "Z" position is "${steps}" steps
    And The resolver "Z" position is about "${steps}" steps
  • Using VSCode RF Language Server plugin
    • Code completion and inline documentation
    • Test linting, refactoring, formatting

Functional tests development

VSCode tests tree view

VSCode tests editor

  • The VSCode plugin also integrates:
    • A test Runner with live-reports and logs
    • A debugger (for Python and BDD)
    • Tools for linting, refactoring, formatting tests

Functional tests development

VSCode test debugging

VSCode tests live-report

MRO rfw-tester library

  • SamBuCa functional tests code-base (GitLab) :
    • Device specific resources : Grbl, MGrbl, motionLibServer ...
    • Test cases :
      • fmc_mfe : low-level characterization and PL tests
      • grbl / mgrbl : low-level embedded application tests
      • motionLib : higher level tests (using REST API)
    • Foreseen evolutions :
      • FESA level testing (adding rda-get/subscribe wrapper)
      • Siemens/Snap7 integration with bench features

MRO SamBuCa tests

Demo ?