大家在编写自动化测试脚本的时候都会用到测试框架,pytest就是其中一种,而且是超级好用,好学的一种,它的优点就不在这里讲了,今天主要是讲一下pytest执行用例的方式
先来简单的给没有接触过pytest的伙伴了解一下pytest的一些基本规则:
1.所有的单测文件名都需要满足test_*.py格式或*_test.py格式。
2.在单测文件中,测试类以Test开头,并且不能带有 init 方法(注意:定义class时,需要以Test开头,不然pytest是不会去运行该class的)
3.在单测类中,可以包含一个或多个test_开头的函数。
来个pytest的helloworld吧,代码如下:
运行后,结果如下:
我们测试一个项目肯定不只一两个测试用例,通常都有很多测试用例,同样我们编写自动化测试用例脚本也不可能才一两个脚本,也是有很多脚本的,通常都会归类,放到某个文件夹下面,接下来我们看看怎么一下执行一个目录中的所有用例,首先建立一个目录,名为Filetest,里面的模块如下:
我们在创建一个文件,来执行这些用例,代码如下:
import pytest
#执行Filetest目录中所有的用例
pytest.main(["./Filetest/"])
执行结果如下:
当然我们也可以执行目录里某个模块里所有的用例,代码如下:
pytest.main(["./Filetest/hello_py2_test.py"])
也可以执行模块里某个用例,代码如下:
pytest.main(["./Filetest/hello_py_test.py::test_01"])
我们还可以更加灵活的根据标记,双冒号,类名,类中的某个用例,关键字匹配,出现失败就停止等等方法去执行我们的用例,如下:
#执行某个模块里某个用例
pytest.main(["./Filetest/hello_py_test.py::test_01"])
#通过标记来执行某个模块里某几个用例
pytest.main(["./Filetest/slow_test.py","-s","-m","slow"])
#执行某个模块里某个类里的某个方法
pytest.main(["./Filetest/myclass_test.py::TestMaker::test_b","-s"])
#有执行到一个错误用例就停止
pytest.main(["./Filetest/",'-x'])
#出现2个失败就终止测试,数字可以变
pytest.main(["./Filetest/",'--maxfail=2'])
#通过关键字匹配执行用例
#1.执行Filetest目录里所有函数中有test_0字符串的用例
pytest.main(["./Filetest/",'-k',"test_0"])
#2.执行Filetest目录里所有类名中有Maker2
pytest.main(["./Filetest/",'-k',"Maker2"])
#3.不执行Filetest目录里所有类名中有Maker2里有test_b1字符串的用例
pytest.main(["./Filetest/",'-s','-k',"Maker2 and not test_b1"])
#4.不执行Filetest目录里所有函数中有test_0字符串的用例
pytest.main(["./Filetest/",'-k',"not test_0"])
想要更详细的代码,可以访问如下网站:
http://it.qfedu.com/oa.php/Public/share?c2lkPTEwOTM=
今天的pytest的技术就先到这啦,后面我们还会推出更多关于pytest的技术,小伙伴们可以持续的关注我们哦,当然我们发布的技术不只是只有测速框架哦,也不是只有测试技术,也有职场经验和职场技巧方面的知识的
总结:pytest作为比较流行的单元测试框架,还是比较多人使用的,其实测试框架不会太难学习,基本上学习了一种,其他的大部分都差不多,等积累了一定的测试知识,再学习其他的测试框架就很容易了。
最后我们测试人善于使用测试工具,提高测试效率才能在企业中不断进步,收获更多更好的企业资源,在职场中才能发展的越来越好。测试技术一直在更新,也鞭策我们测试人要不断的学习新的测试技术。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】