单元测试
热巴的小哥哥
人类的悲欢并不相通
展开
-
UnitTest单元测试初体验
介绍UnitTest是Python自带的测试框架,主要用于单元测试~说到UnitTest需要了解几个概念:TestCase(测试用例),TestFixture(测试固件),TestSuite(测试套件),TestRunner(测试运行器)。接下来分别学习一下:首先,我们写一个简单的计算器类,其中有加减乘除四个方法,我们将针对这个计算器类进行单元测试。#coding:utf-8class M...原创 2019-02-25 19:51:06 · 528 阅读 · 0 评论 -
学习pytest的第十一天-----重复执行用例+分布式执行测试
重复执行用例引入在测试过程中我们可能将某条用例,某个测试用例甚至整个测试重复执行多次。这时你可能会想到多写几次运行函数,再不就写个for循环。其实pytest提供了一个扩展模块:pytest-repeat。安装pytest-repeat是Python的扩展模块,使用pip命令安装即可。pip install pytest-repeat@pytest.mark.repeat()我们可...原创 2019-03-26 21:37:55 · 5946 阅读 · 2 评论 -
学习pytest的第八天-----xfail的使用
pytest.xfail()我们已经掌握了如果跳过执行测试用例,其中有一种方法是在测试函数中用pytest.skip()方法。我们现在要学的pytest.xfail()和pytest.skip()有些相似,只不过他的含义是:将该用例标记成xfail失败,并且该用例中的后续代码不会执行。老规矩,上荔枝:我们在测试用例中调用pytes.xfail()方法,可以选择传入reason参数表示原因。#...原创 2019-03-23 16:33:08 · 6024 阅读 · 0 评论 -
学习pytest的第七天-----如何跳过执行测试用例
引入在测试执行过程中, 我们常常出现这种情况:因为功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了,这时我们就需要跳过这些用例。如果将用例删除或注释掉,也太low了点。开始我们的学习~跳过某个用例@pytest.mark.skip()如果我们想要跳过某条用例,我们可以直接用@pytest.mark.skip()标签来装饰该用例。吃个小荔枝:我们在要跳过的测试用例上加上@pytes...原创 2019-03-23 11:22:22 · 4814 阅读 · 1 评论 -
学习pytest的第三天-----fixture的使用方式+参数介绍
引入我们之前学过pytest中的“setup”和“teardown”,可以实现测试用例的前后执行操作。其实pytest中还有另外一种方式——fixture。与setup和teardown相比,fixture使用起来更加灵活,更加炫酷。话不多说,进入正文。@pytest.fixtrue()的使用方式方式一:测试用例传入前置函数名pytest.fixtrue标签是pytest的内置标签,被该标...原创 2019-03-19 11:54:54 · 9471 阅读 · 5 评论 -
学习pytest的第十天-----失败自动重跑
失败自动重跑参数:–lf–If参数(last fail):运行上次运行失败的测试用例,如果没有失败用例则运行全部测试用例。使用方式:在运行函数或命令行中传入参数: --lf 即可。荔枝:我们的测试用例正常写即可,其中第二条用例是会运行失败的;在程序的入口我们显示通过pytest.main()方法正常运行了一次测试,然后又通过pytest.main()运行了上次测试失败的用例。#文件名是...原创 2019-03-25 21:34:09 · 3781 阅读 · 1 评论 -
学习pytest的第九天-----使用自定义的标签分类执行测试+三种生成报告的方式
引入原创 2019-03-25 19:57:25 · 1435 阅读 · 2 评论 -
Unittest篇之数据驱动ddt
在进行单元测试的时候我们可能会遇到这种情况:某条用例我想执行很多遍,但是每次执行传入的参数不同。没错,我们在测试登录功能的时候就很可能出现这种需求。这就引入了我们今天的ddt(数据驱动)。ddt安装ddt是python的扩展库,我们可以使用pip来进行安装,命令如下:pip install ddtddt使用话不多说,先来看代码:#coding=utf-8import unitte...原创 2019-03-13 20:37:11 · 1547 阅读 · 0 评论 -
学习pytest的第六天-----测试用例的参数化+fixtrue参数化的另外一种方式
测试用例的参数化我们之前学到过fixture可以作为参数传入测试用例。除了这种传参方式,我们还有其他的向测试用例传参的方式。@pytest.mark.parametrize()我们可以通过@pytest.mark.parametrize() 这个标签向测试用例中传入参数,如果传入的不只是一组参数而是参数列表,那么该测试用例会根据参数的不同执行多次。吃个荔枝:我们在第一个测试方法中定义两个参...原创 2019-03-21 20:28:30 · 2656 阅读 · 6 评论 -
学习pytest的第二天-----pytest中的setup与teardown
引入了解unittest的我们都知道,unittest中有测试固件。用于在每个测试用例执行前后执行相关操作,我们一般会把每个测试用例的相同的准备操作和结束操作放在固件中。那么pytest中又如何实现相同的目的呢?setup()和teardown() / setup_method()和teardown_method()setup()表示测试类中每个测试方法(测试方法指的是在测试类中的测试用例)...原创 2019-03-16 11:33:12 · 3200 阅读 · 0 评论 -
学习pytest的第五天-----后置固件yield和终结函数addfinalizer
引入我们之前学习的都是测试用例的前置固件,也就是相当于“setup”。说到这,细心的你可能想到了,那有没有什么方式可以表示出“teardown”?这就是我们今天学习的yield和addfinalizer。yieldyield是一个关键字,它不是单独存在的,要写在fixtrue标记的固件中。吃个小荔枝:我们在声明的固件myfixture中加入yield关键字,在它下面写测试用例执行后想要运行...原创 2019-03-20 11:51:48 · 4754 阅读 · 2 评论 -
学习pytest的第一天-----安装+用例设计规则+pytest命令
安装命名规则pytest命令用pytest跑unittest测试用例测试固件原创 2019-03-14 21:53:52 · 2454 阅读 · 1 评论 -
学习pytest的第十二天-----使用allure2生成测试报告
引入allure是一个生成测试报告的框架,相比pytest自带的生成html报告,allure可是逼格高了很多。目前现在已经有allure2了,我们要使用的就是这个allure2。安装因为allure2需要在java的环境下,并且要求必须是jdk1.8级以上,所以要首先保证这一点。接着,要安装allure-pytest,他用来在pytest执行测试结束后生成allure所需要的配置信息。安...原创 2019-03-28 19:52:17 · 3596 阅读 · 6 评论