pytest-fixture使用:
fixture分为几个级别:session、module、class、function(默认)
一、说的fixture的使用,我们先从用例的组织开始说起
一般我们是按照功能点组织测试用例的,将同一功能点的所有测试用例放在一个python文件中
1、对于某一功能点的所有测试用例的前置和后置一样的情况下,这种方法就可以满足该功能点的测试用例优化工作
2、但是对于功能点比较复杂,某一部分前置一样的情况,单独使用function(默认)级别的fixture是无法最大化满足测试用例的优化工作的,此时就需要将fixture的几个级别结合使用了
二、fixture初级使用方法
对于一般的初学者,一般使用fixture的默认级别function,即:每条测试用例执行前、后执行fixture,但是对于复杂的功能点,使用初级方法就显得不够用了
三、fixture进阶使用方法(分层使用)
如何合理利用pytest-fixture这几个级别?是使用fixture的重点。
分层思想:
1、将同一功能点的所有测试用例准备好,将他们的前置列出来(从最开始的启动会话开始)
2、将所有测试用例的前置,相同的部分提取到一起,分为一个层级(直到完全没有相同的前置步骤为止)
3、统计一共将前置部分分为了几个层级
4、统计完测试用例前置部分的层级数后,以fixture的function级别为最后一个层来划分,来确定该功能点需要用到几个fixture级别--来确定如何组织用例
5、最后确定组织用例的方式和fixture级别后,开始着手编写用例,对于完全没有公共前置的用例,可以单独使用函数处理
三、举例说明
好了,说了这么多,估计大家也没听懂,那么我们用柠檬班的一个自动化测试项目来练习一下吧,看看我的这种方法有没有帮助到大家呢?
我们以【柠檬班app项目-前程贷app-登录功能点】为例:
1、编写自动化测试用例:
首先编写登录功能相关的测试用例,大家都是在柠檬班学过的人,这里就不用我在多说什么了吧,基本的几个点最起码要列出来(用例id,功能模块,前置条件,测试步骤、预期结果、实际结果、测试结果),【前置条件,测试步骤、预期结果】为测试case编写时需要用到的点,用例我就不拿出来了,下面直接进入前置梳条件梳理阶段
2、前置条件梳理阶段(以表格为例)
3、统计前置条件层级
4、如何组织登录功能点用例
以测试类为最大单位组织用例
测试类:
创建class级别fixture:login_calss_fixture,fixture内部实现①②
测试方法:
● id为【1,2】的用例已经实现了前置,所以不用再设置function级别的fixture前置,直接定义测试方法就可以正常测试了
● id为【3】的用例应为前置还没有实现,所以创建一个function级别的fixture:login_function_fixture,前置来实现③,装饰该用例
5、用例的最后组织形式
@pytest.mark.usefixtures(“login_calss_fixture”)
class TestLogin:
def test_id_1:
pass
@pytest.mark.usefixtures(“login_function_fixture”)
def test_id_3:
pass
def test_id_2:
pass
================防喷公告,提前说明=====================
1、本文的fixture使用只是自己的一点愚见,请大家慎重使用
2、本文例子只是为了解释fixture分层组织思想,并不一定能将这种思想更好的呈现,没办法,我也初学者,没有其他的例子,大家可以试试使用其他更复杂的例子试一下
3、本文为自己的第一篇博客,主要是响应柠檬班社区号召,对于文中语言的组织问题,如同学没有看懂但确实感兴趣,欢迎前来讨论
4、python10期boy出品,随意翻版
欢迎来到testingpai.com!
注册 关于