# Python接口自动化测试框架 **Repository Path**: zywstart/python-interface-automation ## Basic Information - **Project Name**: Python接口自动化测试框架 - **Description**: 接口自动化框架超级实用!本人已在企业中落地使用,目前已经测试多条用例,完全可以落地企业中接口自动化测试。可以大大提高我们测试人员的工作效率。详情了解可以加QQ3270244710.希望各位给颗星星!有偿咨询 - **Primary Language**: Python - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 21 - **Created**: 2023-05-30 - **Last Updated**: 2023-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 此框架是基于Python3+Pytest+Requests+Allure+Yaml+Json实现全链路接口自动化测试。 (有偿咨询,如有需要可加3270244710,备注来意) 主要流程: 1)抓包的接口 解析接口数据包 ->生成接口基础配置(yml) ->生成测试用例(yaml+json) ->生成测试脚本(.py) ->运行测试(pytest) ->生成测试报告(allure) 2)手工编写的接口用例 手工根据规则编写测试用例(yaml+json) ->生成测试脚本(.py) ->运行测试(pytest) ->生成测试报告(allure) 测试流程: 初始化请求 ->处理接口基础信息 ->读取前置接口用例 ->发送前置接口 ->处理当前接口数据 ->发送当前接口 ->检查接口返回 接口自动化测试框架介绍: 关于接口依赖:支持前置接口预置,填写前置接口相对路径即可,如果存在数据依赖关系,此时你也仅需要填写前置接口对应的参数值,本框架将自动为你调用和替换关联数据。 1、前置接口配置: 1)项目文件的page目录下有comeCase.yaml 公用测试用例文件,前置写这个文件类的接口时,配置: premise: /commonCase.yaml xxx接口 测试数据索引(从0开始); 2)也支持填写已有接口,从测试文件中去数据,配置:premise: /xxx/xxxx.yaml _ 测试数据索引(从0开始) 2、前置接口数据依赖: 1)当前接口的参数类,某个参数要引用前置接口的数据,直接用${xxx}进行引用,将自动给你查找替换 2)可引用前置接口的请求参数和接口响应输出参数,引用方式同上; 3)如果前置接口中存在参数为列表形式,如: documents: ['111','222'],当前接口可用${documents}引用整个参数值,也支持用${ducuments_x}引用参数列表中任一一个值。 关于测试数据:本框架采用yaml记录接口基本信息,当请求参数和结果较大时,将单独保存到json文件中,解决各类数据的错综复杂问题。 关于参数化:本框架采用常用工具使用的变量标识 ${var} ,通过正则表达式,自动检索变量,自动为你替换变量,并且为你提供多种函数助手【$RandInt()、$GenGuid()】等,生成一些随机的伪数据,解决各种数据问题。 关于用例执行:本框架利用pytest扩展库,支持多线程模式、失败用例重试、用例模糊匹配等。 关于数据校验:本框架支持多种校验方式(5种) 1) no_check:不做任何校验 2) check_code:仅校验接口返回码code 3) check_json:校验接口返回码code,并进行json格式比较返回结果(默认方式) 4) entirely_check:校验接口返回码code,并进行完整比较返回结果 5) regular_check:校验接口返回码code,并进行正则匹配返回结果 6) check_db:数据库校验 关于环境切换:本框架支持环境切换,只需增加修改配置文件 1)默认项目名称:PyDemo (用于大部分项目支持) 2)如果有项目对断言以及用例修改校大,可以复制PyDemo项目,重新生成一个项目包,如:PyDemoFW ,没有复制新的项目包会默认使用PyDemo项目的数据 3)修改配置: - apiConfig.yaml 【项目配置】 复制一份默认项目配置,在文件下粘贴,修改键名为你需要运行的项目名; - dbConfig.yaml 【数据库配置】同上 - requestConfig.yaml 【处理后写入的数据键值对】同上 这里的值不需要去修改,运行项目时后自动修改,可根据需求,可不用此配置 - runConfig.yaml 【运行配置】 对应修改项目名,其他内容按需修改 运行配置说明: 运行项目名 project_name: PyDemo 运行模式: auto_switch: 2 0 - 不开启自动生成测试用例功能,将直接运行测试 1 - 根据手工编写用例,自动生成测试脚本,然后运行测试 2 - 根据接口抓包数据,自动生成测试用例和测试脚本,然后运行测试 3 - 根据接口抓包数据,自动生成测试用例和测试脚本,但不运行测试 注意:目前解析仅支持(.chlsj)格式,请使用Charles工具抓包导出JSON Session File 扫描测试用例目录(且仅当auto_switch=1时有用) scan_dir: 使用模糊匹配测试用例(空则匹配所有) pattern: 执行并发线程数(0表示不开启) process: 0 失败重试次数(0表示不重试) reruns: 0 本轮测试最大允许失败数(超出则立即结束测试) maxfail: 20 接口调用间隔时间(s) interval: 1 接口自动化框架超级实用!本人已在企业中落地使用,目前已经测试多条用例,完全可以落地企业中接口自动化测试。可以大大提高我们测试人员的工作效率。 详情了解qq:3270244710.群里全套测试视频文档资料从功能到自动化,性能,希望各位给颗星星!!!