def pytest_runtest_makereport(item): timestamp = datetime.now().strftime('%H-%M-%S') pytest_html = item.config.pluginmanager.getplugin('html') outcome = yield report = outcome.get_result() extra = getattr(report, 'extra', []) if report.when == 'call' or report.when == 'setup': xfail = hasattr(report, 'wasxfail') if CommonFunctions().get_star_json(key_name='TEST_TYPE') == 'WEB': feature_request = item.funcargs['request'] driver = feature_request.getfixturevalue('driver') if (report.skipped and xfail) or (report.failed and not xfail): # print('****************inside snapshot******************************') snap = timestamp + '.png' if CommonFunctions().get_star_json( key_name='REPORTING') == 'PYTEST-HTML': snapshot = driver.get_screenshot_as_base64() extra.append(pytest_html.extras.image(snapshot, '')) elif CommonFunctions().get_star_json( key_name='REPORTING') == 'ALLURE': snapshot = driver.get_screenshot_as_png() allure.attach(snapshot, name="Screenshot", attachment_type=AttachmentType.PNG) report.extra = extra
def driver(request): if CommonFunctions().get_star_json(key_name='TEST_TYPE') == 'WEB': try: scenario_name = str(request.node.originalname).replace('test_', '') print(scenario_name) # print('Feature name ==>> ' + feature.name) print('Scenario Outline name ==>> ' + request.node.originalname) key_value = CommonFunctions.get_browser_mapping(scenario_name) print('key_value ======>>>>> ' + key_value) if key_value == "CHROME": d = webdriver.Chrome( executable_path='drivers/chromedriver.exe') elif key_value == 'FIREFOX': d = webdriver.Firefox( executable_path='drivers/geckodriver.exe') elif key_value == 'IE': d = webdriver.Ie(executable_path='drivers/IEDriverServer.exe') else: print( '### Browser Type NOT mentioned correctly in star.json, defaulting execution with Chrome browser ###' ) d = webdriver.Chrome( executable_path='drivers/chromedriver.exe') d.implicitly_wait(10) # failed_before = request.session.testsfailed yield d # if request.session.testsfailed != failed_before: # test_name = request.node.name # take_screenshot(d, test_name) d.close() d.quit() except: print_stack() print('Error in creating driver instance...') elif CommonFunctions().get_star_json(key_name='TEST_TYPE') == 'MOBILE': # work in progress | Ravi Salunkhe pass elif CommonFunctions().get_star_json(key_name='TEST_TYPE') == 'API': # work in progress | Ravi Salunkhe pass elif CommonFunctions().get_star_json(key_name='TEST_TYPE') == 'DB': # work in progress | Ravi Salunkhe pass else: pass
def verify_full_name_text(self, text): text = 'Sachin' full_name_text = self.get_element_text(self.FULL_NAME_BY_XPATH, 'xpath') self.verify_text_equals(actual_text=full_name_text, expected_text=text) CommonFunctions().report_logger( step_name='verify_full_name_text', log_details='verify_full_name_text log details')
def connect_to_dbs(): # DB1 driver1 = CommonFunctions().get_star_json(key_name='DB', sub_key_name='MSSQL', sub_sub_key_name='DRIVER') # print('driver1 : ' + driver1) server1 = CommonFunctions().get_star_json(key_name='DB', sub_key_name='MSSQL', sub_sub_key_name='SERVER') # print('server1 : ' + server1) database1 = CommonFunctions().get_star_json( key_name='DB', sub_key_name='MSSQL', sub_sub_key_name='DATABASE') # print('database1 : ' + database1) trusted_connection1 = CommonFunctions().get_star_json( key_name='DB', sub_key_name='MSSQL', sub_sub_key_name='TRUSTED_CONNECTION') # print('trusted_connection1 : ' + trusted_connection1) # DB2 driver2 = CommonFunctions().get_star_json(key_name='DB', sub_key_name='MSSQL', sub_sub_key_name='DRIVER') server2 = CommonFunctions().get_star_json(key_name='DB', sub_key_name='MSSQL', sub_sub_key_name='SERVER') database2 = 'db2;' trusted_connection2 = CommonFunctions().get_star_json( key_name='DB', sub_key_name='MSSQL', sub_sub_key_name='TRUSTED_CONNECTION') print('Driver=' + driver1 + 'Server=' + server1 + 'Database=' + database1 + 'Trusted_Connection=' + trusted_connection1) print('Driver=' + driver2 + 'Server=' + server2 + 'Database=' + database2 + 'Trusted_Connection=' + trusted_connection2) # make connection string conn1 and connect to db1 global conn1, conn2 conn1 = pyodbc.connect('Driver=' + driver1 + 'Server=' + server1 + 'Database=' + database1 + 'Trusted_Connection=' + trusted_connection1) # make connection string conn1 and connect to db2 conn2 = pyodbc.connect('Driver=' + driver2 + 'Server=' + server2 + 'Database=' + database2 + 'Trusted_Connection=' + trusted_connection2) conn_list = [conn1, conn2] return conn_list print("Connection to database successfull")
def verify_header_text(self, text): header_text = self.get_element_text(self.HEADING_BY_ID, 'id') self.verify_text_equals(actual_text=header_text, expected_text=text) CommonFunctions().report_logger( step_name='verify_header_text', log_details='verify_header_text log details')
def navigate_to_app_homepage(driver): driver.get(CommonFunctions().get_star_json(key_name='WEB', sub_key_name='URLS', sub_sub_key_name='QA'))
def wrapper(*args, **kwargs): try: func(*args, **kwargs) except AssertionError: CommonFunctions().take_screenshot(driver, 'Error screenshot') raise
def navigate_to_app_homepage(driver): driver.get(CommonFunctions().get_star_json('URLS', 'QA'))