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

目录

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

 

1. 框架结构图

2. 框架介绍

3. Python测试用例

4. 框架基本展示

5. 框架代码基本展示

6. 批处理文件的操作


目录

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

1. 框架机构图

2. 框架介绍

3. 框架代码基本展示

4. 批处理文件的操作


 

1. 框架结构图

Python接口自动化完整【框架搭建】_第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测试用例

Python接口自动化完整【框架搭建】_第2张图片

4. 框架基本展示

Python接口自动化完整【框架搭建】_第3张图片

5. 框架代码基本展示

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

Python接口自动化完整【框架搭建】_第4张图片

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)

Python接口自动化完整【框架搭建】_第5张图片

6. 批处理文件的操作

Python接口自动化完整【框架搭建】_第6张图片

Mark标签使用方法:

Python接口自动化完整【框架搭建】_第7张图片

Python接口自动化完整【框架搭建】_第8张图片

Python接口自动化完整【框架搭建】_第9张图片

Python接口自动化完整【框架搭建】_第10张图片

Python接口自动化完整【框架搭建】_第11张图片

Python接口自动化完整【框架搭建】_第12张图片

Python接口自动化完整【框架搭建】_第13张图片

你可能感兴趣的:(【Python】,python,python自动化框架,接口自动化)