pytest用例管理框架(单元测试框架)基础知识

## pytest用例管理框架(单元测试框架)基础知识

python :unittest、pytest java :testng 、junit

2pytest 主要作用,

1,发现用例,从多个py文件里面按照一定的规则找到测试用例

2,执行测试,按照一定的规则执行测试用例,并生成结果。

2.1,用例执行顺序从上到下,可以通过装饰器改变规则。unittest默认安装按照ASCLL顺序执行。

3,断言测试结果

4,生成测试报告,pytest-html

pytest简介

1,基于python的单元测试框架,可以和selenium、request、appium结合实现自动化测试。单元测试,就是对软件最小单元,函数,方法进行测试

2,实现用例执行中,可以跳过、skip、和reruns重跑

3、结合allure-pytest插件生成测试报告

4、很方便和Jenkins实现持续集成

5、有很多强大的插件

pytest

pytest-html生成html测试报告

pytest -xdist 多线程支撑测试用例

pytest-ordering 改变测试用例的执行顺序

pytest-rerunfailures 失败用例重跑

allure-pytest 生成测试报告

6,安装上面五个插件,放到一个.txt的文件,pip install -r txt文件地址同时安装五个插件。

pytest的最基本的测试用例的规则

1.模块名必须以test_开头或者_test结尾。

2.测试类必须以Test开头,并且不能带有init方法。

3.测试用例必须以test_开头。

命令规范:

模块名:一般全小写:多个英文之间用_隔开。

类名:类名一般是首字母大写

方法名:一般全小写:多个英文之间用_隔开。

运行方式

1.主函数方式。

1 import pytest

if name == ‘main’:

pytest.main()

常见参数:

-v:输出更加详细的信息。比如文件和用例名称等。

-s:输出调试信息。打印信息等。

可以合并成:-vs

–reruns=1数字:失败重跑 1次

-x:出现1个失败就停止测试。

–maxfail=2 出现N个失败就终止测试。

–html=report.html 生成html的测试报告

-n 多线程运行

-k:运行测试用例名称中包含指定字符串的用例。

pytest.main([‘-vs’,‘-k’,‘weiwei or baili’])

pytest.main([‘-vs’,‘-k’,‘weiwei and baili’])

.指定模块运行。

if name == ‘main’:

pytest.main([‘‐vs’,‘testcases/test_api2.py’])

指定文件夹

if name == ‘main’:

pytest.main([‘‐vs’,‘testcases/’])

通过node id的方式运行测试用例。

if name == ‘main’:

pytest.main([‘‐vs’,‘testcases/test_api.py::TestApi::test_product’])

2.命令行方式。

1 pytest

3.通过pytest.ini的配置文件运行。(不管是命令行还是主函数都会读取这个配置文件)

[pytest]

用于标记这个文件是pytest的配置文件

addopts = -vs 命令行参数,多个参数之间用空格分隔。

testpaths testpaths = testcases/ 配置搜索测试用例的范围

python_files = test_*.py 改变默认的文件搜索规则

python_classes = Test* 改变类默认的类搜索规则

python_functions = test_* 改变函数默认的测试用例的搜索规则。

执行用力标记的用例,用例分组 markers = ceshi:备注

@pytest.mark.ceshi

addopts=[-vs ,-m ceshi] 单个标记

addopts=[-vs, -m ‘mark or ceshi’ ] 多个标记同时执行

执行的时候通过-m参数指定标记

用例执行顺序
pytest默认的执行测试用例的顺序 从上到下。
改变默认用例的执行顺序:在用例上加标记: @pytest.mark.run(order=1)
注意:有order装饰器的优先,相同的从上到下,然后再是没有装饰器的,负数不起作用。

测试用例跳过

@pytest.mark.skip()跳过执行

@pytest.mark.skipif(i=2,reason=‘描述’) 有条件跳过执行

用例的前后置,固件,夹具,钩子函数,

def setup_class(self):
print(‘每个类之前执行’)
def teardown_class(self):
print(‘类结束后执行一次’)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值