视频链接:2022全网最新精通Pytest自动化测试框架之Pytest数据驱动装饰器接口测试_哔哩哔哩_bilibili
一、
1、了解pytest测试框架的特点
2.2 启动pytest
(1)执行在命令行输入pytest---在什么地方安装, 就在什么地方输入(推荐使用)
(2)pycharm代码中执行pytest.main()
(3)pycharm提供了testrunner(建议不要使用)
a、需要在pycharm中配置环境变量
b、不会执行if __name == '__main__':里面的内容
c、testrunner本身容易有bug
执行结果:展示》
2022最全python/pytest/Allure报告接口自动化测试框架,3天带你精通Pytest自动化框架_哔哩哔哩_bilibili
二、最新pytest简介
一个个安装很麻烦, 一次性安装
新建一个requiement.txt文件
pytest -version 可以查看pytest的版本
运行方式
通过ini配置文件执行
(1)运行所有 -s 表示输出调试信息和用例打印信息
main方法在任何文件里面运行都可以执行所有模块
(2)运行指定模块
-v 显示详细信息
-vs 模块名 运行指定模块 显示执行模块的详细信息和打印参数
指定文件夹执行: 用于分模块的场景 通过nodeid指定用例执行
pytest既可以执行函数也可以执行方法
执行函数 执行方法: 方法需要加上类
(3)通过ini配置文件运行
最上面[pytest]是固定写法
eg:
分布式运行: 两个文件里面都有main函数都sleep(3), 运行这两个文件就会运行6s, 使用 -n 指定线程的方式就会缩小一半左右的时间
失败用例重跑
(4)执行顺序: 默认同一个文件里面多个函数是从上而下的执行
安装pytest-ordering插件后可以指定执行顺序
七、如何分组执行
加上注解: mark.自定义模块名
ini文件中分模块
执行
既想执行冒烟, 又想执行用户管理, 使用or的方式连接 八、pytest跳过测试用例
直接执行pytest, 因为ini文件中已经配置了执行方式, 发现微微被跳过了
九、生成报告
参数
新建report目录, 报告一般放到这个目录下面
十、pytest框架前后置
1、使用steup等
注意: 和uinittest不一样, 全部是小写
setup和teardown在每个函数之前和之后都会执行
2、使用fixture装饰器来实现部分用例的前后置(既可以实现所有, 也可以实现部分)
例子:
(1)scope: 下面的例子中test_02_xingyao调用了这个被修饰的函数, 所以可以使用, 没有调用的不能使用
加上yield可以实现后置, 将前后置放到一个方法里面
(2)aotouse=True可以实现所有用例, 所有函数都前置
scope=‘class’ 作用域是类不是函数, 表示在类的前后调用
module表示每个模块的前后调用一次
(3)params 参数化: 使用参数化的时候, 参数的值会通过request的方式接收在传递到后面的函数里面
别名: 使用别名之后就不能使用之前的参数名字传参
3、通过conftest.py和@pytest.fixture()结合使用实现全局使用
4、断言
5、pytest结合allure-pytest插件生成allure测试报告
十一、mark~parametrize
第二种方式: @unpack解包一样
2、yaml文件详解
可以去网站上转换yaml和json文件和yaml转换
eg: 读取yaml文件中的数据反序列化为字典格式
先安装yaml插件 新建yaml工具包操作yaml
yaml文件
十二、 yaml接口自动化项目实战
接口文档
实现:
1、基本思想
首先安装request, 发送get post请求
使用yaml的方式实现
YamUtil的内容上面有截图
实现了: 如果想要继续加用例, 不需要改代码,只用在yaml中继续增加用例即可
上面没有增加断言, 没有开放报告
课程不够详细, 可以参考之前的代码研究下这个框架比如log目录, 报告allure, 封装的get post等方法, yamlUtil文件等等, 可以了解下接口和UI自动化框架一体化平台整合, uniittest、flask、jekins、docker, 还是深入研究项目吧, 这个视频大都是广告引流去报班了!!!