
Python 测试框架
猫与测试
10+年软件测试及管理经验,3+年软件测试培训经验,曾工作于多家互联网、电子商务企业,擅长测试管理、各类自动化测试、Python 语言。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Pytest 参数化(数据驱动)
参数化,就是把测试过程中的数据提取出来,通过参数传递不同的数据来驱动用例运行。其实也就是数据驱动的概念。在 Unittest 中,我们讲过使用 ddt 库配合 unittest 实现数据驱动。在 Pytest 中并不需要额外的库,通过 pytest.mark.parametrize()即可实现参数化。单个参数在使用pytest.mark.parametrize()传递参数化数据时,测试用例本...原创 2019-12-24 22:30:18 · 20131 阅读 · 7 评论 -
Unittest-测试运行:查看测试结果
前面我们已经使用了两种方式运行:unittest.main()TextTestRunnerunittest.main() 是 unittest 中定义的 main() 方法,会自动查找当前测试文件中的所有测试类中的所有符合规则的测试用例,并自动构建测试套件。最后调用 TextTestRunner 中的 run() 方法运行该套件。方便,但是只针对当前文件。main() 与中是根据ASC...原创 2019-12-11 22:08:43 · 4517 阅读 · 0 评论 -
Unittest-快速开始:一个简单的案例
首先了解一下如何在 unittest 框架中编写测试用例。为了更好的了解 unittest 本身,我们编写一个非常简单的函数来进行测试。# 被测加法函数,传入待相加的参数,返回相加结果def add(a, b): return a + b这就是单元测试最基本的单元——函数。我们对这个 add() 函数进行测试,编写一些测试用例:测试整数相加是否正确测试字符串相加是否正确...原创 2019-12-11 22:08:30 · 363 阅读 · 0 评论 -
Unittest-用例执行策略:跳过用例和预期失败
Unittest 支持跳过单个测试用例方法甚至整个测试类,用于控制测试用例的运行。Unittest 还可以将测试标记为“预期失败expected failure”,即本来就应该失败或者随着程序版本的更新已不使用的测试,标记后该用例失败,不会认为是测试结果上的失败,也就是说不会将该用例的失败计入测试结果。跳过测试跳过测试有两种方式可以实现,一种是使用 skip() 装饰器,装饰类或者用例,另一...原创 2019-12-11 22:08:17 · 956 阅读 · 0 评论 -
Python + Selenium(二十四)使用cookie绕过验证码
使用 cookie 绕过验证码这种方式前提是必须要有长时间保存 cookie 的功能,比如登录时会有勾选项"保存本次登录信息",“下次自动登录”,"记住我"等。当你勾选类似的选项后,登录成功后服务器会要求浏览器将登录信息存储你到 cookie。我们就可以从浏览器 cookie 中获取储存的信息,添加到测试过程中的浏览器中,以达到绕过登录的目的。还是以 showdoc 为例,showdoc 是...原创 2019-12-11 22:08:04 · 994 阅读 · 0 评论 -
Unittest-discover:快捷的用例加载方式
前面我们了解了测试组织的测试套件,已经批量查找用例并生成套件的加载器。而在 unittest 的加载器中还提供了一个更加编辑的用例加载方法 discover()。discover() 是 TestLoader 中用于指定测试目录,并查找该目录及子目录下所有符合查找规则的所有测试用例并构建测试套件。查找的测试目录子目录中的必须包含 __init__.py (空文件即可),也就是子目录必须是...原创 2019-12-11 22:07:51 · 504 阅读 · 1 评论 -
Python + Selenium(二十五)无头模式 headless
所谓浏览器的无头模式headless,就是浏览器在运行时处于后台操作的模式,不会看到浏览器打开,也就不会干扰你手头的工作。对于自动化测试和网络爬虫都有很大的价值。早期我们使用 phantomJS 浏览器来实现这种模式,随着 Chrome 和 Firefox 都加入了无头模式, Selenium 逐渐停止对 phantomJS 的支持。Chrome 的 headlessChrome 的无头模式...原创 2019-12-11 22:07:40 · 3825 阅读 · 1 评论 -
Unittest-测试套件:用例加载与组织
测试套件TestSuite,用于对测试用例的组织。测试用例组织好以后就可以使用运行器TestRunner运行测试套件中包含的测试用例。为了更方便演示,我们将之前的示例拆分到几个文件中:+ test_demo 测试文件夹 - add.py 待测函数 add() 所在的文件 - test_a.py 测试类 TestAddOne 所在的文件,测试整数与字符串相加...原创 2019-12-11 22:07:19 · 418 阅读 · 0 评论 -
Pytest 为测试增加标记
Pytest 中有一个很有用的功能,就是为测试用例(测试函数,以后我们都把测试函数直接成为测试用例)添加标记的功能.一个测试用例可以添加多个标记,一个标记可以添加给多个用例,运行时可以通过-m参数快速选择被标记的用例。比如我们经常需要做冒烟测试或 BVT 测试,而在这类测试的时候往往并不会运行所有测试用例。大家也都知道冒烟测试是用来验证主要流程、主要功能的正确性,为了突出快速的特性一般会针对...原创 2019-12-05 15:55:11 · 803 阅读 · 0 评论 -
Pytest 运行参数
前面已经讲过如何运行测试用例,不管用哪种方式,都可以支持这些运行参数。查找用例--collect-only:展示当前 pytest 能找到的用例,也就是说直接根据当前参数配置,能找到的用例列表。用于检验运行的用例是否符合你的预期。-k:使用表达式来指定希望运行的测试用例。...原创 2019-12-01 19:38:41 · 5736 阅读 · 0 评论 -
Pytest 运行用例
Pytest 不止可以运行自己的用例,也可以运行 unittest 写的用例。Pytest 有很多运行时参数,用于指定运行的用例、运行结果展示、插件参数等。Pytest 有两种运行方式:命令行通过 Pytest 命令运行pytest 参数 参数值 ...代码中使用 pytest.main([‘参数1=参数值1’, '参数2=参数值2'])你安装 pytest 之后就能直接使...原创 2019-12-01 12:51:50 · 1689 阅读 · 0 评论 -
Pytest 快速开始
我们先来感受一下 Pytest 的用例,老规矩——待测函数依然是 add():首先你要保证你已下载 pytest:pip install pytest然后再找个文件夹新建一个 test_demo.py 文件最后写下如下内容:test_demo.pyimport pytest# 待测函数def add(a, b): return a + bdef test_str...原创 2019-11-28 15:03:27 · 345 阅读 · 0 评论 -
Pytest 如何编写用例
Pytest 中不仅支持类写用例,也支持用函数写用例,下面我们来看一下如何编写。在写用例之前,我们先了解一下 Pytest 的查找规则,这样我们才知道什么样的用例才是 Pytest 允许的:Pytest 默认会从配置的目录(pytest 的专用配置文件中进行过配置,后面讲)或者从当前目录(未配置的情况下)开始递归查找。如果使用命令行运行方式,那么会从命令运行的当前文件夹开始查找;如果有...原创 2019-11-28 15:01:46 · 3067 阅读 · 0 评论 -
Pytest框架综述
我将从如下几部分为大家介绍 Pytest 框架。如何编写 Pytest 测试用例Pytest 运行及命令行介绍测试标记Pytest 测试固件Pytest 常用及趣味插件(包括测试报告、并发运行等)Pytest 如何实现各种自动化测试Pytest 与持续集成及其他工具的结合Pytest 内置固件、插件编写(不一定介绍????)一般按照我的习惯,我不会一开始就拿一个复杂的案例来介绍显得...原创 2019-11-26 21:05:38 · 458 阅读 · 0 评论 -
更强大的测试框架 Pytest
不少同学做自动化测试时选择的是 Unittest 框架。Unittest 框架是 xunit 系列的测试框架 ,这类型的框架都具有很多共同的特性,都是各种语言自带的,比如 Java -> Junit, C# -> Nunit 等等。它们都是以类作为用例的基本形态,都不支持数据驱动、报告也相对比较单调。但是相对来说,xunit 系列的框架都相对容易入门,并且结合其他的一些辅助工具也能完...原创 2019-11-25 23:05:13 · 278 阅读 · 0 评论 -
Unittest-测试固件:初始化与清理
unittest 提供了针对测试方法、测试类、测试模块三种范围的测试固件,每个范围都有初始化和清理两种固件。测试方法setUp() 和 tearDown() 两个方法是针对测试用例方法级别的测试固件。在当前测试类中重写这两个方法,当前测试类中的所有测试方法都会执行这两个测试固件。在每个测试方法运行之前运行 setUp(), 在每个测试方法运行之后运行 tearDown()。注意是每个测试...原创 2019-11-18 17:48:56 · 1409 阅读 · 0 评论 -
unit test 框架介绍
Unit test 框架最初的灵感来源于 JUnit,并且与其他语言的主要单元测试框架具有类似的风格。基本思想:支持各种层面的自动化测试;测试用例共享setUp初始化和tearDown清理代码;通过各种方式组织测试和规划测试用例;保持测试代码与测试运行之间的的独立性。为实现其基本思想, unit test 使用面向对象的方式实现如下四大功能:test fixturetest f...原创 2019-11-10 19:03:25 · 787 阅读 · 0 评论