ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Pytest的高级用法,你get到了吗?

2022-07-19 10:04:27  阅读:178  来源: 互联网

标签:get py fixture pytest 用法 conftest Pytest 测试用例 软件测试


每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试,领取资料可加:magetest

码同学抖音号:小码哥聊软件测试

 


目前大家听到比较多的单元测试框架,无非就是pytest和unittest。unittest是老框架了,很多人都用来做自动化,无论是UI还是接口。pytest是基于unittest开发的另一款更高级更好用的单元测试框架,无论面试还是工作使用频率都很高,势头略胜unittest。

 

 

 

 

pytest 的官方网站介绍,它具有如下特点:

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

l 能够支持简单的单元测试和复杂的功能测试

l 支持参数化

l 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败

l 支持重复执行(rerun)失败的 case

l 支持运行由 nose, unittest 编写的测试 case

l 可生成 html 报告

l 方便的和持续集成工具 jenkins 集成

l 可支持执行部分用例

l 具有很多第三方插件,并且可以自定义扩展

 

我相信大家应该或多或少的用过pytest框架,那么今天这篇文章就给大家分享一下大家可能不太知道的pytest的高级用法。主要讲解一下conftest.py和fixture装置函数。

 

conftest.py是什么呢?可以理解成一个专门存放fixture的配置文件。可以单独管理一些全局的fixture。

conftest.py配置fixture注意事项

· pytest会默认读取conftest.py里面的所有fixture

· conftest.py 文件名称是固定的,不能改动

· conftest.py只对同一个package下的所有测试用例生效

· 不同目录可以有自己的conftest.py,一个项目中可以有多个conftest.py

· 测试用例文件中不需要手动import conftest.py,pytest会自动查找

那fixture函数又是什么呢?小朋友你是不是有很多问号?

免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:magetest

 

 

fixture可以让我们自定义测试用例的前置条件

fixture的优势

· 命名方式灵活,不局限于 setup 和teardown 这几个命名

· conftest.py 配置里可以实现数据共享,不需要 import 就能自动找到fixture

· scope="module" 可以实现多个.py 跨文件共享前置

· scope="session" 以实现多个.py 跨文件使用一个 session 来完成多个用例

fixture函数的语法如下

 

 

参数含义:

scope:可以理解成fixture的作用域,默认:function,还有class、module、package、session四个【常用】

autouse:默认:False,需要用例手动调用该fixture;如果是True,所有作用域内的测试用例都会自动调用该fixture

name:默认:装饰器的名称,同一模块的fixture相互调用建议写个不同的name

 

调用方法:

只需要在引用fixture函数的测试用例里面传入被@pytest.fixture这个装饰器装饰的函数的名字即可,就会调用fixture函数中定义的功能,用yield关键字去划分是setup还是teardown,yield前面实现的功能是setup初始化功能,yield后面实现的功能是teardown清场功能。

 

接下来实现一下豆瓣登录的测试用例的书写,项目结构如下

 

 

 

case---测试用例,代码如下:

 

 

base_driver---封装app的driver

 

 

conftest.py里面定义了全局的fixture函数

 

 

命令行执行如下命令进行case的执行:

 

 

 

这样就可以实现豆瓣的登录功能,在函数级别的测试用例执行完之后,等待3秒钟,driver就会自动退出。

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:magetest/关注码同学公众号:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

标签:get,py,fixture,pytest,用法,conftest,Pytest,测试用例,软件测试
来源: https://www.cnblogs.com/testfan2019/p/16492967.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有