<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Mastering Robot Framework: Advanced Concepts for Scalable Test Automation in Software - General</title>
    <link>https://community.hpe.com/t5/software-general/mastering-robot-framework-advanced-concepts-for-scalable-test/m-p/7240977#M1319</link>
    <description>&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;In our previous blog&amp;nbsp;&lt;A href="https://community.hpe.com/t5/software-general/getting-started-with-robot-framework-a-beginner-s-guide-to-test/td-p/7240814" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Getting Started with Robot Framework: A Beginner's Guide to Test Automation&lt;/SPAN&gt;&lt;/A&gt;, we explored foundational aspects of Robot Framework—setting up your environment, writing basic web and API tests, using variables, creating reusable keywords, and organizing your test project structure.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;This post builds on those fundamentals. If you're comfortable with writing simple test cases and are now looking to scale, integrate with CI/CD pipelines, handle complex data, or work with APIs, SSH, and custom Python libraries—this one’s for you.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Let’s dive into some advanced capabilities that make Robot Framework a powerful ally in enterprise-grade test automation.&lt;/FONT&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Advanced Test Data Handling&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_file-folder" title=":file_folder:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Working with CSV and JSON&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Keeping data separate from logic increases test flexibility and maintainability.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;CSV Example with CSVLibrary&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Install the library:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;pip install robotframework-csvlibrary&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    CSVLibrary

*** Test Cases ***
Data Driven Test
    @{list}=    read csv file to list    test_data.csv
    FOR    ${values}  IN  @{list}
        Log    Username: ${values[0]}, Password: ${values[1]}
        # Use credentials in test steps
    END&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;JSON Handling&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    JSONLibrary

