Skip to content

Instantly share code, notes, and snippets.

@vipulyadav150
Created April 7, 2023 11:24
Show Gist options
  • Save vipulyadav150/cd605496321bbcd653884da422586537 to your computer and use it in GitHub Desktop.
Save vipulyadav150/cd605496321bbcd653884da422586537 to your computer and use it in GitHub Desktop.
from locust import HttpUser, task, constant_pacing
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
class MyUser(HttpUser):
#all user will re-initiate operations after 60 sec
wait_time = constant_pacing(60)
@task
def login(self):
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options=chrome_options)
driver.maximize_window()
#add wait time of 10 secs
wait = WebDriverWait(driver, 10)
# Load the login page
start_time = time.time()
try:
driver.get("https://example.com/login")
wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="head"]')))
username = wait.until(EC.presence_of_element_located((By.NAME, "user_id")))
password = wait.until(EC.presence_of_element_located((By.NAME, "password")))
username.send_keys("myuser")
password.send_keys("mypassword")
driver.find_element(By.XPATH,"//button[contains(text(),'Login')]").click()
wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="Home"]')))
self.environment.events.request_success.fire(
request_type="login",
name="login",
response_time=(time.time() - start_time)* 1000,
response_length=driver.execute_script("return document.body.scrollHeight;"),
)
except Exception as e:
driver.quit()
self.environment.events.request_failure.fire(
request_type="login",
name="login",
response_time=(time.time() - start_time)* 1000,
response_length = 0,
exception= str(e)
)
return
# Quit the driver
driver.quit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment