【2021.9.17】pytest自学笔记

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一直接在Pycharm中安装Pytest

一安装插件

  1.pytest-html      生成HTML格式的测试报告

  2.pytest-xdist        测试用例分布式执行

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

  4.pytest-rerunfailures   用例失败后重跑

  5.allure-pytest      用户生成美观的测试报告

    !:allure需求进入官网下载包并配置环境变量

      allure下载地址:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/

    !:快捷安装插件方式

      1.在pycharm中新建一个txt文件

      2.在txt文件中写入要安装的插件名  #一行一个插件名

      3.在pycharm底部终端中输入:pip install -r (文件名)

 

一Pytest默认格式(可修改)

  模块名必须test_开头或以_test结尾

  类名必须Test开头

  方法名必须test开头

 

一Pytest中函数

  1.-s      表示输出调试信息,包括print打印的信息

  2.-v      显示更纤细的参数

  3.-n      用户进行多线程或分布式运行  注:主函数使用方法为 ’-n=(线程数)‘  

  4.--reruns    用例出错重跑  注:此函数为双 ’-‘ 开头

  5.-x      遇到错误就停止执行  注:不常用

  6.-k      根据用例的部分字符串来指定运行测试用例  注:主函数使用方法为 ’-k=(文本)‘

  7.-maxfail    当出现x个用例失败就停止运行  注:主函数使用方法为 ’-maxfil=(错误数)‘

  8.-m        执行已经被命名或分类修饰的用例  注:主函数使用方法为 ’-m=(修饰时使用的自定义名)

 

|||知识点|||

  Unittest是通过ASCLL码的大小来确定用例执行顺序

  Pytest是从上至下执行用例

 

一Pytest中基础的修饰方法

  1.@pytest.mark.skip(resson=‘备注’)    跳过被修饰的用例(无条件直接跳过,备注并不必须存在)

  2.@pytest.mark.xfail            认定被修饰的用例是个错误的用例

  3.@pytest.mark.(自定义名)        为此用例命名分类

  4.@pytest.mark.run(order = 值)        用例执行顺序  注:值越越先执行

  5.@pytest.mark.skipif(条件,reason=‘备注’)  若满足条件则跳过(有条件跳过方式,备注为必须存在)

 

一主函数模式指定文件/模块/类/方法执行用例

  运行所有模块:pytest.main()

  指定运行:pytest.main([‘-vs’  ‘路径’])

  注:当指定路径时每级用 ‘::’ 隔开

 

一通过读取pytest.ini配置文件运行

  !:不管是主函数运行,命令行模式运行,都会读取这个配置文件,并以此配置文件为主,配置文件可以修改pytest的默认取名规则

  1.配置文件放在项目的根目录

  2.配置文件编码为ANSI    注:编码问题可以使用notpad++修改

    pytest.ini文件格式:

      [pytest]

      addopts=            注:命令行参数,多个参数用空格分开

      testpaths=             注:测试用例文件夹,自行配置

      python_file=             注:测试搜索的文件名称,可修改默认规则

      python_class=          注:测试所搜的测试类名,可修改默认规则

      python_functions=        注:测试搜索的测试方法名,可修改默认规则

      markers=            注:执行的用例组

        !:若不进行配置则默认查找并允许

 

一比较笨重的前后置处理setup和teardown以及setup_class和teardown_class

  1.def setup(self)              在每一条用例执行前都执行,有几条用例就执行几次

  2.def teardown(self)              在每一条用例执行后都执行,有几条用例就执行几次

  3.def setup_class(self)            在每个类开始前执行,有几个类就执行几次

  4.def teardown_class(self)          在每个类结束后执行,有几个类就执行几次

    !:setup与teardown用于重复且简单的操作,如:打开浏览器等

      setup_class与teardown_class用于不需要重复且重要的操作,如:连接数据库等

        过于笨重,只能用于全体,不能指定部分

 

posted @ 2021-09-17 14:46  米泽路  阅读(91)  评论(0)    收藏  举报