【python自动化】pytest系列(上)

1134 篇文章 46 订阅
881 篇文章 3 订阅

【python自动化】pytest系列(上)

本系列一共会有四篇文章,上篇,中篇,下篇,终篇。

「本章知识点」

  • 【python自动化】pytest系列(上)

  • 1、Pytest安装

  • 2、Pytest注意事项

    • Pytest Exit Code 含义清单

    • 常见用法

  • 3、Pytest快速入门

    • (1)方法执行测试

    • (2)类执行测试

    • (3)文件执行测试

    • (4)用例的执行顺序

  • 4、下节内容预告

官网地址:https://docs.pytest.org/en/latest/contents.html

Pytest官方介绍:

The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries.

Pytest安装要求:Python 3.7+

1、Pytest安装

pip install pytest

「验证安装」

pytest --version #会显示当前已安装的版本

2、Pytest注意事项

1、所有的单测文件名都需要满足test_*.py格式或*_test.py格式。

2、在单测文件中,测试类以Test开头,并且不能带有 「init」 方法(注意:定义class时,需要以T开头,不然pytest是不会去运行该class的)

3、在单测类中,可以包含一个或多个test_开头的函数。

4、在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。

在pycharm运行,默认是使用Autodetect方式进行测试,这里我们可以更改为pytest

settings --> Tools -->  Python Integrated Tools --> Testing --> Default test runne

图片

Pytest Exit Code 含义清单

Exit code 0 所有用例执行完毕,全部通过
Exit code 1 所有用例执行完毕,存在Failed的测试用例
Exit code 2 用户中断了测试的执行
Exit code 3 测试执行过程发生了内部错误
Exit code 4 pytest 命令行使用错误
Exit code 5 未采集到可用测试用例文件

常见用法

  • 运行测试:在项目根目录下执行"pytest"命令即可运行所有测试用例。

  • 选择测试:使用"-k"参数可以根据用例名称进行过滤,例如"pytest -k test_login"只会运行名称包含"test_login"的测试用例。

  • 生成报告:使用"-r"参数可以选择输出报告的级别,例如"-rA"会输出所有测试用例的结果,"-rP"会输出测试用例的进度。

  • 覆盖率检查:使用"--cov"参数可以生成测试用例的覆盖率报告,例如"pytest --cov=myapp"会生成myapp代码库的覆盖率报告。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

3、Pytest快速入门

(1)方法执行测试

新建test_a.py文件,编写如下代码:

def test_001():
    print("pytest执行的第一个测试用例")

「右键执行」,启动项显示「Pytest」

图片

「运行结果如下:」

图片

(2)类执行测试

「新建test_b.py」文件,编写如下代码:

class TestB():
    def test_b_001(self):
        print("我是TestB下的test_b_001")

    def test_b_002(self):
        print("我是TestB下的test_b_002")

执行结果如下:

Testing started at 11:19 ...
Launching pytest with arguments D:/L_Learning/MyLearningCode/ApiTestProject/test_b.py --no-header --no-summary -q in D:\L_Learning\MyLearningCode\ApiTestProject

============================= test session starts =============================
collecting ... collected 2 items

test_b.py::TestB::test_b_001 PASSED                                      [ 50%]我是TestB下的test_b_001

test_b.py::TestB::test_b_002 PASSED                                      [100%]我是TestB下的test_b_002


============================== 2 passed in 0.01s ==============================

Process finished with exit code 0

「由上可知,类只要是符合Test开头,pytest都会收集下来并执行。」

(3)文件执行测试

「新建main.py文件」,编写代码如下:

import pytest

pytest.main()

当前项目目录如下:

图片

「在main.py文件里面右键运行」,执行结果如下:

============================= test session starts =============================
platform win32 -- Python 3.8.8, pytest-7.2.1, pluggy-1.0.0
rootdir: D:\L_Learning\MyLearningCode\ApiTestProject
collected 3 items

test_a.py .                                                              [ 33%]
test_b.py ..                                                             [100%]

============================== 3 passed in 0.01s ==============================

Process finished with exit code 0

「由上可知,文件只要是符合Test开头,pytest都会收集下来并执行。」

到此,你算是简单入门pytest的使用啦。

(4)用例的执行顺序

  • 文件是默认按字母顺序去执行的,按照ASCLL码排序(小写英文—>大写英文—>0-9数字)。

  • 文件内部的用例按照从上往下执行。

  • setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module

  • 可以通过第三方插件pytest-ordering实现自定义用例执行顺序

4、下节内容预告

  • 断言assert

  • 命令行运行

  • pytest-allure报告

  • 相关插件

pytest教程系列之前录制了视频,不过本人普通话不是很好,就不放出来了。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值