我们都知道,在做单元测试框架中有UnitTest和Pytest,前者是Python中自带无需安装,Pytest需要安装,今天我们来讲的就是Pytest,当然如果是做自动化,建议两个都要掌握一下,可以针对实际业务灵活使用

废话不多说,开干!

1、环境安装

如果要解决安装满的问题,可以使用豆瓣源:

查看安装是否成功和安装版本:

2、基本使用

我们使用别人的框架,就得遵守别人的规则,所以pytest也有相应的规则:

1:用例文件:所有文件名为 test_ 开头 或者 _test 开头的文件会被识别为用例文件。

2:用例类,测试文件中每个Test开头的类就是一个测试用例类。并且不能带有 init 方法

3、测试用例:测试类中每个test开头的方法就是一条测试用例,测试文件中每个test开头的函数也是一条测试用例

通俗来说,就是不管是文件名,类名或者函数名命名必须是test的

不理解没问题,直接来实战

1、以函数形式编写用例

# 函数形式
def test_demo():  # 要求函数名以 test 开头
    """测试函数"""
    print('我是函数形式的pytest,我可以是一条用例哦')

我们来运行一下:

PlayWright(十三) - PyTest基本使用-LMLPHP

用例成功通过

那我们是怎么运行的呢

右键运行或者右上角运行都可以,如果结果报错,检查一下pycham中默认测试选的是哪个

PlayWright(十三) - PyTest基本使用-LMLPHP

选择对应的pytest即可,我这里自动检测了pytest,所以无需设置

还可以怎么执行呢

以命令行的形式执行:

PlayWright(十三) - PyTest基本使用-LMLPHP

直接进入到当前项目下,输入pytest,就可以自动执行了

这里我们得再补充下:

在pytest后加 -v 或者 -s,分别有不同的含义

  • -v:显示测试的详细参数信息
  • -s:显示测试执行的输出信息

我们以其中一个示例:

PlayWright(十三) - PyTest基本使用-LMLPHP

除了函数形式编写,还有类的形式编写,下边我们以类的形式编写用例

2、以类形式编写用例

# 测试类形式
class TestDemo(object):  # 正常定义类, 但是测试类名必须以 Test 开头
    """测试示例类"""

    def test_01(self):  # 正常定义⽅法, 但是测试⽅法名必须以test开头
        print('我是测试类下的方法1')

    def test_02(self):
        print('我是测试类下的方法2')

这个遵循我们的规则第二条,测试类以Test开头

当然我们再次运行发现两条用例都已执行成功,现在我们都是自己执行的,难道pytest就没有一套运行方式吗?当然有的,pytest有一个main方法也是可以执行代码文件的

if __name__ == '__main__':
    pytest.main(['-s', 'test01.py'])

这个我们简单分析一下,就是这是main主函数入口,调用了pytest的main方法,方法里参数放在一个列表里

其他的我们需要什么参数就往里填就可以了

到了这里,基本使用我们就讲完了,实际看完感觉是不是也就那样,我们总结下,本篇讲的pytest环境安装,pytest基本规则,pytest函数和类的使用,main函数运行方式

还有前置、后置、配置文件、参数化(数据驱动)、断言、重试机制、插件报告,不要着急慢慢来

07-10 22:33