0

I am actually working on setting up two API request to start DB data exchange job in my robot framework. The endpoint requires variety of variable like ${startTime} in epoch format, ${timePeriod}, minutes in mills or $cronExpression} to make the request workable.

start_new_exchange_trade_data.robot


Resource        ../../resources/Common.robot
Resource        ../../resources/Assertion.robot
Resource        ../000.place_diff_time_in_force_oco.robot

Test Template   Schedule New Nts Exchange Trade Data Job
Default Tags    TA


*** Variables ***

${startTime}             1645029303212 #epoch time parameter
${timePeriod}            9000000 # minutes to seconds 



*** Test Cases ***
Schedule New Nts Exchange Trade Data Job    ${startTime}  ${timePeriod}

*** Keywords ***
Schedule New Nts Exchange Trade Data Job
    [Arguments]     ${startTime}  ${timePeriod}
    When Start nts new jobs Exchange Trade Data with startime ${startTime} and time forward ${timePeriod} minutes 

start_exchange_trade_data_cron_job.robot

*** Settings ***

Library         DateTime

Resource        ../../resources/Common.robot
Resource        ../../resources/Assertion.robot

Test Template   Schedule Nts Exchange Trade Data Cron Job
Default Tags    TA

*** Variables ***

${cronExpression}        0 */30 * * * ? -> cron expression
${startTimeFromNow}      -1             -> subtract time from current time, depends unit set
${startTimeFromNowUnit}  HOURS          -> time unit
${truncatedValue}        0              -> ####
${truncatedUnit}         HOURS          -> time unit
${timePeriod}            900000         -> minutes to seconds 

*** Test Cases ***
Schedule Nts Exchange Trade Data Cron Job  ${cronExpression}  ${startTimeFromNow}  ${startTimeFromNowUnit}     ${truncatedValue}   ${truncatedUnit}    ${timePeriod}

*** Keywords ***
Schedule Nts Exchange Trade Data Cron Job
    [Arguments]     ${cronExpression}  ${startTimeFromNow}  ${startTimeFromNowUnit}     ${truncatedValue}   ${truncatedUnit}    ${timePeriod}
    When Start nts exchange trade data in ${cronExpression} minutes with ${startTimeFromNow} hour delay set by ${startTimeFromNowUnit} unit with ${truncatedValue} and ${truncatedUnit} and timeperiod ${timePeriod}

However, it would not be sustainable if each time i have to manually input the parameters above and run the test, yet the parameters are not in readable labguage...

In order to use the variable in my test suite, my ideas is to create another robot script to help and set up global variables to include those parameters in a readable format instead the default ones . But I am quite new to the robot framework structure and not so sure how to configure it... Could anyone kindly advise?

get_time_variables.robot


Library     DateTime
Library     Selenium2Library
Library     BuiltIn

*** Test Cases ***
Get Date Convert To TimeStamp
    ${date_time}  get current date   UTC   exclude_millis=true
    log to console      \n${date_time}
    ${start_Time}=   convert date    ${date_time}  epoch   exclude_millis=true
    log to console      \n${start_Time}
    set global variable  ${start_Time}

1 Answers1

0

You should define Set Start Time (or perhaps Set Start Time to be clear) under Keyword and set it as a Test suite setup or test case setup. And note that Get Current Date can be in epoch format

Example:

Resource        ../../resources/Common.robot
Resource        ../../resources/Assertion.robot
Resource        ../000.place_diff_time_in_force_oco.robot

Test Template   Schedule New Nts Exchange Trade Data Job
Default Tags    TA
Suite Setup     Set Start Time


*** Variables ***
${timePeriod}            9000000 # minutes to seconds 



*** Test Cases ***
Schedule New Nts Exchange Trade Data Job    ${START_TIME}  ${timePeriod}

*** Keywords ***
Schedule New Nts Exchange Trade Data Job
    [Arguments]     ${startTime}  ${timePeriod}
    When Start nts new jobs Exchange Trade Data with startime ${startTime} and time forward ${timePeriod} minutes 

Set Start Time
    ${date_time}  get current date   time_zone=UTC   result_format=epoch   exclude_millis=true
    log to console      \n${date_time}
    set global variable  ${START_TIME}  ${date_time}
buzzbuzz
  • 209
  • 1
  • 3