杭州pc网站开发公司有哪些游戏开发大亨高分攻略
一、conftest是什么?
conftest是pytest进阶中的高级应用,最近正好用到这一块儿,研究之后,向大家分享该高级应用。
二、使用步骤
1.conftest代码块
 以全局性使用driver为主,只启动一次浏览器:
@pytest.fixture(scope='session')  # 以此实现多个用例,只启动一次浏览器
 def browser():
     global driver
     driver = None  # 需要给一个初始化的值
     '''定义全局driver参数'''
     browser_name = 'chrome'
     if driver is None:
         if browser_name == 'chrome':
             # driver = webdriver.Chrome(executable_path="../driver/chromedriver.exe")
             driver = webdriver.Chrome()
             driver.maximize_window()
         elif browser_name == 'firefox':
             driver = webdriver.Firefox()
         elif browser_name == 'ie':
             driver = webdriver.Ie()
         else:
             log.error('传入的浏览器名称有误')
     driver.implicitly_wait(10)
     log.debug(f"正在启动浏览器:{browser_name}")
     yield driver
     log.debug("正在关闭浏览器")
     time.sleep(5)
     driver.close()
     return driver
2.使用方法
 在test_hao123中进行使用:
@allure.step(title="测试一个元素多种定位方式")
@allure.severity(allure.severity_level.BLOCKER)#CRITICAL,NORMAL,MINOR,TRIVIAL
@allure.issue("https://www.baidu.com")
def test_2(self, browser):allure.attach("描述","测试步骤002的描述...")self.driver = browserself.open_url("https://www.hao123.com/")self.driver.find_element(By.XPATH,'//*[@id="search"]/form/div[2]/input').send_keys("conftest")sleep(5)# self.hao123.run_test(); 
注意:
test_hao123方法中的传参browser要跟conftest中的方法保持一致,无需做其他配置,前提conftest所在的目录要有__init__文件
  
pytest在conftest文件中钩子的使用方法
@pytest.hookimpl(hookwrapper=True, tryfirst=True)
def pytest_runtest_makereport(item, call):# 获取钩子方法的调用结果out = yield# print('用例执行结果', out)    # 3. 从钩子方法的调用结果中获取测试报告report = out.get_result()if report.when == "call":print('测试报告:%s' % report)print('步骤:%s' % report.when)print('nodeid:%s' % report.nodeid)print('description:%s' % str(item.function.__doc__))print(('运行结果: %s' % report.outcome))log.info('nodeid:%s' % report.nodeid)log.info('运行结果: %s' % report.outcome)
