Я работаю над фреймворком, используя Selenium с Python.Все, кажется, работает просто отлично, кроме отчета об испытаниях.До сих пор я использовал модель логирования, но я не уверен, достаточно ли она хороша в современной автоматизации.Я ничего не использую по атомам, чтобы написать все компоненты моей структуры, управляемой данными.Пока что мой фреймворк состоит из 3 файлов: 1 - setup.py со всеми функциями, которые я использую: setup (), teardown () click (), sendKeys () и т. Д. Внутри этой функции я также импортирую логи и каждый разя выполняю любые действия, записывающие записи в новый файл.2 - data.json - мопинг всех элементов.3 - testCase.py - все тестовые случаи.Пожалуйста, посоветуйте мне, как я могу улучшить свои рамки.Спасибо
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import time
import logging
import json
#logging when call writes to log file
logging.basicConfig(filename='tests_Run.log',level=logging.INFO, format='%(asctime)s:%(levelname)s:%(funcName)s:%(message)s')
#example of logging usage:
def findORclick_element(self, itemInDict ,elemLocator):# This function perform click
locatorStrategy = elemLocator[:2]
locator = load_value(itemInDict ,elemLocator)
ele = None
try:
if locatorStrategy == 'id': # return by ID
ele = self.driver.find_element_by_id(locator).click()
logging.info(' - - Clicked on "{}", - - with value: "{}"'.format(elemLocator, locator))
#this is how logging file output looks like:
2019-06-11 11:53:06,856:INFO:findORclick_element: - - Clicked on "id_GET_A_QUOTE_NOW", - - with value: "menu-item-188"
2019-06-11 11:53:07,098:INFO:findORclick_element: - - Clicked on "xp_PRODUCT_LIABILITY", - - with value: "/html/body/div[1]/div/div/div/div[1]/div[1]/div[1]/form/div[2]/div[1]/div[1]/ul/li[2]/div[1]/p/a"
2019-06-11 11:53:07,392:INFO:send_keys: - - - - - - - Typed in to "id_COMPANY_NAME", - - with value: "input_41_1"
2019-06-11 11:53:07,576:INFO:send_keys: - - - - - - - Typed in to "id_DOING_BUSINESS_AS", - - with value: "input_41_3"
2019-06-11 11:53:07,792:INFO:send_keys: - - - - - - - Typed in to "id_WEBSITE", - - with value: "input_41_92"
2019-06-11 11:53:07,970:INFO:send_keys: - - - - - - - Typed in to "id_MAILING_ADDRESS_LINE_1", - - with value: "input_41_104"
2019-06-11 11:53:08,070:INFO:send_keys: - - - - - - - Typed in to "id_ADDRESS_LINE_2", - - with value: "input_41_105"
2019-06-11 11:53:08,249:INFO:send_keys: - - - - - - - Typed in to "id_CITY", - - with value: "input_41_106"
2019-06-11 11:53:08,294:INFO:findORclick_element: - - Clicked on "xp_STATE_california", - - with value: "/html/body/div[1]/div/div/div/div[1]/div[1]/div[1]/form/div[3]/div[1]/div[1]/ul/li[7]/div/select/option[6]"
2019-06-11 11:53:08,431:INFO:send_keys: - - - - - - - Typed in to "id_ZIPCODE", - - with value: "input_41_109"
2019-06-11 11:53:08,554:INFO:send_keys: - - - - - - - Typed in to "id_CONTACT_NAME_FIRST", - - with value: "input_41_6_3"
2019-06-11 11:53:08,689:INFO:send_keys: - - - - - - - Typed in to "id_CONTACT_NAME_LAST", - - with value: "input_41_6_6"