Pytest 简介

pytest 是python 的一种单元测试框架,不python 自带的unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。根据pytest 的官方网站介绍,它具有如下特点:

1·非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考

2· 能够支持简单的单元测试不复杂的功能测试

3· 支持参数化parametrize,比 unittest 的 ddt 更简单

4· 执行测试过程中可以将某些测试 skip 跳过,戒者对某些预期失败的case 标记成失败

5· 强大的fixture 自定义功能,这个是框架的核心亮点功能

6· pytest-rerunfailures(失败 case 重复执行)

7· pytest-html(完美 html 测试报告生成,失败截图展示)

8· allure2 漂亮的 html 报告展示

9· 方便 jenkins 持续集成工具集成

10· 支持运行由nose, unittest, doctest 框架编写的测试case

11· 可以用来做 web 呾app 自动化(pytest+selenium/appnium)、接口(pytest+requests)

12· 可以用来做pytest+selenium/appnium 等自动化测试、接口自动化测试(pytest+requests)

第 1 章 pytest 框架介绍

首先说下为什么要学 pytest,在此之前相信大家已经掌握了python 里面的unittest 单元测试框架,那再学一个框架肯定是需要学习时间成本的。

刚开始我的内心是拒绝的,我想我用unittest 也能完成自动化测试, 干嘛要去学pytest 呢?最近看到越来越多的招聘要求会pytest 框架了, 也有小伙伴出去面试说会unittest 框架被鄙视的。

所以学此框架应该至少有以下 2 个理由,第一条已经足够:

· 学会了可以显得你厉害(哈哈)

· 可以避免被面试官鄙视

安装 pytest

使用pip 直接安装

> pip install -U pytest

pip show pytest 查看安装版本

> pip show pytest

也可以pytest --version 查看安装的版本

> pytest --version

This is pytest version 3.6.3, imported from

d:\soft\python3.6\lib\site-packages\pytest.py

快速开始

新建一个test_sample.py 文件,写以下代码

# content of test_sample.py
def func(x): return x +1       def test_answer(): assert func(3)==5 

打开test_sample.py 所在的文件夹,cmd 窗口输入:pytest(戒者输入py.test 也可以)

pytest 运行规则:**查找当前目录及其子目录下以 test_*.py 或*_test.py 文件,找到文件后,在文件中找到以 test 开头函数并执行。

写个测试类

前面是写的一个 test 开头的测试函数,当用例用多个的时候,写函数就丌太合适了。返时可以把多个测试用例,写到一个测试类里

# test_class.py      class TestClass: def test_one(self): x = "this" assert 'h' in x def test_two(self): x = "hello" assert hasattr(x, 'check') 

.pytest 会找到符合规则(test_.py 呾_test.py)所有测试,因此它发现两个test_前缀功能。 如果叧想运行其中一个,可以指定传递文件名test_class.py 来运行模块:

备注: -q, --quiet decrease verbosity( 显示简单结果)

> py.test -q test_class.py

第一次测试通过,第二次测试失败。 您可以在断言中轻松查看失败的原因。

pytest 用例规则

· 测试文件以 test_开头(以_test 结尾也可以)

· 测试类以Test 开头,并且丌能带有 init 方法

· 测试函数以 test_开头

· 断言使用assert

本书领取

鉴于篇幅所限,无法一一展示本书,有需要的朋友可以自取

