Перейти к содержимому

Фотография

Чтение конфиг файла для запуска тестов

selenium python config

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 6axys

6axys

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 22 марта 2017 - 08:19

Привет всем!
Товарищи требуется ваша помощь.
Сейчас начинаем писать автотесты и используем BrowserStack для запуска на разных инвайронментах.

Столкнулись с следующей проблемой, так как у нас много инвайронментов для тестирования, а все тесты должны проходить, то возник вопрос написания конфиг файла, чтобы сам тест его читал и выбирал настройки браузера.

Тест выглядит следующим образом:
 

from selenium import webdriver
import time

driver = webdriver.Remote(
command_executor='****',
desired_capabilities={'browser': 'Chrome', 'browser_version': '56.0', 'os': 'Windows', 'os_version': '10', 'resolution': '1920x1080'})


driver.get('*******')
if not "WriteDom" in driver.title:
raise Exception("*** denied!")
driver.maximize_window()
time.sleep(7)

 

 и так далее

 

Как можно видеть desired_capabilities указываются настройки конкретного браузера.

 

Помогите написать конфиг файл, чтобы тест запускался сам на всех популярных браузерах с разными операционными системами


  • 0

#2 baxatob

baxatob

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 22 марта 2017 - 11:35

В вашем случае самое простое проходить все настройки циклом for :

for record in capabilities:

    driver = webdriver.Remote(desired_capabilities=record)
    ...

capabilities можно хранить в конфиг-файле в формате JSON и считывать оттуда соответствующим образом перед запуском цикла.

 

Параллельно гуглить информацию про организацию тестовых фреймворков.


  • 0

#3 6axys

6axys

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 22 марта 2017 - 15:11

В вашем случае самое простое проходить все настройки циклом for :

for record in capabilities:

    driver = webdriver.Remote(desired_capabilities=record)
    ...

capabilities можно хранить в конфиг-файле в формате JSON и считывать оттуда соответствующим образом перед запуском цикла.

 

Параллельно гуглить информацию про организацию тестовых фреймворков.

а можно вас попросить расписать пару примеров для конфиг-файла и как это будет реализовано в тесте кода на python

Заранее огромное спасибо


  • 0

#4 baxatob

baxatob

    Опытный участник

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 22 марта 2017 - 16:21

Структура файла

[
{"browser": "1", "browser_version": "1", "os": "1", "os_version": "1", "resolution": "1"},
{"browser": "2", "browser_version": "2", "os": "2", "os_version": "2", "resolution": "2"},
{"browser": "3", "browser_version": "3", "os": "3", "os_version": "3", "resolution": "3"}
]
Чтение файла

import json

file_ = "C:\\your_file.json"

with open(file_, 'r') as f_:
    capabilities = json.loads(f_.read())

Учтите, что это базовый подход. Чтобы было от чего оттолкнуться. А так ключевой фразой моего ответа было - гуглить. Про ООП, фреймворки, паттерны и т.п. 


  • 1

#5 6axys

6axys

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 23 марта 2017 - 08:57

Структура файла

[
{"browser": "1", "browser_version": "1", "os": "1", "os_version": "1", "resolution": "1"},
{"browser": "2", "browser_version": "2", "os": "2", "os_version": "2", "resolution": "2"},
{"browser": "3", "browser_version": "3", "os": "3", "os_version": "3", "resolution": "3"}
]
Чтение файла

import json

file_ = "C:\\your_file.json"

with open(file_, 'r') as f_:
    capabilities = json.loads(f_.read())

Учтите, что это базовый подход. Чтобы было от чего оттолкнуться. А так ключевой фразой моего ответа было - гуглить. Про ООП, фреймворки, паттерны и т.п. 

 

ок) Буду еще гуглить, спасибо


  • 0

#6 6axys

6axys

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 23 марта 2017 - 09:31

Структура файла

[
{"browser": "1", "browser_version": "1", "os": "1", "os_version": "1", "resolution": "1"},
{"browser": "2", "browser_version": "2", "os": "2", "os_version": "2", "resolution": "2"},
{"browser": "3", "browser_version": "3", "os": "3", "os_version": "3", "resolution": "3"}
]
Чтение файла

import json

file_ = "C:\\your_file.json"

with open(file_, 'r') as f_:
    capabilities = json.loads(f_.read())

Учтите, что это базовый подход. Чтобы было от чего оттолкнуться. А так ключевой фразой моего ответа было - гуглить. Про ООП, фреймворки, паттерны и т.п. 

 

Что-то у меня не получается:( , выдает ошибку
 

Error
Traceback (most recent call last):
  File "C:\tests\Projects\WriteDom\WriteDomUI\VerifyLOGO.py", line 15, in setUp
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 79, in __init__
    raise WebDriverException("Desired Capabilities can't be None")
WebDriverException: Message: Desired Capabilities can't be None

  • 0

#7 6axys

6axys

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 23 марта 2017 - 10:40

С вышеуказанной проблемой разобрался, теперь другая появилась:
вот часть кода:

from selenium import webdriver
import time, unittest
import json

file_ = 'C:\\tests\\Projects\\WriteDom\\WriteDomUI\\config.json'

with open(file_,'r') as f_:
desired_capabilities = json.loads(f_.read())


class WriteDomLOGO(unittest.TestCase):

def setUp(self):
for record in desired_capabilities:
self.driver = webdriver.Remote(
desired_capabilities = record,
command_executor='http://***')

#WRITEDOM.COM - ABOUT US
def test_Logo(self):
self.driver.get('http://dev.writedom.com/about')
if not "WriteDom" in self.driver.title:
raise Exception("WriteDom denied!")
self.driver.maximize_window()
time.sleep(7)

 

В файле конфигурации у меня

[
{"browser": "Chrome", "browser_version": "57", "os": "Windows", "os_version": "10", "resolution": "1920x1080"},
{"browser": "Firefox", "browser_version": "52", "os": "Windows", "os_version": "10", "resolution": "1920x1080"}
]
 
и проблема в следующем, на удаленке запускается браузер, а сам тест не проходит, то есть по таймауту рубится сессия, если из файла конфигурации удалить одну из строк, например Firefox, то и на удаленке тест проходит и сессия не рубится. Можете подсказать почему так происходит?
Спасибо

  • 0

#8 6axys

6axys

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 28 марта 2017 - 08:16

Тема еще актуальна!


  • 0

#9 GrenRT

GrenRT

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Разгоняев Юрий


Отправлено 01 августа 2017 - 09:03

Просто предположение, может у Вас не закрывается старый браузер?


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных