Pytest教程系列(7)conftest文件的使用
conftest文件的使用代码如下:
# _*_ coding: utf-8 _*_
from selenium import webdriver
from Readini.readini import Readini
from PageWeb.publicmethod import PageObject
import pytest
from time import sleep
from Logs.log import Logger
from Data.DataYaml.readyaml import read_yaml
#设置日志类型参数
log = Logger('公共方法执行日志结果').get_log()
#设置公共的driver方法 便于调用 调用时传入方法名即可
driver=None
@pytest.fixture(scope='module',autouse=True)
def getdriver():
try:
global driver
driver = webdriver.Chrome(Readini().get_ini_value('Driver', 'Chome'))
driver.implicitly_wait(30) # 设置隐式等待时间
po = PageObject(driver)
po.open_url(Readini().get_ini_value('Url', 'url'))
po.max_window_page()
sleep(1)
yield driver
po.close_page()
log.info('driver驱动调用成功')
except Exception as e:
log.info('driver驱动调用失败:'+str(e))
#设置公共的login方法 便于调用 调用时无需传入方法名即可调用
@pytest.fixture(scope='module',autouse=True)
def login(getdriver):
try:
po=PageObject(getdriver)
#输入用户名
po.input_textbox(read_yaml('login','usernametype'),read_yaml('login','usernamevalue'),read_yaml('login','username'))
#输入密码
po.input_textbox(read_yaml('login','passwordtype'),read_yaml('login','passwordvalue'),read_yaml('login','password'))
#点击登录按钮
po.click_in(read_yaml('login','login_button_type'),read_yaml('login','login_button_value'))
sleep(1)
log.info('登录成功')
except Exception as e :
log.info('登录失败:'+str(e))
注意:
1.conftest.py文件名称不可更改
2.conftest.py文件要放在根文件夹(用例的根文件夹)
3.conftest.py夹下方要存在__init__.py文件
4.在调用conftest文件中的方法时,可以在方法中直接传递方法名即可
5.autouse=True表名该方法无需输入对应的方法名即可调用
6.scope=‘module’ 作用域的范围在.py文件。每个.py文件只调用一次