Skip to content

Commit c50176f

Browse files
committed
[Optional]Addition of usecase related to LambdaTest APIs
1 parent 639c7c2 commit c50176f

File tree

2 files changed

+138
-0
lines changed

2 files changed

+138
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import sys
2+
3+
sys.path.append(sys.path[0] + "/../../")
4+
5+
from pageobject.locators import locators
6+
from pageobject.locators import *
7+
8+
from pageobject.helpers import helpers
9+
from pageobject.helpers import *
10+
from dotenv import load_dotenv
11+
12+
load_dotenv()
13+
14+
# user_name = os.getenv('LT_USERNAME')
15+
# api_key = os.getenv('LT_ACCESS_KEY')
16+
17+
user_name = "ankurn"
18+
api_key = "6Skayj4MMR4483tOhhdnHsJjLvozmyBI9D2ELd0pABI6m9oZut"
19+
20+
async def get_lambdatest_all_builds(session):
21+
url = f"https://{user_name}:{api_key}@api.lambdatest.com/automation/api/v1/builds?limit=2000"
22+
headers = {"accept": "application/json"}
23+
async with session.get(url, headers=headers) as response:
24+
if response.status == 200:
25+
builds_data = await response.json()
26+
return builds_data
27+
else:
28+
print("Failed to fetch builds. Status code:", response.status)
29+
print("Error Message:", await response.text())
30+
return None
31+
32+
async def get_lambdatest_all_sessions(session):
33+
url = f"https://{user_name}:{api_key}@api.lambdatest.com/automation/api/v1/sessions"
34+
headers = {"accept": "application/json"}
35+
async with session.get(url, headers=headers) as response:
36+
if response.status == 200:
37+
sessions_data = await response.json()
38+
return sessions_data
39+
else:
40+
print("Failed to fetch sessions. Status code:", response.status)
41+
print("Error Message:", await response.text())
42+
return None
43+
44+
async def main():
45+
async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=ssl.create_default_context(cafile=certifi.where()))) as session:
46+
print("********* Getting Build Details *********\n")
47+
builds_data = await get_lambdatest_all_builds(session)
48+
if builds_data:
49+
dashboard_urls = [build['dashboard_url'] for build in builds_data.get('data', [])]
50+
for dashboard_url in dashboard_urls:
51+
print("Dashboard URL:", dashboard_url)
52+
53+
print("\n********* Getting Session Details *********\n")
54+
sessions_data = await get_lambdatest_all_sessions(session)
55+
if sessions_data:
56+
session_names = [session['build_name'] for session in sessions_data.get('data', [])]
57+
for session_name in session_names:
58+
print("Session Name:", session_name)
59+
60+
start_time = time.time()
61+
asyncio.run(main())
62+
print("\nTime elapsed is " + str((time.time() - start_time)) + " seconds")
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import sys
2+
3+
sys.path.append(sys.path[0] + "/../../")
4+
5+
from pageobject.locators import locators
6+
from pageobject.locators import *
7+
8+
from pageobject.helpers import helpers
9+
from pageobject.helpers import *
10+
from dotenv import load_dotenv
11+
12+
load_dotenv()
13+
14+
# user_name = os.getenv('LT_USERNAME')
15+
# api_key = os.getenv('LT_ACCESS_KEY')
16+
17+
user_name = "ankurn"
18+
api_key = "6Skayj4MMR4483tOhhdnHsJjLvozmyBI9D2ELd0pABI6m9oZut"
19+
20+
start_time = time.time()
21+
22+
def get_lambdatest_all_builds():
23+
url = f"https://{user_name}:{api_key}@api.lambdatest.com/automation/api/v1/builds?limit=1000"
24+
headers = {"accept": "application/json"}
25+
26+
# SSL context for HTTPS request
27+
ssl_context = ssl.create_default_context(cafile=certifi.where())
28+
response = requests.get(url, headers=headers)
29+
30+
if (response.status_code == 200):
31+
builds_data = response.json()
32+
return builds_data
33+
else:
34+
print("Failed to fetch builds. Status code:", response.status_code)
35+
print("Error Message:", response.text)
36+
return None
37+
38+
def get_lambdatest_all_sessions():
39+
url = f"https://{user_name}:{api_key}@api.lambdatest.com/automation/api/v1/sessions"
40+
headers = {"accept": "application/json"}
41+
42+
# SSL context for HTTPS request
43+
ssl_context = ssl.create_default_context(cafile=certifi.where())
44+
response = requests.get(url, headers=headers)
45+
46+
if (response.status_code == 200):
47+
builds_data = response.json()
48+
return builds_data
49+
else:
50+
print("Failed to fetch builds. Status code:", response.status_code)
51+
print("Error Message:", response.text)
52+
return None
53+
54+
def main():
55+
print("********* Getting Build Details *********\n")
56+
builds_data = get_lambdatest_all_builds()
57+
if builds_data is not None:
58+
# Extract dashboard URLs from each build object
59+
dashboard_urls = [build['dashboard_url'] for build in builds_data['data']]
60+
61+
for dashboard_url in dashboard_urls:
62+
print("Dashboard URL:", dashboard_url)
63+
64+
print("\n********* Getting Session Details *********\n")
65+
sessions_data = get_lambdatest_all_sessions()
66+
# print(sessions_data)
67+
if sessions_data is not None:
68+
# Extract dashboard URLs from each build object
69+
session_name_urls = [session['build_name'] for session in sessions_data['data']]
70+
71+
# Print the respective build names
72+
for session_name_url in session_name_urls:
73+
print("Session Name:", str(session_name_url))
74+
75+
main()
76+
print("\nTime elapsed is " + str((time.time() - start_time)) + " seconds")

0 commit comments

Comments
 (0)