pytest 介绍及特点:
pytest是一个非常成熟的全功能的python第三方测试框架 特点: 1. 简单灵活,容易上手 2. 支持参数化 3. 能够支持简单的单元测试和复杂的功能测试;也可以用来做selenium/appium等自动化测试,接口自动化测试(常见方式:pytest+request+allure) 4. 有很多第三方插件,还可以自定义扩展,如 pytest-selenium(集成selenium)、 pytest-html(html测试报告生成)、 pytest-rerunfailures(失败case重试)、 pytest-xdist(多CPU分发)、 pytest-ordering(控制测试函数执行顺序)等 5. 测试用例的skip(跳过测试⽅法)和xfail ( 执⾏预期失败操作 ) 处理 6. 可以很好的和Jenkins集成 7. 支持 allure 报告
安装:
pip3 insatll pytest pytest --version
运行方式:
>> 命令行 << : 1. 指定执行的测试文件:(常用) pytest 路径/py文件名 pytest datas/testlogin.py 注意:<默认搜索> 的是test开头的⽂件,Test开头的类,⼩写的test开头的⽅法 2. 带其他参数运行: pytest 路径/py文件名 -v # 显示测试的详细参数信息 pytest 路径/py文件名 -s # 显示测试执行的输出信息 3. 指定执行的测试类: pytest 测试文件::测试类 4. 指定执行的测试用例: pytest 测试文件::测试类::测试方法 >> 脚本里执行 <<: 1. pytest.main()
pytest初始化和结束⽅法:
**函数级别** setup()和 teardown() 1.初始化和结束⽅法必须在测试类的内部存在 2.setup运⾏于每个测试⽅法开始,teardown运⾏于每个测试⽅法结束, 有多少个测试⽅法会运⾏多少次初始化和结束⽅法 如果⽅法没有断⾔语句,那么默认断⾔成功的
**类级别** setup_class() 和 teardown_class() 1.存在于测试类内部 2.只会在类开始运⾏setup_class ,类的结束运⾏ teardown_class 不关⼼测试类内部有多少个测试⽅法 测试函数运⾏顺序:由上⾄下去运⾏
pytest配置⽂件
**配置⽂件名字:** pytest.ini tox.ini setup.cfg 通常放在测试根⽬录下⾯ 配置⽂件⾸⾏必须式: [pytest] 命令⾏参数:addopts = 命令⾏参数 搜索测试⽬录:testpaths = 某个⽬录(通常是相对于根⽬录⽽⾔) 搜索测试⽂件: python_files = ⽂件名 通常会使⽤通配符⽅式 "*":代表任意字符 搜索测试类: python_classes = 类名 通常建议 通配符 "*" 搜索测试⽅法: python_functions = ⽅法名 通常建议 通配符 "*" 配置⽂件好处: 可以约束 ⽂件名,类名,⽅法名 配置⽂件中不允许出现中⽂ 运⾏过程: 1.命令进⼊项⽬根⽬录 2.输⼊ pytest ->查找当前⽬录下的配置⽂件 3.匹配配置⽂件中命令⾏参数 4.搜索某个⽬录 -> 某些⽂件 -> 某些测试类 -> 某些测试⽅法 如果出现 "no tests ran " ->查找配置⽂件中 搜索⽬录->搜索⽂件->搜索类->搜索⽅法
pytest 测试报告:
自动化测试——同一个项目下共用3种方法 ( pytest + allure 、unitest + HTMLTestRunner、unitest + unittestreport )实践记录



