Skip to content

as1285/APIRun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

接口自动化框架 API run

作者 唐冬

项目说明

  • 本框架是为了快速实现电商云项目而设计的一套数据驱动自动化接口框架,目前处于初级阶段, 许多功能还待完善,基于EXCEL+requests+unittest设计,本框架无需你使用代码编写用例, ,无需登录获取token,只需要在配置文件里面填好登录账号什么的,该如何编写用例,所有的一切将在EXCEL中进行!!本框架实现了在EXCEL中 进行接口用例编写,接口关联,参数依赖,用例case依赖,接口断言.本框架兼容微商城,新零售APP,小程序,电商云平台,骑手app。

技术栈

  • python3.7
  • requests
  • unittest
  • xlrd
  • logging
  • jsonpath
  • HTMLTESTRunner

#目前实现的功能:

  • 封装requests请求方法
  • 在excel填写接口请求参数
  • 运行完后,重新生成一个excel报告,结果写入excel
  • HTMLTestRunner生成可视化的html报告
  • 对于没有关联的单个接口请求是无法批量执行的,
  • 邮件发送测试结果
  • token关联的已经实现
  • logging日志文件已加入

环境部署

  • 解压压缩包,使用pycharm打开项目文件
  • 导入工程
  • 执行run.py,观察结果是否成功,excel中有一条新零售app登录的用例,可以看看执行结果是否登录成功
  • 查看report下是否有测试报告生成

项目结构说明

  • conf ===========> 配置模块,包括数据库操作,token初始化
  • common ===========> 公共方法,工具类等
  • logs ==========> 日志文件,日志生成模块
  • report ==========> 测试报告,里面包括H5页面
  • run.py =============> 测试用例主要执行器,打印日志版本
  • run_this.py =============> 测试用例执行器生成H5页面
  • READMD.md ============> 项目说明文档

EXCEL字段说明

  • case_id:用例ID

  • client_type:客户端类型 app(新零售) , wei(微商城) ,rider(骑手), cloud(电商云)

  • description:用例描述

  • host:接口host主地址,每个端的host都不同

  • api:接口API名称地址

  • run:接口是否运行 yes 为需要运行此接口

  • method:请求方式(目前只支持GET,POST)

  • header:请求头,格式为 {"key","value"}

  • case_depend:用例依赖,比如支付接口需要依赖下单接口

  • data_depend:数据依赖,如依赖orderId

  • field_depend:数据依赖,如依赖orderId

  • body:请求体,格式为 {"key":"value"}

  • except:断言,格式为 JSONPATH=预期结果

  • result:接口执行中失败返回的结果,如果成功则显示通过

  • db:数据库名称

  • setup_sql:前置数据库语句(在用例执行前执行),若为mysql,直接写sql即可,可支持执行多条sql,用分号隔开,(后期重点扩展使用)

  • teardown_sql:后置数据库语句(在用例执行后执行),用法如上

关联详解

  • 公共参数池:意思就是你可以存储接口的响应值到参数池中,以便后续接口使用

  • 下个接口如何使用已经存储的参数:在下个接口入参中使用形如 ${key} 的格式,提取参数池中的key对应的value即可,当然你必须保证前面的用例已经存储过该key

断言详解

  • 在expect中填写形如 JSONPATH=预期结果 ,框架会根据该JSONPATH从响应JSON中提取目标字段,和预期结果进行比对,同样支持多断言,举栗子:$.msg=操作成功;$.code=100000

如何在EXCEL中使用

  • 注意一定在这里要使用双引号 {"key":"UUID()"} 读}* 不然无法解析数据

待优化

  • 数据方面的依赖优化,框架的灵活性不够
  • 本地做测试数据,结合造数据脚本,减少数据依赖
  • jenkins集成
  • 更多后续。。如flask可视化展示页面开发

About

python接口自动化框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published