前期准备

需要准备:pytest库

执行命令:pip install pytest。由于已经安装好了,所以执行情况会如下图所示

安装完成后,如果能够导入说明安装成功可以使用了

Pytest相关

1、基本用法

(1)举例

class Test_Case:def test_case1(self):print('successful')if __name__ == '__main__':pytest.main(['test_demo1.py::Test_Case::test_case1', '-s'])

相关说明:

a.所有的用例名必须以小写“test”开头!不然pytest无法收集到用例

b.pytest.main的括号中还包含“[]”中括号,用于传不定长参数

c.执行的用例中,用例名与类名,类名与文件名之间要用冒号相连。

d.“-s”是pytest的一个运行参数,表示运行过程中执行print打印函数。

输出:

collected 1 itemtest_demo1.py successful
.============================== 1 passed in 0.35s ==============================进程已结束,退出代码为 0

相关说明:

图中表示收集到了1条用例,位于test_demo1.py文件中,在0.35秒内执行通过并打印了"successful"。图中的“小点”表示用例通过。如果用例不通过则是以“F”标识。当然还包括其他,比如“x”表示跳过等。

以上是pytest的基本运行方法,其中的运行参数不仅仅有“-s”,还包含以下参数,其中,标红参数是笔者使用较多的

-v :输出用例更加详细的执行信息等

-s :运行过程中执行print打印函数

-x:只要遇到错误的用例,立即停止执行,并输出结果

-rA: 简单统计测试结果

-collect-only:表示把待执行的用例全部展示出来

-lf:只执行上次失败的用例(失败重跑)

-ff:先运行上一次失败的用例,再运行其他用例(失败重跑)

--reruns=3:失败重跑3次

--reruns=3-delay=3:定义重跑失败用例的时间为3次

-vv :显示详细的测试结果

-tb=no:不展示用例失败的错误详情

-tb=line:展示用例失败的代码具体行数

-tb=short:展示更加详细的错误信息

-k “关键字” 说明:执行用例包含“关键字”的用例

-q 说明:简化控制台的输出,可以看出输出信息和上面的结果都不一样, 下图中有两个…点代替了pass结果

-maxfail=num 当用例错误达到指定数量时,停止测试

-m :执行对应标记的测试用例

--instafail:实时输出用例执行信息

待补充。。。

当然,以上部分参数是需要安装插件才可以使用的,例如:“--instafail、 --reruns”。

pip install pytest-instafail     命令行实时输出错误信息
                pip install pytest-rerunfailures     失败重试

如果还对其他参数功能、插件感兴趣或者有需要,可以参考pytest官方手册查阅:Plugin List — pytest documentationhttps://docs.pytest.org/en/latest/reference/plugin_list.html

2、标记运行mark

以上是pytest的基本运行方法,但是只能执行单条用例,如果想执行多条用例该怎么办呢?两种办法:

(1)将需要执行的多条用例都存放在一个类中,然后执行这个类即可,无需填写用例名

class Test_Case:def test_case1(self):print('first')def test_case2(self):print('second')if __name__ == '__main__':pytest.main(['test_demo1.py::Test_Case', '-s'])output-->collected 2 itemstest_demo1.py first
.second
.============================== 2 passed in 0.30s ==============================

(2)使用标志执行多条用例,用例前使用“@pytest.mark.标志名”表示该用例被标记

class Test_Case:@pytest.mark.donedef test_case1(self):print('first')@pytest.mark.done
def test_case2():print('second')if __name__ == '__main__':pytest.main(['test_demo1.py', '-m', 'done'])

这个方法不仅对一个文件中的用例有效,还可以执行多个文件的用例,只要是被打上了相同标记的用例,都可以使用“-m”参数全部执行。

当然还可以执行多个不同标记的用例,执行命令: "-m", "标记名1  or 标记名2"

3、关于pytest.ini

使用“-m”可以实现执行多条用例的效果,但会出现以下警告信息

PytestUnknownMarkWarning: Unknown pytest.mark.done - is this a typo?

原因是缺少了pytest.ini配置文件,导致pytest不识别这个标记,导致标签不生效,所以我们需要创建pytest.ini来存放这些标记,才会被识别。

注意,配置文件名称只能是pytest.ini,更改就会报错!

对于pytest.ini文件格式也有要求,格式如下:

# pytest.ini[pytest]
markers =标记名称1: 标记描述标记名称2: 标记描述

标记名称前是一个缩进,不要手打空格。标签描述可有可无。创建好配置文件并添加了标记名称后,再次运行即可。

当然,pytest.ini文件不仅只是存放标记那么简单,它还可以存放我们的参数,用例文件等被pytest识别并执行。而pytest.main中无需填写。

# pytest.ini[pytest]
markers =doneab;执行的python文件名,*表示模糊匹配
python_files = test_de*
;执行类中的用例的名称
python_classes = Test_Case
;执行参数,注意!pytest.ini文件的注释是用分号!而不是#
addopts = -s -m done

