python test文件_python_pytest

一。过滤用例

1.定义

pytest,是由第三方开发的一个python单元测试框架,与python自带的unittest有些类似(pytest不完全兼容unittest)。

与unittest相比:

优点:

1)编写用例比较灵活,不需要unittest那样先继承,setUp,tearDown这样的写法,pytest中可以在函数或者类中使用

2)pytest更加简洁灵活(筛选用例)

3)不需要加载用例,自动发现用例

4)pytest兼容unittest

5)可以使用测试插件

6)引用测试报告更加方便

不足之处:

1)unittest是python自带的标准库,不需要安装

2)不需要考虑与python版本兼容的问题

注意:

2.pytest发现用例的规则

1)模块名称以test_或者_test.py

2)测试类中不能有__init__(self)

3)方法名称必须以test_开头

4)pytest测试用例可以脱离类的形式,可以直接使用函数的形式;类也可以不集成unittest.TestCase

5)自动发现用例(以如上1)、2)、3)的规则),unittest需要加载用例,用例执行顺序是按照ASCII码的顺序执行,pytest是按照用例的先后顺序一条条执行。

3.过滤用例

1)先注册ini文件,添加标签名(pytest.ini)

2)打标签:需要在测试用例函数上面加 @pytest.mark.标签名 (标签名:步骤1)注册的标签名)

3)运行制定标签用例:

1.控制台命令:python -m "标签名"

2.python文件中执行:

if __name__ == "__main__":

#执行标签名为error_test的用例

pytest.main("-m error_test")

3.引用测试报告:

if __name__ == "__main__":

#新增一个时间戳

ts = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")

#引入html测试报告,使用测试报告时需要先下载测试报告(pip install pytest-html)

pytest.main(["--html={}.html".format(ts), "-m error_test"])

#运行多个标签

pytest.main(["--html={}.html".format(ts),"-m error_test","-m suesses"])

4.测试夹具

1.测试夹具设置(需要写在固定py文件中 =‘conftest’,该文件一般与‘run.py’同级放置--也就是放在最外层)

@pytest.fixture(scope="function")

def driver():

'''

yield之前为前置条件

yield之后的为后置条件

yield 并排的driver是返回的参数,此处可以把driver返回

管理浏览器

function:每次执行都调用

class:一个类只执行一次

module:一个模块中只执行一次

:return:

'''

from selenium import webdriver

driver=webdriver.Chrome()

driver.implicitly_wait(WAIT_TIME)

yield driver

driver.quit()

2.测试夹具的使用:

pytest.main(["--html={}.html".format(ts),"-m error_test","-m suesses"])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值