基于pytest框架自动化测试

前言

pytest是python2自带的自动化测试框架,python3的版本的话pytest框架独立出来,需要pip进行安装

选取pytest框架作为自动化的框架,是经过多个框架对比之后的结果,它有一些相对的优势

相对比于unittest框架几个优势:

1.fixture前置功能

2.用例标记,用例重跑等功能。 

3.用例参数化 

4.兼容unittest,nose框架

其中的亮点功能也是fixture的功能,在后面单独介绍fixture功能

官方介绍pytest框架的优势:

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

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

3.支持参数化

4.执行过程只能怪可以将某些测试跳过或者对某些预期失败的case标记成失败

5.支持重复执行失败的case

6.支持运营由nose,unittest编写的测试case

7.可生成html报告

8.方便和持续集成工具jenkins集成

9.可支持执行部分用例

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

能捉老鼠的就是好猫,能满足大部门需求的框架就是好框架,那怎么使用框架帮助做自动化测试,接收一波使用手册


1.一、下载安装

(1)python2自带,pytest --version直接查看,或者通过终端打开:import pytest,没报错,那就是存在的,但是python2 2020年之后就不维护了,所以最好及早的换成python3环境

(2)python3,pip install -U pytest

(3)查看下载的pip show pytest或者pytest --version

(4)pytest用例执行规则:

        ①测试文件以test_xx.py开头(或_test结尾)

        ②测试类以Test开头,并且不能带有init方法

        ③测试函数或方法以test_xx开头

tip:只能以此命名规则命名,自己命名一个文件为:test_create_trans,就无法识别,只能是test_xxx.py

二、测试用例设计与执行

  1. 主要亮点功能

  2. @pytest.fixture

  3. @pytest.mark.parametrzie

  4. @pytest.mark

  5. conftest.py文件

  6. 其他测试用例设计优质功能

  7. pytest.xfail()

  8. pytest.exit()

  9. pytest.skip()

  10. pytest.skipif()

2.1主要亮点功能介绍:

1.fixture功能

理解fixture功能:类似于unittest框架中的setup,teardown这种方法,无需显示调用,框架会自动执行,不过fixture不同之处

①可以显示调用,也可以设置自动调用

②显示调用,fixture直接作为其他测试用例参数传入

③直接通过scope参数范围确定执行的作用范围

④自定义前置操作的函数名,非固定的setup,teardown等

fixture语法:

@pytest.fixture(scope="session",autouse=True)

#scope分别有四个等级:session,module,class,function,function为默认的级别

#autouse表示该函数是否所有的测试用例都默认调用,True表示自动均调用login执行,False表示不自动调用

使用说明:

@pytest.fixture是pytest的装饰器,熟悉python语法的就知道装饰器,某个函数需要当做fixture功能使用的话,在函数前注册为fixture,具体参考应用实例部分代码

实现的功能:

可以将一些通用的,测试用例执行前都需要执行的方法提前执行,且会根据设置的session级别,确定在什么时候执行:

应用实例:以登录为实例:因为基本上所有的功能测试都需要用到登录,所以作为一个前置执行函数,如下:

#test_01.py

# -*- coding:utf-8 -*-

import pytest



test_login =[{

        "username": "18712345678",

        "passwd": "111111"

    }]



@pytest.fixture()

def login(request):

    username = request.param['username']

    passwd = request.param['passwd']

    return "登录名:{0},密码:{1}".format(username, passwd)



@
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值