Initial commit - Selenium automation framework
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Config Layout
|
||||
|
||||
This folder controls environment, login, user, product, and flow selection for regression automation runs.
|
||||
|
||||
## Files
|
||||
|
||||
- `runtime.json`: the single regression config file. It contains environment settings, active execution settings, users, and product-wise sections such as `IDAS` and `RTM`.
|
||||
|
||||
## Main controls
|
||||
|
||||
In `runtime.json`:
|
||||
|
||||
- `environment.active_environment`: selects `UAT` or `Eastern` for the entire run.
|
||||
- `environment.portal_environments`: keeps the Pratyay and MCO URLs paired for each environment. Pratyay uses the role-specific exchange/trading-member URL; MCO uses its own portal URL.
|
||||
- `environment.base_url` and `environment.login_urls`: legacy fallbacks used only when no active portal environment profile is configured.
|
||||
- `users.mco`: credentials for the MCO portal. These are independent of `users.exchange`, which remains the Pratyay exchange login.
|
||||
- `IDAS.matching.portals.mco.stage`: currently `login_only`; the MCO test signs in and verifies `/Dashboard/Index` independently from the Pratyay matching flow.
|
||||
- `IDAS.active_selection.product_code`: the shared product used for bidding, Pratyay bid transfer, and initiate matching. UI suffixes such as `(I)` are resolved automatically.
|
||||
- `execution.login_role`: `exchange` or `trading_member`.
|
||||
- `execution.trading_member_key`: which trading member entry from `runtime.json > users.trading_members` should be used.
|
||||
- `execution.product_family`: product section to load from `runtime.json`, for example `IDAS` or `RTM`.
|
||||
- `execution.product_code`: selected product code, for example `IDAS1`, `IDAS2`, or `IDAS3`.
|
||||
- `execution.flow_scope`: `e2e`, `bidding`, `matching`, `reports`, `order_book`, or `trade_book`.
|
||||
- `users.exchange.username` and `users.exchange.password`: exchange login.
|
||||
- `users.trading_members.<key>.username` and `users.trading_members.<key>.password`: trading-member login.
|
||||
- `users.trading_members.<key>.member_id`: trading member / ME instance value used by flows.
|
||||
- `users.trading_members.<key>.folder_upload_tm_ids`: TM folder names this trading-member login is allowed to upload. Parallel folder upload uses this mapping to choose the right login for each TM folder.
|
||||
- `IDAS`, `RTM`, and future top-level product sections: product-wise defaults, available codes, supported flows, bidding config, matching config, and future product-specific controls.
|
||||
|
||||
Regression config now lives entirely inside `runtime.json`.
|
||||
@@ -0,0 +1,439 @@
|
||||
{
|
||||
"description": "Single regression config. Use execution to choose which product/flow to run, then edit the matching product section below for product-specific settings.",
|
||||
"environment": {
|
||||
"description": "Application URL selection. active_environment keeps the Pratyay and MCO portals on the same deployment.",
|
||||
"active_environment": "UAT",
|
||||
"active_environment_options": [
|
||||
"UAT",
|
||||
"Eastern"
|
||||
],
|
||||
"portal_environments": {
|
||||
"UAT": {
|
||||
"pratyay": {
|
||||
"exchange": "https://tradinguat.pxil.in/Public/Loginadmin.aspx",
|
||||
"trading_member": "https://tradinguat.pxil.in/Public/Login.aspx"
|
||||
},
|
||||
"mco": "https://membersuat.pxil.in"
|
||||
},
|
||||
"Eastern": {
|
||||
"pratyay": {
|
||||
"exchange": "https://tradingeastern.pxil.in/Public/Loginadmin.aspx",
|
||||
"trading_member": "https://tradingeastern.pxil.in/Public/Login.aspx"
|
||||
},
|
||||
"mco": "https://memberseastern.pxil.in"
|
||||
}
|
||||
},
|
||||
"base_url": "https://tradinguat.pxil.in/Public/Login.aspx",
|
||||
"login_urls": {
|
||||
"exchange": "https://tradinguat.pxil.in/Public/Loginadmin.aspx",
|
||||
"trading_member": "https://tradinguat.pxil.in/Public/Login.aspx"
|
||||
},
|
||||
"available_base_urls": {
|
||||
"UAT": "https://tradinguat.pxil.in/Public/Login.aspx",
|
||||
"Staging": "https://tradingeastern.pxil.in/Public/Loginadmin.aspx",
|
||||
"Pre Prod": ""
|
||||
}
|
||||
},
|
||||
"execution": {
|
||||
"description": "Top-level run controls used by the regression suite.",
|
||||
"login_role": "trading_member",
|
||||
"login_role_options": [
|
||||
"exchange",
|
||||
"trading_member"
|
||||
],
|
||||
"trading_member_key": "tm_55",
|
||||
"product_family": "IDAS",
|
||||
"product_family_options": [
|
||||
"IDAS",
|
||||
"RTM"
|
||||
],
|
||||
"flow_scope": "bidding",
|
||||
"flow_scope_options": [
|
||||
"e2e",
|
||||
"bidding",
|
||||
"matching",
|
||||
"reports",
|
||||
"order_book",
|
||||
"trade_book"
|
||||
],
|
||||
"product_code_override": "",
|
||||
"product_code_override_description": "Optional. Leave blank to use the active_selection.product_code inside the chosen product section."
|
||||
},
|
||||
"timing": {
|
||||
"description": "General wait controls used across regression flows.",
|
||||
"login_captcha_wait_seconds": 10,
|
||||
"login_post_submit_wait_seconds": 10,
|
||||
"step_delay_seconds": 5
|
||||
},
|
||||
"users": {
|
||||
"description": "Regression login credentials used when execution.login_role changes.",
|
||||
"exchange": {
|
||||
"username": "Tejas",
|
||||
"password": "Pxil@123"
|
||||
},
|
||||
"mco": {
|
||||
"description": "MCO uses credentials independent of the Pratyay exchange login.",
|
||||
"username": "superadmin",
|
||||
"password": "SuperAdmin@123"
|
||||
},
|
||||
"exchange_parallel": [
|
||||
{
|
||||
"label": "Parallel Exchange 1",
|
||||
"username": "Kshipra",
|
||||
"password": "Pxil@123"
|
||||
},
|
||||
{
|
||||
"label": "Parallel Exchange 2",
|
||||
"username": "Mahimaimary",
|
||||
"password": "Pxil@123"
|
||||
}
|
||||
],
|
||||
"trading_members": {
|
||||
"tm_55": {
|
||||
"member_id": "C1024",
|
||||
"label": "Default Trading Member",
|
||||
"username": "TRDC10240001",
|
||||
"password": "Pxil@123",
|
||||
"folder_upload_tm_ids": [
|
||||
"C1024"
|
||||
]
|
||||
},
|
||||
"tm_c1026": {
|
||||
"member_id": "C1026",
|
||||
"label": "Folder Upload TM C1026",
|
||||
"username": "TRDC10260001",
|
||||
"password": "Pxil@123",
|
||||
"folder_upload_tm_ids": [
|
||||
"C1026"
|
||||
]
|
||||
},
|
||||
"tm_c1015": {
|
||||
"member_id": "C1015",
|
||||
"label": "Folder Upload TM C1015",
|
||||
"username": "TRDC10150001",
|
||||
"password": "Pxil@123",
|
||||
"folder_upload_tm_ids": [
|
||||
"C1015"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"IDAS": {
|
||||
"description": "IDAS product-wise regression config.",
|
||||
"active_selection": {
|
||||
"description": "This block controls what the bidding and matching pages select for IDAS.",
|
||||
"product_code": "IDASTEST05",
|
||||
"product_code_options": [
|
||||
"IDAS",
|
||||
"IDAS1",
|
||||
"IDAS2",
|
||||
"IDAS3",
|
||||
"IDAS4"
|
||||
],
|
||||
"trading_market": "DAM",
|
||||
"trading_markets": [
|
||||
"GDAM",
|
||||
"DAM"
|
||||
],
|
||||
"trading_market_options": [
|
||||
"ALL",
|
||||
"GDAM",
|
||||
"DAM",
|
||||
"HPDAM"
|
||||
],
|
||||
"bidding_screen": "single_and_block_bid",
|
||||
"bidding_screen_options": [
|
||||
"single_bid",
|
||||
"block_bid",
|
||||
"single_and_block_bid"
|
||||
]
|
||||
},
|
||||
"defaults": {
|
||||
"description": "Fallbacks used if active_selection is incomplete.",
|
||||
"market_code": "NATIONAL",
|
||||
"product_type": "IDAS",
|
||||
"product_code": "IDAS",
|
||||
"trading_market": "DAM",
|
||||
"bidding_screen": "single_bid"
|
||||
},
|
||||
"flows": {
|
||||
"description": "Supported IDAS regression flow groups.",
|
||||
"e2e": {
|
||||
"description": "Complete regression flow across all enabled modules."
|
||||
},
|
||||
"bidding": {
|
||||
"description": "Run only bidding flows."
|
||||
},
|
||||
"matching": {
|
||||
"description": "Run only matching flows."
|
||||
},
|
||||
"reports": {
|
||||
"description": "Run only report download flows."
|
||||
},
|
||||
"order_book": {
|
||||
"description": "Run only order book flows."
|
||||
},
|
||||
"trade_book": {
|
||||
"description": "Run only trade book flows."
|
||||
}
|
||||
},
|
||||
"setup": {
|
||||
"description": "Product-level setup controls.",
|
||||
"session": {
|
||||
"enabled": true
|
||||
},
|
||||
"token": {
|
||||
"enabled": true,
|
||||
"market_code": "NATIONAL",
|
||||
"product_type": "IDAS"
|
||||
}
|
||||
},
|
||||
"bidding": {
|
||||
"description": "All IDAS bidding-page related inputs and waits.",
|
||||
"entry_method": {
|
||||
"bid_entry_method": "folder_upload",
|
||||
"available_bid_entry_methods": [
|
||||
"excel_grid",
|
||||
"json_grid",
|
||||
"file_upload",
|
||||
"folder_upload"
|
||||
],
|
||||
"file_upload_mode": "batch",
|
||||
"folder_upload_execution_mode": "sequential",
|
||||
"folder_upload_execution_mode_options": [
|
||||
"sequential",
|
||||
"parallel"
|
||||
],
|
||||
"auto_submit": true,
|
||||
"block_bid": {
|
||||
"block_upload_method": "folder_upload",
|
||||
"block_upload_method_options": [
|
||||
"file_upload",
|
||||
"folder_upload"
|
||||
],
|
||||
"product_code": "IDASTEST05",
|
||||
"product_container_id": "s2id_ddlproduct3",
|
||||
"segment_container_id": "s2id_ddlSegment3",
|
||||
"tm_container_id": "s2id_ddlTMID3",
|
||||
"block_upload_success_timeout_seconds": 5400,
|
||||
"block_upload_success_poll_seconds": 2,
|
||||
"block_upload_progress_log_interval_seconds": 60
|
||||
}
|
||||
},
|
||||
"data_paths": {
|
||||
"input_root": "data/idas/bidding/single_bid",
|
||||
"json_input_root": "data/idas/bidding/json",
|
||||
"upload_input_root": "data/idas/bidding/uploads",
|
||||
"folder_upload_root": "data/idas/bidding/folder_uploads",
|
||||
"folder_upload_sides": [
|
||||
"BUYSELL"
|
||||
]
|
||||
},
|
||||
"selection": {
|
||||
"active_entry_key": "gujc10010001"
|
||||
},
|
||||
"timing": {
|
||||
"upload_to_submit_delay_seconds": 2,
|
||||
"submit_to_fetch_delay_seconds": 2,
|
||||
"folder_upload_progress_timeout_seconds": 5400,
|
||||
"folder_upload_progress_poll_seconds": 2,
|
||||
"folder_upload_progress_log_interval_seconds": 60,
|
||||
"folder_upload_continue_when_last_file_complete": true,
|
||||
"folder_upload_keep_alive_interval_seconds": 30,
|
||||
"folder_upload_max_parallel_sessions": 2,
|
||||
"folder_upload_parallel_login_stagger_seconds": 20,
|
||||
"folder_upload_parallel_captcha_wait_seconds": 60,
|
||||
"folder_upload_fetch_timeout_seconds": 30,
|
||||
"bidding_screen_ready_wait_seconds": 15,
|
||||
"product_to_tm_delay_seconds": 15,
|
||||
"tm_to_tac_delay_seconds": 3,
|
||||
"tm_timeout_seconds": 30,
|
||||
"tm_attempts": 3,
|
||||
"tac_timeout_seconds": 15,
|
||||
"tac_attempts": 2
|
||||
},
|
||||
"excel_layout": {
|
||||
"column_start": "B",
|
||||
"market_price_rows": {
|
||||
"GDAM": 2,
|
||||
"DAM": 3,
|
||||
"HPDAM": 4
|
||||
},
|
||||
"common_data_start_row": 6
|
||||
},
|
||||
"entries": [
|
||||
{
|
||||
"key": "gujc10010001",
|
||||
"tm_id": "C1001",
|
||||
"tac_id": "GUJC10010001",
|
||||
"excel_file": "GUJC10010001.xlsx",
|
||||
"json_file": "GUJC10010001.json",
|
||||
"upload_file": "GUJC10010001.xlsx",
|
||||
"sheet_name": "Sheet1",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "chhc10110001",
|
||||
"tm_id": "C1011",
|
||||
"tac_id": "CHHC10110001",
|
||||
"excel_file": "CHHC10110001.xlsx",
|
||||
"json_file": "CHHC10110001.json",
|
||||
"upload_file": "CHHC10110001.xlsx",
|
||||
"sheet_name": "Sheet1",
|
||||
"enabled": false
|
||||
},
|
||||
{
|
||||
"key": "apts10240001",
|
||||
"tm_id": "S1024",
|
||||
"tac_id": "APTS10240001",
|
||||
"excel_file": "APTS10240001.xlsx",
|
||||
"json_file": "APTS10240001.json",
|
||||
"upload_file": "APTS10240001.xlsx",
|
||||
"sheet_name": "Sheet1",
|
||||
"enabled": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"matching": {
|
||||
"description": "IDAS order matching split between Pratyay preparation and the separate MCO market-coupling portal.",
|
||||
"portals": {
|
||||
"pratyay": {
|
||||
"enabled": true,
|
||||
"description": "Existing exchange-side provisional matching and flow-request preparation."
|
||||
},
|
||||
"mco": {
|
||||
"enabled": true,
|
||||
"stage": "login_only",
|
||||
"description": "MCO login and dashboard verification are active. Matching steps will be added as their pages are captured."
|
||||
}
|
||||
},
|
||||
"matching_product_code": "",
|
||||
"matching_product_code_description": "Legacy fallback only. Bid transfer and initiate matching use IDAS.active_selection.product_code.",
|
||||
"matching_type": "Provisional Match",
|
||||
"source_types": [
|
||||
"Green",
|
||||
"Conventional",
|
||||
"HPDAM"
|
||||
],
|
||||
"bid_transfer_markets": [
|
||||
"GDAM",
|
||||
"DAM",
|
||||
"HPDAM"
|
||||
],
|
||||
"accepted_bid_transfer_statuses": [
|
||||
"ACCEPTED",
|
||||
"PARTIALLY_ACCEPTED",
|
||||
"NO_BIDS"
|
||||
],
|
||||
"initiation_mode": "provisional_match",
|
||||
"timing": {
|
||||
"bid_transfer_timeout_seconds": 30,
|
||||
"check_status_interval_seconds": 2,
|
||||
"check_status_timeout_seconds": 120,
|
||||
"flow_request_success_timeout_seconds": 30,
|
||||
"download_timeout_seconds": 60
|
||||
},
|
||||
"downloads": {
|
||||
"download_folder_name": "matching_files"
|
||||
}
|
||||
},
|
||||
"available_product_codes": [
|
||||
"IDAS",
|
||||
"IDAS1",
|
||||
"IDAS2",
|
||||
"IDAS3",
|
||||
"IDAS4"
|
||||
],
|
||||
"available_trading_markets": [
|
||||
"GDAM",
|
||||
"DAM",
|
||||
"HPDAM"
|
||||
],
|
||||
"available_bidding_screens": [
|
||||
"single_bid",
|
||||
"block_bid",
|
||||
"single_and_block_bid"
|
||||
]
|
||||
},
|
||||
"RTM": {
|
||||
"description": "Placeholder section for RTM product-wise regression config.",
|
||||
"active_selection": {
|
||||
"description": "Fill this section when RTM regression flows are added.",
|
||||
"product_code": "RTM",
|
||||
"product_code_options": [
|
||||
"RTM"
|
||||
],
|
||||
"trading_market": "",
|
||||
"trading_market_options": [],
|
||||
"bidding_screen": "single_bid",
|
||||
"bidding_screen_options": [
|
||||
"single_bid",
|
||||
"block_bid"
|
||||
]
|
||||
},
|
||||
"defaults": {
|
||||
"description": "Fallbacks used if active_selection is incomplete.",
|
||||
"market_code": "NATIONAL",
|
||||
"product_type": "RTM",
|
||||
"product_code": "RTM",
|
||||
"trading_market": "",
|
||||
"bidding_screen": "single_bid"
|
||||
},
|
||||
"flows": {
|
||||
"description": "Supported RTM regression flow groups.",
|
||||
"e2e": {
|
||||
"description": "Complete regression flow across all enabled modules."
|
||||
},
|
||||
"bidding": {
|
||||
"description": "Run only bidding flows."
|
||||
},
|
||||
"matching": {
|
||||
"description": "Run only matching flows."
|
||||
},
|
||||
"reports": {
|
||||
"description": "Run only report download flows."
|
||||
},
|
||||
"order_book": {
|
||||
"description": "Run only order book flows."
|
||||
},
|
||||
"trade_book": {
|
||||
"description": "Run only trade book flows."
|
||||
}
|
||||
},
|
||||
"setup": {
|
||||
"description": "Product-level setup controls.",
|
||||
"session": {
|
||||
"enabled": false
|
||||
},
|
||||
"token": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"bidding": {
|
||||
"description": "RTM bidding config placeholder.",
|
||||
"entry_method": {},
|
||||
"data_paths": {},
|
||||
"selection": {},
|
||||
"timing": {},
|
||||
"excel_layout": {},
|
||||
"entries": []
|
||||
},
|
||||
"matching": {
|
||||
"description": "RTM matching config placeholder.",
|
||||
"matching_product_code": "",
|
||||
"matching_type": "",
|
||||
"source_types": [],
|
||||
"initiation_mode": "",
|
||||
"timing": {},
|
||||
"downloads": {}
|
||||
},
|
||||
"available_product_codes": [
|
||||
"RTM"
|
||||
],
|
||||
"available_trading_markets": [],
|
||||
"available_bidding_screens": [
|
||||
"single_bid",
|
||||
"block_bid"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user