学习pytest的第九天-----使用自定义的标签分类执行测试+三种生成报告的方式

使用自定义的标签分类执行测试

我们可以使用标签将我们的测试用例进行分类,在测试的时候我们就可以根据标签运行我们想要运行的测试用例了。

小荔枝:我们在要被标记的用例上添加标签 @pytest.mark.标签名称(自定义) ,在运行的时候加上 -m 参数,后面加上要运行的标签名称

#test_Pytest.py文件
#coding=utf-8

import pytest

class Test_Pytest():

        @pytest.mark.test
        def test_one(self):
                print("test_one方法执行" )
                assert 1==1

        def test_two(self):
                print("test_two方法执行" )
                assert "o" in "love"
        @pytest.mark.test
        def test_three(self):
                print("test_three方法执行" )
                assert 3-2==1

if __name__=="__main__":
    pytest.main(['-s','-m','test','test_Pytest.py'])

运行结果如下图所示:只运行了‘test’标签标记的用例。
执行结果图1

如果实际过程中,我们的自定义标签比较多。我们可以用单独的一个模块存放自定义的标签,定义一个变量等于标签;然后在其他的模块中导入该变量,用该变量标记用例即可

下面是一个小荔枝:

#conding=utf-8
#myMarks.py文件
import pytest

web=pytest.mark.web
android=pytest.mark.android
#test_Pytest.py文件
#coding=utf-8

import pytest
from testPytest.myMarks import web,android

class Test_Pytest():

        @web
        def test_one(self):
                print("test_one方法执行" )
                assert 1==1

        @android
        def test_two(self):
                print("test_two方法执行" )
                assert "o" in "love"

        @web
        def test_three(self):
                print("test_three方法执行" )
                assert 3-2==1

if __name__=="__main__":
    pytest.main(['-s','-v','-m','web','test_Pytest.py'])

运行结果和你所想的一样,这里不再展示~

生成报告的三种方式

HTML格式的报告

我们先来学习最实用的方式:HTML格式的报告。为什么说是最实用的呢,还不是因为看起来方便直观。
第一步:要生成HTML格式的报告需要先安装扩展模块:pytest-html,使用pip命令即可。

pip install pytest-html

第二步:在运行函数或命令中加入参数:–html=报告名(也可以使用绝对路径)

荔枝:下面的代码和之前的代码相比,唯一不同的地方就是加入了–html参数。我们的报告是放在了同目录下的report.html文件。

#文件名是test_firstFile.py
#coding=utf-8

import pytest

class Test_Pytest():

        def test_one(self):
                pytest.skip(msg="就是不想执行")
                print("test_one方法执行" )
                assert 1==1

        def test_two(self):
                print("test_two方法执行" )
                assert "o" in "love"

        def test_three(self):
                print("test_three方法执行" )
                assert 3-2==1

if __name__=="__main__":
    pytest.main(['-s','--html=report.html','test_firstFile.py'])

HTML报告展示图:相比于在控制台打印,是不是美观直观很多。
html报告展示图
需要注意的是,目前为止我们生成的html报告的CSS样式是独立的。如果你把发送给他人,他收到的报告可能就缺少了CSS样式。我们可以通过添加参数: --self-contained-html 来解决这一问题。

if __name__=="__main__":
    pytest.main(['-s','--html=report.html','--self-contained-html','test_firstFile.py'])
txt格式的报告

一句话:在运行函数或命令行中传入参数: --resultlog=报告名(也可以使用绝对路径)

上荔枝:测试用例部分代码一样,便不再展示。

if __name__=="__main__":
    pytest.main(['-s','--resultlog=log.txt','test_firstFile.py'])

文本报告如图:说实话和控制台展示的没多大区别,只不过是持久化了而已。
文本报告展示图

JunitXML格式的报告

还是一句话:在运行函数或命令行中传入参数: --junitxml=报告名(也可以使用绝对路径)

最后一个荔枝:测试用例部分代码一样,便不再展示。

if __name__=="__main__":
    pytest.main(['-s','--junitxml=testReport.xml','test_firstFile.py'])

JunitXML报告如下图:
JunitXML报告展示图

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值