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


     

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

    废话不多说,开干!

    1、环境安装

    pip insatll pytest

     

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

    pip install -i https://pypi.douban.com/simple pytest

     

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

    pytest --version

    2、基本使用

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

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

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

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

     

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

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

     

    1、以函数形式编写用例

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

    我们来运行一下:

    用例成功通过

    那我们是怎么运行的呢

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

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

     

    还可以怎么执行呢

    以命令行的形式执行:

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

    这里我们得再补充下:

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

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

    我们以其中一个示例:

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

    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函数运行方式

     

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


    __EOF__

  • 本文作者: 似小陈ya
  • 本文链接: https://www.cnblogs.com/nuomituan/p/17541231.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    Java集合(一)
    a16z:呼吁SEC改革加密资产托管规则的建议
    数据结构-----顺序表vs链表
    【Apifox Helper】自动生成接口文档,IDEA+Apifox懒人必备
    HummerRisk V0.6.0发布:升级列表高级搜索功能,扩充对象存储和操作审计支持范围等
    SPI通信
    磨金石教育摄影技能干货分享|花朵怎样拍才能不凌乱
    2分能出线,6分却不能出线?世界杯小组赛的出线规则这次真被我整明白了
    关于Classification-SemiCLS代码中的问题记录
    Webpack
  • 原文地址:https://www.cnblogs.com/nuomituan/p/17541231.html