Reputation: 1
I am actually working on setting up two API requests to start a DB data exchange job in my Robot Framework.
The endpoint requires a variety of variables 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, as the parameters are not in readable language...
In order to use the variable in my test suite, my idea is to create another Robot script to help set up global variables to include those parameters in a readable format instead of the default ones. However, 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}
Upvotes: 0
Views: 992
Reputation: 219
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}
Upvotes: 0