Статус результата теста на уровне параметров с Selenium Python
Итак, у меня есть скрипт selenium/Python, который читает JSON-файл для списка URL, а затем просматривает их один за другим; и делает скриншот.
Я хочу сгенерировать отчет о результатах (HTML) в конце теста НО со следующим;
В отчете должно быть не просто сказано, что сценарий пройден / не пройден, но также сообщается результат для каждого параметра URL. Например, если 2 из 5 веб-сайтов не работали в момент тестирования, это отражается в результатах HTML. Нравится facebook.com - ОК, а www.sdadas.com - Не удалось
Вот мой код:
with open('Path to JSON file', encoding='utf-8') as s:
data = json.loads(s.read())
driver = Edge()
driver.set_page_load_timeout(10)
driver.implicitly_wait(5)
for site in data['sites']:
driver.get(data['sites'][site])
driver.get_screenshot_as_file("Screenshot path\\Image" + site + '.png')
driver.close()
Мой файл JSON
{
"sites": {
"facebook": "http://www.facebook.com",
"Wrong": "http://www.gonssgle.com"
}
}
1 ответ
Существует несколько способов проверить, не работает ли сайт. Вы можете использовать селен, чтобы проверить, существует ли сообщение об ошибке, показывающее, что сайт не работает (это может варьироваться, зависит от того, какой браузер вы используете), но я не советую вам делать это.
Я бы просто использовал Python requests
библиотека (python3) или любая подобная библиотека, чтобы перейти на каждый сайт и проверить его код ответа, например:
response = requests.get(data)
assert response.status_code == requests.codes.ok
затем приступайте к получению кода скриншота
Кроме того, для генерации отчета в формате HTML, я бы посоветовал вам запускать свой код с инфраструктурой модульных тестов Python, такой как unittest, pytest и т. д. Каждый из них должен иметь плагин html report, и вы можете настроить его при необходимости. Он будет генерировать отчет о тестировании на основе результатов вашего теста.