Pytest自动化框架笔记

一、需要安装的插件

Pytest

Pytest-html   (生成html格式的自动化测试报告)

Pytest-xdist  (测试用例分布执行。多CPU分布)

Pytest-ordering (用于改变测试用例的执行顺序)

Pytest-rerunfailures(用例失败后重跑)

Allure-pytest(用于生成美观的测试报告)

可以新建文件requirements.txt中,讲以上需要的插件通过pip install -r requirements.txt

验证是否安装成功:pytest-version

二、使用pytest,默认的测试用例使用规则

  1. 模块名必须以test_开头或者_test结尾
  2. 测试类必须以Test开头,并且不能有init方法。
  3. 测试方法必须以test开头

三、使用pytest测试用例的运行方式

1.主函数模式

(1)运行所有:pytest.main(['-vs'])

(2)指定模块:pytest.main(['-vs','test_shouye.py'])

(3)指定目录:pytest.main(['-vs','./test_case'])

(4)通过nodeid指定用例运行:nodeid由模块名,分隔符、类名、方法名、函数名组成。

如:pytest.main(['-vs','./test_case/test_case1.py::test_04_func'])       目录+方法名

       pytest.main(['-vs','./test_case/test_case1.py::TestLogin::test_01_baili'])       目录+类名+函数名

(5)失败用例重跑:pytest.main(['-vs','./test_case/test_case1.py','--reruns=2'])

2.命令行模式:

(1)运行所有:pytest

(2)指定模块:pytest -vs test_shouye.py

(3)指定目录:pytest -vs ./test_case

(4)指定目录:pytest -vs ./test_case/test_case1.py::test_04_func   目录+方法名

                        pytest -vs ./test_case/test_case1.py::TestLogin::test_01_baili     目录+类名+函数名

(5)失败用例重跑:pytest -vs ./test_case/test_case1.py --reruns=2

(6)根据测试用例的部分字符指定测试用例:pytest -vs ./test_case/test_case1.py -k"ao"

参数详解:

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

-v:显示更详细的信息

-vs:这两个参数可以一起用

-n:支持多线程或者分布式运行测试用例

     如:pytest -vs ./test_case -n 2

--reruns num(重跑次数):失败用例重跑

-x:表示只要有一个用例报错,那么测试停止

-k:根据测试用例的部分字符串指定测试用例。

    如:pytest -vs ./test_case/test_case1.py -k"ao"

pytest.ini配置文件中:addopts=-vs --html./report/report.html

--html:生成HTML的测试报告

如:pytest --html ./report/report.html

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

    pytest.ini这个文件:它是pytest单元测试框架的核心配置文件

(1)位置:一般放在项目的根目录

(2)编码:必须是ANSI,可以使用notpad++修改编码格式。

(3)作用:改变pytest默认的行为。

(4)运行的规则:不管是主函数的模式运行,命令行默认运行,都会去读取这个配置文件。

                             (通过读取全局的配置文件pytest.ini运行)

       [pytest]

       addopts = -vs          #命令行的参数,用空格分隔

       testpaths = ./testcase    #测试用例的路径

       python_files = test_*.py     #模块名的规则

       python_classes = Test*     #类名的规则

       python_functions = test_*       #方法名的规则

       markers =

                   smoke:冒烟测试

                   usermanage:用户管理模块

                   productmange:商品管理模块

四、pytest执行测试用例的顺序是怎么样的呢?

unittest:ascll的大小决定的执行顺序

pytest:默认从上到下

改变默认的执行顺序:使用 mark 标记

@pytest.mark.run(order=1)

五:如何分组执行(冒烟,分模块执行、分接口和web执行)

 smoke:冒烟用例,分布在各个模块里面

  如:pytest -m smoke

         pytest -m  smoke or usermanage or productmange

六、pytest跳过测试用例

1.无条件跳过

@pytest.mark.skip(reason="微微太漂亮")

2.有条件跳过

age =18

@pytest.mark.skipif(age>=18,reason='已成年')

七、强大的功能

1.setup/teardown     所有前置

2.conftest.py结合fixture       实现部分前置

八、allure报告生成

九、报告的定制

html  css  javascript


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值