网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
# 如果你在pip list的时候查看有安装pytest,那么可以将其升级一下,避免版本太低不适配
pip install -U pytest
# 查看当前版本号
pip show pytest
使用pytest创建执行
创建一个并且执行一个pytest测试用例(使用pytest指令,自识别和查找执行)
- 使用vim 在当前目录下,创建一个名称为test_all.py的文件
使用pytest解释器直接执行(需要已经安装pytest库)
使用python指令执行
- py文件中需要有main函数即入口函数,如果没有入口函数则无法执行,需要增加入口函数如图所示
使用pycharm创建执行
pycharm简介见官网:https://www.jetbrains.com/zh-cn/pycharm/,这里我所使用的为社区版,社区版本目前是免费使用
创建一个简单的pytest的py工程
使用pycharm新建工程,设置虚拟环境,并根据使用原则设定对应pytest测试用例内容
- 创建内容
使用pycharm执行当前的测试类
结果什么都没有,原因还是没有入口函数
pycharm使用pytest解释器执行【需要安装pytest】
在setting中输入pytest,找到Python Intergrated Tools,在Defalut test runner中选择pytest且在下方点击Fix开始安装pytest库
设置中查看安装成功
pytest解释器执行**,**点击可执行的按钮,执行结果查看
pycharm中python解释器执行
增加入口函数,直接执行方法,结果同上
pytest参数使用
(具体使用pytest --help查看,此处使用-k -v)
# pytest -k 执行测试用例 加上-v会输出详细日志
# -v则是输出详细日志
# -k是一个表达式
pytest -k 'test_a or test_b or test_c' -v
测试用例参数化
参数化测试pytest库提供了@pytest.mark.parametrize装饰器,可以实现参数化测试,简化编写多个相似测试用例的工作,参数化执行能够看到同等类型请求接口的结果
夹具(Fixture)的使用
fixture主要的目的是为了提供一种可靠和可重复性的手段去运行那些最基本的测试内容。
比如在测试网站的功能时,每个测试用例都要登录和退出,利用fixture就可以只做一次,否则每个测试用例都要做这两步也是冗余
部分用例需要登录,部分用例不需要登录,可以建立一个Fixture来解决这个问题,a、b、c
传入到要使用的方法中
如果数据有用到的结果返回,则使用{方法名}进行结果接收
写在最后
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!