Python接口自动化完整【框架搭建】

目录

Python接口自动化完整【框架搭建】

 

1. 框架结构图

2. 框架介绍

3. Python测试用例

4. 框架基本展示

5. 框架代码基本展示

6. 批处理文件的操作


目录

Python接口自动化完整【框架搭建】

1. 框架机构图

2. 框架介绍

3. 框架代码基本展示

4. 批处理文件的操作


 

1. 框架结构图

 

2. 框架介绍

1. 命名规范:

  1. API包中为了区分是接口还是ui、app等自动化,模块可用相应的前缀命名。如Api_getExcel.py、app_、web_ 并建立相应的类库包进行管理。
  2. 重点:给测试用例模块命名时:模块名一定要使用"test_" 前缀命名,因为在运行命令使用会更加方便;类名:TestlessonClass ;函数名:test_login() ;函数名称一定要test_前缀开头,否在无法运行pytest.
  3. pychram: 不指定模块名:pytest(['-sq','--html=pytest.html'])命令时,可以运行test_ 开头的所有模块。不用指定模块名称。
  4. Pychram的终端命令中:当前路径在测试用例包内,pytest -sq   便可运行test_ 开头的所有模块。不用指定模块名称。

3. Python测试用例

4. 框架基本展示

5. 框架代码基本展示

1.环境初始化、清除数据【conftest.py 文件】

pytest 提供了fixure 实现了unitest中setup/teardown功能,可在每次执行case之前初始化数据。

(1)fixture默认是函数级别,可用级别:function,class,module,session

(2)可以写多个初始化与清除函数,测试函数需要使用只需要传入对应函数名即可

(3)当环境清除初始化中,设置参数:autouse=True 所有自动化函数自动调用,不用手动调用该环境初始化函数。或者不设置为True,默认为false,需要在所有自动化函数中手动调用该环境初始化函数。

2.module级别:

 (1)score="module"

 (2)如果一个模块内部同时有测试函数和测试类需要调用初始化函数,装饰器级别需要调整为module

 (3)初始化操作只会在第一次传参的时候执行一次,清除操作会在所有测试用例执行完之后,执行一次

import requests
import pytest

"""
pytest 提供了fixure 实现了unitest中setup/teardown功能,可在每次执行case之前初始化数据。值需运行case会自动调用;
比setup、teardown更加灵活。
fixure scope的作用范围:
def fixture(scope='function',params = None,autouse=False...):
scope: 可选四个参数 function(默认)、class、module、package/session
parms: 一个可选参数列表,
autouse: 如果为True,则fixure func将为所有测试激活可看到它。如果为False(默认),使用时需要激活它。
"""

print('——————————————————————————Pytest自动化环境初清除初始化____________________________')

@pytest.fixture(scope='funtion',autouse=True)  #环境初始化、数据清除,autouse=True 所有函数自动调用,不用手动调用该环境初始化函数。
def delete_all_lesson(request):
    # 1. 登录
    session = LoginClass().api_login('{"username":"auto","password":"sdk1234"}')
    # 2. 列出所有课程数据
    inData = {
        'action':'list_course',
        'pagenum':'1',
        'pagesize':'20'
    }
    resList = json.loads(LessonClass().list_less(session,inData))['retless']
    for one in resList:
        lessonId = one['id'] # 获取课程id
        # 3. 删除所有的课程
        LessonClass().delete_lesson(session,lessonId)

    # 创建课程测试数据{001}
    for one in range(1,6):
        lessonData = {"name":f'心田{one:0>3}','desc':'初中化学课程'...}
        lessonClass().add_lesson(session,lessonData)

    #环境、数据清除 -- teardown 最后执行
    def fin():
    
        print('-------------------测试环境恢复---------------------')
    requests.addfinalizer(fin)

6. 批处理文件的操作

Mark标签使用方法:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南-我的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值