@Spring_Way
QA junior

Как настроить аргумент для различного значение URL при тестировании на различных окружениях?

Имеется определенный тест скрипт smoke test который запускается каждый день.
Необходими настоить различные аргументы для тестирования этого скрипта на разных окружениях
Так же на некоторых окружениях будет изменятся пароль

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.support.ui import Select


driver = webdriver.Chrome("C:\File_Path")
base_url = localUrl

driver.get(base_url)
driver.maximize_window()

username = driver.find_element_by_id("Username")
password = driver.find_element_by_id("Password")

username.send_keys("username")
password.send_keys("pass")

driver.find_element_by_name("Login").click()


ниже окружение на котором прогоняется тест каждый день

localUrl = local.com
developmentUrl = development.com
productionUrl = production.com

Как это реализовать чтобы не менять руками base_url = localUrl
  • Вопрос задан
  • 250 просмотров
Решения вопроса 1
crazyzubr
@crazyzubr
Python backend-developer
Если нужен именно файл настроек, то можно добавить такую функцию:

def load_config(path):
    config_path = os.path.join(path, 'config.json')
    if not os.path.exists(config_path):
        print('Not found config.json in {}'.format(path))
        return
    with open(config_path, 'r') as fp:
        config = json.load(fp)
    return config


Теперь можно получить объект настроек так:

import os

script_path = os.path.dirname(os.path.abspath(__file__))
config = load_config(script_path)


Если файл настроек будет найден и содержать примерно такие данные:
{
  "localUrl": "local.com",
  "developmentUrl": "development.com"
  "productionUrl": "production.com"
}


То получать параметры в скрипте можно будет таким способом:

driver.get(config['localUrl'])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы