微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pytest基础使用

(1)pytest简介:
pytest 是 python 的第三方单元测试框架,比自带的 unittest 更简洁和高效,同时兼容 unittest 框架。它还有如下优点:
1、简单灵活,容易上手,文档丰富;
2、支持参数化,可以细粒度地控制要测试的测试用例;
3、能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);
4、pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等;
5、测试用例的skip和xfail处理;
6、可以很好的和CI工具结合,例如jenkins。
pytest是python的一个第三方类库,可以直接使用pip install pytest 在线安装,或者下载离线包安装。

(2)pytest测试用例编写规则:
1、测试文件以test_开头(以_test结尾也可以)
2、测试类以Test开头,并且不能带有 init 方法
3、测试函数以test_开头
4、断言必须使用 assert

(3)pytest中的fixture:
fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面。fixture有明确的名字,在其他函数,模块,类或整个工程调用它时会被激活。fixture是基于模块来执行的,每个fixture的名字就可以触发一个fixture的函数,
它自身也可以调用其他的fixture。可以把fixture看做是资源,在你的测试用例执行之前需要去配置这些资源,执行完后需要去释放资源。类似unittest中的setup和teardown功能。
1.fixture方法详解:fixture(callable_or_scope=None,*args,scope="function",params=None,autouse=False,ids=None,name=None):
scope: 作用范围,设置范围后,会根据设置的范围去触发执行。范围可选值:
function:每个方法(函数)都会执行一次。(默认)
class:每个类都会执行一次。类中有多个方法调用,只在第一个方法调用时执行。

module:一个 .py 文件执行一次。一个.py 文件可能包含多个类和方法。
package/session:多个文件调用一次,可以跨 .py 文件。 session是指在同一个级别的用例(也就是相同目录下的用例)
params:传入参数,接收一个列表,列表中每个数据都作为用例的输入
ids:测试字符串id的列表,每个测试字符串id对应于params,默认为参数值

autouse:在一个session内所有的test都会自动调用当前的fixture,默认为false,也就是说设置为True后,每个用例执行前都会执行下初始化
name:fixture的名称,默认为装饰函数的名称,如果修改了装饰函数的名称,调用该函数就要使用修改后的名称取调用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