不建议在pytest.ini中使用中文,会引起编码错误!如果有解决方法则忽视。

Python自动化测试框架之Pytest相关用法-基本使用(1)相关推荐

  1. Python自动化测试框架之Pytest相关用法-Fixture(2)

    1.setup和teardown 和unittest一样,pytest也有自己的前置后置条件:setup.teardown.但不同的是,pytest的类型比较多,多达10种,根据不同的生效范围分别为以 ...

  2. Python自动化测试框架之Pytest教程【让你小鸡变老鹰】

    Pytest  pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: · 简单灵活,容易上手 · 支持参数化 · 能够支持简单的单元测试和复杂的功能测试,还可以用来做sele ...

  3. python自动化测试框架pytest.pdf_Python自动化测试框架

    随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架.只需要进行一些适用性和效率参数的调整,这些自动化测试框架就能够开箱即用,大大节省了开发时间.而且由于这些框架被广泛使用,他们具有很好的 ...

  4. 7个实用的Python自动化测试框架

    目录 前言 1.Unittest 2. Doctest 3.pytest 4.Nose 5.tox 6.Unittest2 7.mock unittest. 结语 前言 随着技术的进步和自动化技术的出 ...

  5. Python单元测试框架之pytest 3 -- fixtures

    From: https://www.cnblogs.com/fnng/p/4769020.html Python单元测试框架之pytest -- fixtures 2015-08-29 13:05 b ...

  6. Python自动化测试框架有哪些?

    令开发者万分高兴的是,开发自己的测试框架的日子终于结束了.以前,开发团队接手一个项目并开始开发时,除了项目模块的实际开发之外,他们不得不为这个项目构建一个自动化测试框架.一个测试框架应该具有最佳的测试 ...

  7. Python学习教程:Python自动化测试框架需要学习哪些?

    需要掌握学习Python自动化测试框架有哪些?常用的Python自动化测试框架有Robot Framework.Pytest.UnitTest/PyUnit.Behave.Lettuce.软件测试的自 ...

  8. Python自动化测试框架有哪些?怎么选

    目录 自动化测试框架概念 自动化测试框架根据思想理念和深度不同,渐进式的分为以下几种: 模块化测试脚本框架: 测试库框架: 数据驱动测试框架: 关键字驱动或表驱动的测试框架: 混合测试自动化框架: 框 ...

  9. Python自动化测试框架【Allure-pytest功能特性介绍】

    Python自动化测试框架[Allure-pytest功能特性介绍] 目录:导读 前言 生成报告 测试代码 目录结构 Allure特性 Environment Categories Fixtures ...

最新文章

  1. day36-hibernate检索和优化 02-Hibernate检索方式:简单查询及别名查询
  2. Windows 7 下直接硬盘安装 Ubuntu 10.04成为双系统的方法
  3. CentOS6安裝Cacti
  4. 个人对响应式布局的理解
  5. Java的static关键字用法及原理
  6. SpringBoot+Redis缓存概念介绍
  7. 概率分布与马尔科夫链的关系讨论(上传费事)
  8. 给深度学习入门者的Python快速教程 - numpy和Matplotlib
  9. 精通git中文版 (连载四)
  10. BXP无盘中启用bootp服务的设置详解(转)
  11. 上大计算机专业在哪校区,好消息!成都理工大学在川扩招751人,宜宾校区新增计算机443人...
  12. 电脑html怎么导入苹果手机,爱思助手把电脑视频怎么导入苹果手机 视频导入iPhone教程...
  13. 大秦帝国部:黑色裂变(上卷)读后感
  14. H3C 交换机web页
  15. php 输出七芒星,SongNet:硬格式控制下的文本生成
  16. 闰秒及其对计算机系统影响,闰秒原理及其对计算机系统影响
  17. sasl java_java SASL_SSL 帐号密码 方式访问 kafka
  18. python对于会计的好处_学好会计学的作用及意义
  19. 设计原则之合成复用原则
  20. 怎么使用计算机播放音乐,怎么用Apple Watch控制电脑播放音乐?

热门文章

  1. 智和信通,部署智慧交通运维系统,构建一站式运维监控平台
  2. python写入csv指定单元格_使用python将值插入csv中的特定单元格
  3. 获取tomcat服务器上的部分日志
  4. android 调用系统相机拍照并返回路径,Android调用相机拍照并返回路径和…
  5. 【记一次kafka启动报org.apache.zookeeper.KeeperException$NoAuthException:=Noauth for/consumers】
  6. 企业流程管理实践的创新方法——沙盘演练
  7. 百度地图JavaScript API 学习之自定义标注图标(一)
  8. Java阿里云发送短信
  9. php实现拼音转中文,PHP如何将中文转为拼音?
  10. 关于最近激烈竞争的打车软件的一些看法