当前位置:   article > 正文

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

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)初始化操作只会在第一次传参的时候执行一次,清除操作会在所有测试用例执行完之后,执行一次

  1. import requests
  2. import pytest
  3. """
  4. pytest 提供了fixure 实现了unitest中setup/teardown功能,可在每次执行case之前初始化数据。值需运行case会自动调用;
  5. 比setup、teardown更加灵活。
  6. fixure scope的作用范围:
  7. def fixture(scope='function',params = None,autouse=False...):
  8. scope: 可选四个参数 function(默认)、class、module、package/session
  9. parms: 一个可选参数列表,
  10. autouse: 如果为True,则fixure func将为所有测试激活可看到它。如果为False(默认),使用时需要激活它。
  11. """
  12. print('——————————————————————————Pytest自动化环境初清除初始化____________________________')
  13. @pytest.fixture(scope='funtion',autouse=True) #环境初始化、数据清除,autouse=True 所有函数自动调用,不用手动调用该环境初始化函数。
  14. def delete_all_lesson(request):
  15. # 1. 登录
  16. session = LoginClass().api_login('{"username":"auto","password":"sdk1234"}')
  17. # 2. 列出所有课程数据
  18. inData = {
  19. 'action':'list_course',
  20. 'pagenum':'1',
  21. 'pagesize':'20'
  22. }
  23. resList = json.loads(LessonClass().list_less(session,inData))['retless']
  24. for one in resList:
  25. lessonId = one['id'] # 获取课程id
  26. # 3. 删除所有的课程
  27. LessonClass().delete_lesson(session,lessonId)
  28. # 创建课程测试数据{001}
  29. for one in range(1,6):
  30. lessonData = {"name":f'心田{one:0>3}','desc':'初中化学课程'...}
  31. lessonClass().add_lesson(session,lessonData)
  32. #环境、数据清除 -- teardown 最后执行
  33. def fin():
  34. print('-------------------测试环境恢复---------------------')
  35. requests.addfinalizer(fin)

6. 批处理文件的操作

Mark标签使用方法:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/820991?site
推荐阅读
相关标签
  

闽ICP备14008679号