pytest基础使用

相信用python做自动化的人,对于pytest这个框架一定不陌生,自动化必备神器,比起unittest的笨重,pytest可以说是非常好用的一个框架了。从最开始的unittest用户转变为pytest后就再也不想用unittest了,下面简单讲解下pytest的一些基本结构及应用。
pytest集成了很多现成可用的库,可以pip安装后直接用。像pytest-metadata就是,下面会讲解到。pytest提供了setup.cfg文件,很多初始的配置都可以写在里面,例如用什么浏览器,浏览器driver的地址,生成什么类型的report,运行的case目录地址等等。上面说到的pytest-metadata也可以配置在里面,设置变量参数用到,如设置用户名、密码、url等等,如下图所示。
pytest基础使用_第1张图片

设置完配置参数后,运行时就会比较简单,下一步当然是把一些公用的步骤提取出来,比如登陆,这样不用每个脚本都写一遍登陆了。pytest有什么办法实现呢?当然有,pytest提供了一个叫conftest.py的文件来实现,在这个py文件中写一个函数,加上@pytest.fixture装饰器,那么其他case运行时,都会先执行这个脚本,把这个函数当作参数自动入参到case中,相当于就可以接着conftest中的步骤进行下一步操作了,用来存放一些公用的步骤再适合不过了,如果跑完case想进行清理工作的话,就可以用yield,把处理工作写到yield后面即可
pytest基础使用_第2张图片
这些处理完下一步当然就是编写case了,上面有用到metadata这个库,那具体怎么使用呢?很简单,直接上图
pytest基础使用_第3张图片
给函数入参metadata,然后metadata后带setup.cfg中定义的变量名就行,是不是很方便呢!
那怎么批量运行case呢?pytest也帮你解决了,他会默认去寻找文件名、类名、函数名是test或者Test开头的文件去批量执行。执行完之后怎么生成报告呢?可以pip install pytest-html后,如上图般在setup.cfg里配置好,那么执行完所有脚本后就会自动生成html报告,也算比较详细的一份报告了。当然也可以和allure相结合,这个之后有空写篇文章讲解下。
还有跳过某些用例不执行、一次运行多个脚本、失败后重复运行、为脚本设置标签等等之后文章有空再讲解。

你可能感兴趣的:(pytest基础使用)