readme | 基于pytest接口自动化框架

readme | 基于pytest接口自动化框架

Cosmos 564 2022-06-13

框架说明

本框架是一套基于pytest+requests+Python3.7+yaml+Allure+Jenkins+docker而设计的数据驱动接口自动化测试框架,pytest 作为执行器,本框架无需你使用代码编写用例,那你可能会担心万一有接口之间相互依赖,或者说需要登入的token等之类的接口,该如何编写用例呢,在这里告诉你们本框架已经完美解决此问题,所有的一切将在yaml中进行!!本框架实现了在yaml中进行接口用例编写,接口依赖关联,接口断言(支持正则校验、json校验、全等校验、数据库校验等,支持组合多种不同的校验类型来验证),自定义测试用例运行顺序,还有很重要的一点,实现了类jmeter函数助手的功能,譬如生成MD5、SHA1、随机定长字符串、时间戳等,只需要你在yaml中使用特殊的写法Function(arg)Function(arg),就能够使用这些函数啦,此外在测试执行过程中,还可以 对失败用例进行多次重试,其重试次数和重试时间间隔可自定义;而且可以根据实际需要扩展接口协议,目前已支持http接口和webservice接口

所用技术栈

requests
pytest
allure
yaml
json
pytest-html
logging
jenkis
docker
函数助手

框架概述

Business_logic:业务逻辑层,主要包括接口请求、接口请求业务、接口鉴权、接口初始化等模块封装
common_component:公共组件层,框架最常用得功能在此封装如日志模块、报告发送模块、字符串处理、数据读写操作、文件路径处理等等
test_case:测试用例层
test_object:测试得对象,有接口、有webUI
test_result:测试过程中产生得文档如log文件、测试报告等
test_data:测试使用得数据如json文件、yaml文件、excel文件
config:配置文件存放测试/线上环境得配置信息

框架结构详细描述

1.config ============> 放置配置文件

test.ini ====> 放置测试环境配置信息如IP地址、数据库等信息

pord.ini ====> 放置线上环境配置信息如IP地址、数据库等信息

pytest.ini ====> pytest的主配置文件,可以改变pytest的默认行为,如运行方式,默认执行用例路径,用例收集规则,定义标记等

2.commom ============> 公共模块

data_parser ====> 解析各类测试数据如json、yaml、ini文件

system_operation ====> 系统操作包,包含命令行/文件系统/硬件/进程操作/远程操作等模块

    mytime.py ====> 用于计算时间和日期的实用程序
    
    file.py ====> 所有关于文件系统的操作都将放在这里
    
    get_opt.py ====> 关于命令行的方法应该放在这里
    
tools ====> 工具包,包含各式各样的公共工具,需要时调用即可

    config_parser.py ====> 主配置文件的解析,同时适用于ini格式文件的解析
    
    dict_parser.py ====> 字典相关的处理 
    
    string_parser.py ====> 字符串相关的方法 
    
    exceptions.py ====> 自定义异常 
    
    http_server.py ====> 本地启动HTTP server,用于mock测试
    
    email.py ====> 发送邮件到指定邮箱
    
    mylog.py ====> 日志模块
    
    webhook.py ====> 连接钉钉/飞书API接口自动发送消息到钉钉/飞书群

3.data ============> 存放数据

xxx.yaml ====> 存放yaml文件

xxx.json ====> 存放json文件

xxx.excel ====> 存放excel文件

4.log ============> 存放项目运行产生的日志文件

  1. report ============> 存放项目运行生成的报告文件

6.testcase ============> 存放测试用例

7.wizard ============> 基础服务层

interface_base ====> 基础业务方法,case中所有方法的定义都在此处

  ddt.py ====> 数据驱动,驱动json与yaml文件
  
  http_base ====> http基类,http初始化操作
  
  http_tool ====> requests请求封装
  
  http_token ====> 获取token供其他接口使用

interface_service ====> 接口业务层

  xxx.py ====> 某接口业务
  xxx.py ====> 某接口业务

sql_operation ====> 数据库服务

8.conftest.py ============> 存放测试执行的一些fixture配置,实现环境初始化、数据共享以及环境还原等

9.MEMPium.ini ============> 全局配置文件

10.requirements.txt ============> 相关依赖包文件

11.run.py ============> 框架主入口脚本

12.RunTest_windows.bat ============> 测试启动按钮

附件

test-master