pytest(1)

PyTest

一、pytest单元测试框架

(1)什么是单元测试框架

  • 单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试。

(2)单元测试框架

  • java : junit和testing
  • python : unittest和pytest

(3)单元测试框架主要做什么

  • 测试发现:从多个文件里面去找到测试用例
  • 测试执行:按照一定定顺序和规则去执行,并生成结果
  • 测试判断:通过断言判断预期果和实际结果的差异
  • 测试报吉:统计测试进度,耗时,通过率,生成测试报告

二、单元测试框架和自动化测试框架有什么关系?

(1) 什么是自动化测试框架

(2) 作用

  • 提高测试效率,降低维护成本
  • 减少人工干预,提高测试的确性,増加代码的重用性
  • 核心思想是让不懂代码的人也能够通过这个框架去实现目动化测试

(3) pytest 单元测试框架和目动化测试框架的关系

单元测试框架:只是自动化测试框架中的组成部分之一

pom设计模式:只是目动化测试框架中的组成部分之一

数据驱动 关键字驱动 全局配置文件的封装 日志监控
selenium, requests二次封装
断言 报告邮件 。。。

三、pytest简介

1 Pytest 是一个非常成熟的 python 的单元框架,比 unittest 更灵活,容易上

2 pytest 可以和 selenium, requests, appius 结台实现 web 目动化,接口目动化,ap 目动化。

3 pytest 可以实现测试用例的跳过以及 reruns 失败用例重试

4 pytest 可以和 allure 生成非常美观的测试报告

5 pytest 可以和 Jenkins 持续集成

6 pytest 有很多非常强大的插件,并且这些插件能够实现很多的实用的操作

pytest

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

pytest-xdist 测试用例分布式执行,多CPU分发

pytest-ordering 用与改变测试用例多执行顺序

pytest-rerunfailures 用例失败后重跑

allure-pytest 用于生成美观的测试报告

一次性安装所有插件方案:

新建一个txt文档,把插件名放进txt中,每个插件后空一行,执行命令pip install -r 文件名.txt

升级安装pip install -U xxx

四、使用pytest,默认的测试用例的规则以及基础应用

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

2 测试类必须以 Test 开头,并且不能有 init 方法。

3 测式方法必须以 test 开头

五、pytest测试用例的运行方式

1 主函数模式

​ (1)运行所有:pytest.main()

​ (2)指定模块:pytest.main(‘test_login.py’)

​ (3)指定目录:pytest.main(‘路径名’)

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

​ pytest.main([’./testcase/test_login::TestLogin::test_01_baili’])

2 命令行模式

​ (1)运行所有:直接输入pytest

​ (2)指定模块:pytest test_login.py

​ (3)指定目录:pytest 路径名

​ (4)指定用例:pytes ./testcase/test_login::TestLogin::test_01_baili

参数详解:

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

-v:显示更详细的信息

-n:支持多线程或者分布式运行测试用例,节省时间

如: pytest -vs testcase -n 2

​ pytest.main([’-vs’,’-n=2’])

–reruns:用例失败了才重新跑n次

如: pytest -vs testcase --reruns 2

​ pytest.main([‘testcase’,’–reruns=2’])

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

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

如:pytest -vs testcase -k “ao”

–html ./目录/文件.html:生成html测试报告

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

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

1.位置放在项目的根目录

2.编码:必须是ANSI,可以使用工具notpad++修改编码格式

3.作用:改变pytest的默认的行为

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

[pytest]
addopts = -vs
#命令行的参数,用空格分隔
testpaths = Pytest
#测试用例的路径
python_files = test_*.py
#模块名的规则
python_classes = Test*
#类名的规则
python_functions = test
#方法名的规则

六、pytest执行测试用例的顺序

unittest按照ascII码的大小来决定执行顺序

pytest默认从上到下

  • 改变默认的执行顺序,使用mark标记。
@pytest.mark.run(order=3)

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

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

在功能上加上装饰器:

@pytest.mark.smoke
@pytest.mark.usermanage

在pytest.ini中添加:

markers =
	smoke:冒烟用例
	usermanage:用户管理模块

pytest -m “smoke”

pytest -m “smoke or usermanage”

八、pytest跳过测试用例

(1) 无条件跳过

@pytest.mark.skip("原因")

(2)有条件跳过

@pytest.mark.skipif(age>=18,reason="成年了")

B站视频总结,原视频为码尚学院3.3发布的pytest自动化测试框架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值