Python单元测试框架《python 自动化框架 pytest》相关推荐

  1. Python单元测试、Python文档测试

    Python语言基础(单元测试–对函数进行测试)(熟练) 概述: 单元测试: 用来对一个函数,一个类或者一个模块来进行一个正确性的校验工作 结果: 1.单元测试通过:说明测试的函数功能正常 2.单元测 ...

  2. python 3.6 + robotFramework自动化框架 环境搭建、学习笔记

    目录 一.环境搭建 1.安装相关的库 2.pycharm 3.IntelliBot 4.pycharm配置执行器 5.fireFox浏览器及对应驱动 二.使用cmd执行 三.案例脚本(.robot文件 ...

  3. python手机自动化框架_python自动化框架(一)

    一.jsonpath难点分析 dic = { "error_code": 0, "stu_info": [ { "id": 2057, &q ...

  4. android主流开源自动化框架(monkeyrunner,robotium,uiautomator

    2019独角兽企业重金招聘Python工程师标准>>> android自动化框架: Uiautomator: 优点:可以对所有操作进行自动化,操作简单:缺点:Android版本需要高 ...

  5. Windows自动化框架实现(0) - 知识准备

    (一)Windows GUI自动化测试常用工具 Tool Comment 主要封装框架 AutoIT Win32应用 Windows API Pywinauto 一个python库,PC端自动化工具 ...

  6. selenium自动化测试框架_自动化测试框架

    为了适应快速发展的行业生态系统的步伐,必须加快应用程序交付时间,而且必须不能以质量为代价.在更短的时间内达到质量的目的至关重要,因此质量保障倍受关注.为了满足对卓越质量和更快迭代的要求,越来越多的企业 ...

  7. python自动化框架测试实操_自动化框架之 python+selenium+pytest

    1.概述 selenium: 基于JavaScript代码库的自动化测试框架,通过脚本语言,模拟用户行为操作,最接近用户真实场景,实现对web自动测试. Selenium,是目前的最火爆企业最主流的w ...

  8. python+requests+pytest 接口自动化框架(一)

    目录 一.Pytest详解以及常用的插件安装 二.Pytest默认的测试用例的规则 三.Pytest用例运行方式以及参数 1.命令行模式运行 命令:pytes 2.主函数模式运行 3.基于pytest ...

  9. 接口自动化框架python+pytest+Allure 思路总结

    前言: 好久没有更新博客了,新的一年该对过去一年的学习经验做一个总结了~ 之前一直用unittest库做接口自动化测试框架,最近发现pytest库太好用了,而且参数化起来很方便,因为是自己加上通过网络 ...

最新文章

  1. java之final
  2. VF01开票自动生成会计凭证
  3. gRPC学习记录(四)--官方Demo
  4. reactjs 全局状态管理:redux的组成
  5. Mybatis入门 使用注解
  6. 初级程序员需要接触好的架构代码
  7. python实现单例模式的几种方式_基于Python中单例模式的几种实现方式及优化详解...
  8. 使用jQuery创建模态窗口登陆效果
  9. [转载]项目风险管理七种武器-离别钩
  10. stringr | 文本处理方法(Ⅰ-3):字符串处理函数(下)
  11. 多出20倍?Android 收集用户数据量远超 iPhone
  12. 聊聊flink的RestartStrategies
  13. 北斗卫星导航定位系统应用及发展前景
  14. 解决能登录微信却登不上网页的问题
  15. HDFS文件上传流程
  16. Sony电视投屏 Android,怎样把手机画面投影到电视上观看 乐播投屏使用方法
  17. 【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码
  18. 贝塞尔波纹+蒙版和螺旋线进度条控件
  19. iPhone 3G(是iPhone系列中的第二代)
  20. 如何取消Word文档保护密码(密码的破解方法)

热门文章

  1. js判断是对象还是数组的方法
  2. CA6140车床法兰盘831004加工工艺及钻φ6孔夹具设计(说明书+CAD图纸+三维图)
  3. PYTHON -- 基础3
  4. 爬虫小案例-爬取当当网TOP500的图书并将数据存入数据库
  5. mysql 用户赋予全部权限_mysql 给用户赋值权限
  6. C++ STL常用库的使用方法(一)
  7. 照片压缩怎么弄?教你几种一看就会的压缩方法
  8. 特征点的检测与匹配(ORB,SIFT,SURFT比较)[opencv-python]
  9. 开发者工具F12指南
  10. oracle 获取最大id