pytest中常用方法使用

一、使用fixtrue实现部分前后置:

@pytest.fixture(scope=None.autouse=Falseparams=None,ids=None,name=None)

1、scope : 作用域:

function:在函数之前和之后执行
如果说fixtrue有通过return或yield返回值的,那么可以把这个值传递到测试用例当中,值是通过固件名称传递的
class : 在类之前和之后执行
手动调用的方式是在类的上面加上@pvtestmarkusefixtures(“exe database sql”)装饰器调用
package/session :在整个项目会话之前和之后执行
一般结合conftest.py文件来实现

2.autouse: 自动执行。默认是False

@pytest.fixture(scope-"function",autouseTrue)
def exe_database_sq1():
    print(“执行SQL查询")
    yield

如果希望在另外一个py文件中调用需要结合contest.py文件使用

3.params: 实现参数化

1.如何把值传到Fixtrue是通过在fixtrue函数的参数里面加入request来接收参数。然后通过request.param来取值。(这里的param没有s)

def read_yaml():
    return ['测试1','测试2','测试3']

@pytest.fixture(scope="function",autouse=False,params=read yaml())
 def exe_database_sql(request):
    print(request.param)
    print(“执行SQL查调")
    yield "success"
    print(”关闭数据库连接”)

4、ids:不能单独使用,必须合params一起使用,作用是对参数起别名

@pytest.fixture(scope="function",autouse=False,params=read _yaml(),ids=['c','z','cai'])
 def exe database sql(request):
    print("执行SQL查询”)
    yield requestparam
    print("关闭数据库连接”)

5、name :给fixture起别名

特别注意:一旦使用了别名,那么fixtrue的名称就不能再用了,只能用别名。

@pytest.fixture(scope="function",autouse=False,params=read _yaml(),ids=['c','z','cai'],name='db')
 def exe database sql(request):
    print("执行SQL查询”)
    yield requestparam
    print("关闭数据库连接”)

二、fixture结合conftest.py文件使用

1、conftest.py是专门用于存放fixtrue的配置文件,名称是固定的不能变
2、在conftestpy文件里面所有的方法在调用时都不需要导包。
3、conftestpy文件可以有多个,并且多个confitestpy文件里面的多个fixtrue且可以被一个用例调用

三、setup,teardown,setup _class,teardown class,fixture,conftest优先级

会话: fixture的sesslon级别的优先级最高
类: fixture的class级别的优先级最高
类:setup_class
函数: fixture的function级别的优先级最高
函数:setup

三、总结:pytest执行过程

1、查询当前目录下的conftest.py文件
2、查询当前目录下的pytest.ini文件
3、查询用例目录下的conftest.py文件
4、查询py文件中是否有setup,teardown,setup_class,teardown_class
5、再根据pytest.ini文件的测试用例规则去查找用例并执行
五、pytest的断言
就是使用python自己的断言。assert

assert flag is True
assert 1==1
assert 'a' in "abc"

四、pytets结合allure-pytest插件生成美观的报告

1.安装allure-pytest插件。

2.下就allure,下载之后解压,解压之后还要配置环境变量( 把allure目录下的bin目录配置到系统变变量的path路径 : E:\allure-2.13.7\bin: ) :

下载地址 : https //aithub.com/allure-framework/allure2/releases

验证allure是否安液成功: allure --vversion
a、现在dos窗口验证
C: Users Administrator>allure --version
b、在pycharm里面验证(如果这里失败了,那么需要重启pycharm )

E:\workspacelpythonwork publicdemo> allure--version

3._生成allure报告

a、生成临时的json报告,在pytestini文件里面加入以下内容 :

  addopts = -vs --alluredir ./temps --clean-alluredir
--alluredir ./temps 生成临时报告
--clean-alluredir 清空临时报告

b、生成正式的allure报告(run.py文件)

if __name__ == '__main__':
    pytest.main()
    time.sleep(3)
    os.system("allure generate ./temps -o ./reports --clean")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CesareCheung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值