*** Test Cases ***
Read JSON File
    ${data}=    Load JSON From File    test_data.json
    Log    ${data}[\"username\"]&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;LI-EMOJI id="lia_pushpin" title=":pushpin:"&gt;&lt;/LI-EMOJI&gt; JSONLibrary official documentation: &lt;A href="https://robotframework-thailand.github.io/robotframework-jsonlibrary/JSONLibrary.html#library-documentation-top" target="_blank" rel="noopener"&gt;JSONLibrary&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Handling Dynamic Elements (Selenium)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Dynamic elements can appear with delays due to asynchronous loading. Using explicit waits ensures that tests interact with elements only when they are ready.&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;Wait Until Element Is Visible    xpath=//div[@id='status']    timeout=10s

Element Should Contain    xpath=//div[@id='status']    Success&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Use Run Keyword And Ignore Error or Run Keyword And Continue On Failure when needed to prevent abrupt test failures.&lt;/FONT&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Error Handling and Reporting&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Unexpected failures shouldn't stop test execution. Robot Framework provides ways to handle errors gracefully and generate meaningful reports.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Maximize test reliability with built-in keywords:&lt;/FONT&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Run Keyword And Continue On Failure&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Run Keyword And Expect Error&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Should Contain&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Fatal Error&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Capture Page Screenshot&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI-CODE lang="python"&gt;*** Test Cases ***
Login Test
    [Teardown]    Capture Page Screenshot
    Run Keyword And Continue On Failure    Element Should Be Visible    id=login-button&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;Use different log levels for clarity:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;Log    Debug info    level=DEBUG
Log    Warning       level=WARN&lt;/LI-CODE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Screenshots on Failure&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;To debug failures more effectively, capturing screenshots provides visual evidence of what went wrong.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;A must for UI automation:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;*** Test Cases ***
Search Test
    [Teardown]    Capture Page Screenshot&lt;/LI-CODE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;CI/CD Integration (GitLab &amp;amp; GitHub)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Seamless integration of Robot Framework into CI/CD pipelines ensures automated test execution on every code change, improving software quality and delivery speed.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;GitLab Example (.gitlab-ci.yml)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;robot_tests:
  image: python:3.9
  before_script:
    - python -m venv venv
    - source venv/bin/activate  # For Linux/macOS
    - pip install -r requirements.txt
  script:
    - robot --outputdir results tests/
  artifacts:
    paths:
      - results/&lt;/LI-CODE&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;GitHub Actions Workflow&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;name: Robot Framework Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python
        uses: actions/setup-python@v3
        with:
          python-version: '3.x'
      - name: Create and Activate Virtual Environment
        run: |
          python -m venv venv
          source venv/bin/activate
      - name: Install Dependencies
        run: pip install -r requirements.txt
      - name: Execute Tests
        run: robot --outputdir results tests/
      - name: Upload Test Results
        uses: actions/upload-artifact@v3
        with:
          name: robot-reports
          path: results/&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Using Robot Framework with Jenkins&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Install the Robot Framework Plugin in Jenkins.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Add a build step:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;robot --outputdir reports tests/&lt;/LI-CODE&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Use the Post-build Actions to publish test results.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;LI-EMOJI id="lia_link" title=":link:"&gt;&lt;/LI-EMOJI&gt; Learn more about Jenkins integration: &lt;A href="https://plugins.jenkins.io/robot/" target="_blank" rel="noopener"&gt;Robot Framework Jenkins Plugin&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Advanced Features in Robot Framework&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_wrench" title=":wrench:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Custom Libraries &amp;amp; Keywords&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework allows you to extend its capabilities using custom Python libraries, enabling more complex test logic and interactions.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Create your own Python functions and use them as Robot keywords.&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;# Example: my_custom_library.py


class MyCustomLibrary:
    def custom_keyword(self, message):
        print(f"Custom Keyword Executed: {message}")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;&lt;EM&gt;Using the library in Robot Framework:&lt;/EM&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    my_custom_library.py

*** Test Cases ***
Run Custom Keyword
    Custom Keyword    Hello, Robot Framework!&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;Parallel Test Execution with Pabot&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Pabot allows you to execute your Robot Framework tests in parallel, reducing the overall execution time significantly.&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;pip install robotframework-pabot
pabot --processes 4 --outputdir results tests/&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;LI-EMOJI id="lia_open-book" title=":open_book:"&gt;&lt;/LI-EMOJI&gt; More on Pabot: &lt;A href="https://pabot.org/" target="_blank" rel="noopener"&gt;Pabot Documentation&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_locked-with-key" title=":locked_with_key:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Advanced API Testing with Authorization&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework provides powerful support for API testing, especially when working with RESTful services and token-based authentication.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Handling token authentication and making API calls:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    RequestsLibrary


*** Variables ***
${BASE_URL}        https://api.example.com
${AUTH_PAYLOAD}    {"username": "test", "password": "pass"}


*** Test Cases ***
Get Auth Token
    Create Session    auth    ${BASE_URL}
    ${response}=    POST On Session    auth    /auth    json=${AUTH_PAYLOAD}
    ${token}=       Set Variable    ${response.json()}[token]
    Set Global Variable    ${token}


GET Request Example
    ${response}=    GET On Session    auth    /users    headers=Authorization=Bearer ${token}
    Log    ${response.json()}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;LI-EMOJI id="lia_link" title=":link:"&gt;&lt;/LI-EMOJI&gt; Restful Example: &lt;A href="https://docs.robotframework.org/docs/examples/restfulbooker" target="_blank" rel="noopener"&gt;Robot Framework Requests Library Example&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_laptop-computer" title=":laptop_computer:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Accessing VMs via SSH&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework allows seamless interaction with remote systems over SSH, enabling you to automate tasks like server setup, configuration, or execution of commands.&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;pip install robotframework-sshlibrary&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;&lt;EM&gt;Test file using SSH Library&lt;/EM&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library  SSHLibrary


*** Variables ***
${HOST}        192.168.1.100
${USER}        testuser
${PASSWORD}    testpassword
${COMMAND}     uptime


*** Test Cases ***
Connect to Server and Run Command
    Open Connection    ${HOST}
    Login              ${USER}    ${PASSWORD}
    ${output}=         Execute Command    {COMMAND}
    Log                ${output}
    Close Connection&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;LI-EMOJI id="lia_link" title=":link:"&gt;&lt;/LI-EMOJI&gt; More on SSH Library: &lt;A href="https://marketsquare.github.io/SSHLibrary/SSHLibrary.html" target="_blank" rel="noopener"&gt;SSHLibrary Docs&lt;/A&gt;, &lt;A href="https://github.com/MarketSquare/SSHLibrary" target="_blank" rel="noopener"&gt;SSHLibrary GitHub&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_bar-chart" title=":bar_chart:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Excel Data Handling&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework can easily handle Excel files using the RPA.Excel.Files library. It allows reading data as tables, looping through rows, and using &lt;STRONG&gt;&lt;FONT face="courier new,courier" size="3"&gt;TRY/EXCEPT&lt;/FONT&gt;&lt;/STRONG&gt; for error handling. This makes data-driven testing with spreadsheets both simple and reliable.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;Install required library:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;pip install rpaframework&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;&lt;EM&gt;Test file handling excel data:&lt;/EM&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    RPA.Excel.Files


*** Test Cases ***
Read Excel
    TRY
        Open Workbook    data.xlsx
        ${rows}=    Read Worksheet As Table    header=True
        FOR    ${row}    IN    @{rows}
            Log    ${row}[\"username\"]
        END
        Close Workbook
    EXCEPT  AS  ${ERROR}
        Log To Console    Error: ${ERROR}
    END&lt;/LI-CODE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework is far more than just a beginner-friendly automation tool. With powerful extensibility, data integration, parallel execution, and seamless CI/CD compatibility, it’s an ideal choice for teams aiming to scale test automation quickly and reliably.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;While this blog explores several advanced concepts—from custom libraries and data-driven testing to CI/CD integration and SSH command execution—Robot Framework offers even more flexibility through its ecosystem of libraries and plugins. Depending on your project needs, you can extend it further for performance testing, database validations, UI automation enhancements, and integrations with other tools.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Think of this blog as a strong foundation for exploring what's possible with Robot Framework. As your automation grows, so can the capabilities of the framework.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Are you using advanced features of Robot Framework in your projects? Share your experiences and tips in the comments!&lt;/FONT&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;References&lt;/FONT&gt; &lt;/STRONG&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://robotframework.org/" target="_blank" rel="noopener"&gt;Robot Framework Official&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://robotframework.org/SeleniumLibrary/" target="_blank" rel="noopener"&gt;SeleniumLibrary Docs&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://github.com/MarketSquare/robotframework-requests" target="_blank" rel="noopener"&gt;RequestsLibrary GitHub&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://github.com/AmitP1212/robot_framework_sample_example" target="_blank" rel="noopener"&gt;Robot Framework Sample Example&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://community.hpe.com/t5/software-general/getting-started-with-robot-framework-a-beginner-s-guide-to-test/td-p/7240814" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Getting Started with Robot Framework: A Beginner's Guide to Test Automation&lt;/SPAN&gt; &lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Amit Pisal&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Hewlett Packard Enterprise (PS-GCC)&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 24 Apr 2025 07:39:48 GMT</pubDate>
    <dc:creator>Amit_Pisal</dc:creator>
    <dc:date>2025-04-24T07:39:48Z</dc:date>
    <item>
      <title>Mastering Robot Framework: Advanced Concepts for Scalable Test Automation</title>
      <link>https://community.hpe.com/t5/software-general/mastering-robot-framework-advanced-concepts-for-scalable-test/m-p/7240977#M1319</link>
      <description>&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;In our previous blog&amp;nbsp;&lt;A href="https://community.hpe.com/t5/software-general/getting-started-with-robot-framework-a-beginner-s-guide-to-test/td-p/7240814" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Getting Started with Robot Framework: A Beginner's Guide to Test Automation&lt;/SPAN&gt;&lt;/A&gt;, we explored foundational aspects of Robot Framework—setting up your environment, writing basic web and API tests, using variables, creating reusable keywords, and organizing your test project structure.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;This post builds on those fundamentals. If you're comfortable with writing simple test cases and are now looking to scale, integrate with CI/CD pipelines, handle complex data, or work with APIs, SSH, and custom Python libraries—this one’s for you.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Let’s dive into some advanced capabilities that make Robot Framework a powerful ally in enterprise-grade test automation.&lt;/FONT&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Advanced Test Data Handling&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_file-folder" title=":file_folder:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Working with CSV and JSON&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Keeping data separate from logic increases test flexibility and maintainability.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;CSV Example with CSVLibrary&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Install the library:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;pip install robotframework-csvlibrary&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    CSVLibrary

*** Test Cases ***
Data Driven Test
    @{list}=    read csv file to list    test_data.csv
    FOR    ${values}  IN  @{list}
        Log    Username: ${values[0]}, Password: ${values[1]}
        # Use credentials in test steps
    END&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;JSON Handling&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    JSONLibrary

*** Test Cases ***
Read JSON File
    ${data}=    Load JSON From File    test_data.json
    Log    ${data}[\"username\"]&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;LI-EMOJI id="lia_pushpin" title=":pushpin:"&gt;&lt;/LI-EMOJI&gt; JSONLibrary official documentation: &lt;A href="https://robotframework-thailand.github.io/robotframework-jsonlibrary/JSONLibrary.html#library-documentation-top" target="_blank" rel="noopener"&gt;JSONLibrary&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Handling Dynamic Elements (Selenium)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Dynamic elements can appear with delays due to asynchronous loading. Using explicit waits ensures that tests interact with elements only when they are ready.&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;Wait Until Element Is Visible    xpath=//div[@id='status']    timeout=10s

Element Should Contain    xpath=//div[@id='status']    Success&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Use Run Keyword And Ignore Error or Run Keyword And Continue On Failure when needed to prevent abrupt test failures.&lt;/FONT&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Error Handling and Reporting&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Unexpected failures shouldn't stop test execution. Robot Framework provides ways to handle errors gracefully and generate meaningful reports.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Maximize test reliability with built-in keywords:&lt;/FONT&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Run Keyword And Continue On Failure&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Run Keyword And Expect Error&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Should Contain&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Fatal Error&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT face="courier new,courier"&gt;Capture Page Screenshot&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI-CODE lang="python"&gt;*** Test Cases ***
Login Test
    [Teardown]    Capture Page Screenshot
    Run Keyword And Continue On Failure    Element Should Be Visible    id=login-button&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;Use different log levels for clarity:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;Log    Debug info    level=DEBUG
Log    Warning       level=WARN&lt;/LI-CODE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Screenshots on Failure&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;To debug failures more effectively, capturing screenshots provides visual evidence of what went wrong.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;A must for UI automation:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;*** Test Cases ***
Search Test
    [Teardown]    Capture Page Screenshot&lt;/LI-CODE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;CI/CD Integration (GitLab &amp;amp; GitHub)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Seamless integration of Robot Framework into CI/CD pipelines ensures automated test execution on every code change, improving software quality and delivery speed.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;GitLab Example (.gitlab-ci.yml)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;robot_tests:
  image: python:3.9
  before_script:
    - python -m venv venv
    - source venv/bin/activate  # For Linux/macOS
    - pip install -r requirements.txt
  script:
    - robot --outputdir results tests/
  artifacts:
    paths:
      - results/&lt;/LI-CODE&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;GitHub Actions Workflow&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;name: Robot Framework Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python
        uses: actions/setup-python@v3
        with:
          python-version: '3.x'
      - name: Create and Activate Virtual Environment
        run: |
          python -m venv venv
          source venv/bin/activate
      - name: Install Dependencies
        run: pip install -r requirements.txt
      - name: Execute Tests
        run: robot --outputdir results tests/
      - name: Upload Test Results
        uses: actions/upload-artifact@v3
        with:
          name: robot-reports
          path: results/&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Using Robot Framework with Jenkins&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Install the Robot Framework Plugin in Jenkins.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Add a build step:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;robot --outputdir reports tests/&lt;/LI-CODE&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Use the Post-build Actions to publish test results.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;LI-EMOJI id="lia_link" title=":link:"&gt;&lt;/LI-EMOJI&gt; Learn more about Jenkins integration: &lt;A href="https://plugins.jenkins.io/robot/" target="_blank" rel="noopener"&gt;Robot Framework Jenkins Plugin&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Advanced Features in Robot Framework&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_wrench" title=":wrench:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Custom Libraries &amp;amp; Keywords&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework allows you to extend its capabilities using custom Python libraries, enabling more complex test logic and interactions.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Create your own Python functions and use them as Robot keywords.&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;# Example: my_custom_library.py


class MyCustomLibrary:
    def custom_keyword(self, message):
        print(f"Custom Keyword Executed: {message}")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;&lt;EM&gt;Using the library in Robot Framework:&lt;/EM&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    my_custom_library.py

*** Test Cases ***
Run Custom Keyword
    Custom Keyword    Hello, Robot Framework!&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;Parallel Test Execution with Pabot&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Pabot allows you to execute your Robot Framework tests in parallel, reducing the overall execution time significantly.&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;pip install robotframework-pabot
pabot --processes 4 --outputdir results tests/&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;LI-EMOJI id="lia_open-book" title=":open_book:"&gt;&lt;/LI-EMOJI&gt; More on Pabot: &lt;A href="https://pabot.org/" target="_blank" rel="noopener"&gt;Pabot Documentation&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_locked-with-key" title=":locked_with_key:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Advanced API Testing with Authorization&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework provides powerful support for API testing, especially when working with RESTful services and token-based authentication.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Handling token authentication and making API calls:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    RequestsLibrary


*** Variables ***
${BASE_URL}        https://api.example.com
${AUTH_PAYLOAD}    {"username": "test", "password": "pass"}


*** Test Cases ***
Get Auth Token
    Create Session    auth    ${BASE_URL}
    ${response}=    POST On Session    auth    /auth    json=${AUTH_PAYLOAD}
    ${token}=       Set Variable    ${response.json()}[token]
    Set Global Variable    ${token}


GET Request Example
    ${response}=    GET On Session    auth    /users    headers=Authorization=Bearer ${token}
    Log    ${response.json()}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;LI-EMOJI id="lia_link" title=":link:"&gt;&lt;/LI-EMOJI&gt; Restful Example: &lt;A href="https://docs.robotframework.org/docs/examples/restfulbooker" target="_blank" rel="noopener"&gt;Robot Framework Requests Library Example&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_laptop-computer" title=":laptop_computer:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Accessing VMs via SSH&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework allows seamless interaction with remote systems over SSH, enabling you to automate tasks like server setup, configuration, or execution of commands.&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;pip install robotframework-sshlibrary&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;&lt;EM&gt;Test file using SSH Library&lt;/EM&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library  SSHLibrary


*** Variables ***
${HOST}        192.168.1.100
${USER}        testuser
${PASSWORD}    testpassword
${COMMAND}     uptime


*** Test Cases ***
Connect to Server and Run Command
    Open Connection    ${HOST}
    Login              ${USER}    ${PASSWORD}
    ${output}=         Execute Command    {COMMAND}
    Log                ${output}
    Close Connection&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="3"&gt;&lt;LI-EMOJI id="lia_link" title=":link:"&gt;&lt;/LI-EMOJI&gt; More on SSH Library: &lt;A href="https://marketsquare.github.io/SSHLibrary/SSHLibrary.html" target="_blank" rel="noopener"&gt;SSHLibrary Docs&lt;/A&gt;, &lt;A href="https://github.com/MarketSquare/SSHLibrary" target="_blank" rel="noopener"&gt;SSHLibrary GitHub&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&lt;LI-EMOJI id="lia_bar-chart" title=":bar_chart:"&gt;&lt;/LI-EMOJI&gt;&lt;/STRONG&gt;&lt;STRONG&gt; Excel Data Handling&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework can easily handle Excel files using the RPA.Excel.Files library. It allows reading data as tables, looping through rows, and using &lt;STRONG&gt;&lt;FONT face="courier new,courier" size="3"&gt;TRY/EXCEPT&lt;/FONT&gt;&lt;/STRONG&gt; for error handling. This makes data-driven testing with spreadsheets both simple and reliable.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="4"&gt;Install required library:&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;pip install rpaframework&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="3"&gt;&lt;EM&gt;Test file handling excel data:&lt;/EM&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI-CODE lang="python"&gt;*** Settings ***
Library    RPA.Excel.Files


*** Test Cases ***
Read Excel
    TRY
        Open Workbook    data.xlsx
        ${rows}=    Read Worksheet As Table    header=True
        FOR    ${row}    IN    @{rows}
            Log    ${row}[\"username\"]
        END
        Close Workbook
    EXCEPT  AS  ${ERROR}
        Log To Console    Error: ${ERROR}
    END&lt;/LI-CODE&gt;&lt;HR /&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Conclusion&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Robot Framework is far more than just a beginner-friendly automation tool. With powerful extensibility, data integration, parallel execution, and seamless CI/CD compatibility, it’s an ideal choice for teams aiming to scale test automation quickly and reliably.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;While this blog explores several advanced concepts—from custom libraries and data-driven testing to CI/CD integration and SSH command execution—Robot Framework offers even more flexibility through its ecosystem of libraries and plugins. Depending on your project needs, you can extend it further for performance testing, database validations, UI automation enhancements, and integrations with other tools.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Think of this blog as a strong foundation for exploring what's possible with Robot Framework. As your automation grows, so can the capabilities of the framework.&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;Are you using advanced features of Robot Framework in your projects? Share your experiences and tips in the comments!&lt;/FONT&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;References&lt;/FONT&gt; &lt;/STRONG&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://robotframework.org/" target="_blank" rel="noopener"&gt;Robot Framework Official&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://robotframework.org/SeleniumLibrary/" target="_blank" rel="noopener"&gt;SeleniumLibrary Docs&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://github.com/MarketSquare/robotframework-requests" target="_blank" rel="noopener"&gt;RequestsLibrary GitHub&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://github.com/AmitP1212/robot_framework_sample_example" target="_blank" rel="noopener"&gt;Robot Framework Sample Example&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class="lia-align-justify"&gt;&lt;FONT size="4"&gt;&lt;A href="https://community.hpe.com/t5/software-general/getting-started-with-robot-framework-a-beginner-s-guide-to-test/td-p/7240814" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Getting Started with Robot Framework: A Beginner's Guide to Test Automation&lt;/SPAN&gt; &lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;HR /&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Amit Pisal&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Hewlett Packard Enterprise (PS-GCC)&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Apr 2025 07:39:48 GMT</pubDate>
      <guid>https://community.hpe.com/t5/software-general/mastering-robot-framework-advanced-concepts-for-scalable-test/m-p/7240977#M1319</guid>
      <dc:creator>Amit_Pisal</dc:creator>
      <dc:date>2025-04-24T07:39:48Z</dc:date>
    </item>
  </channel>
</rss>

