python接口自动化数据库版(源码已上传GitHub)

接口自动化全篇

本篇已上传到 GitHub码云


整体思路

1、连接mysql数据库、封装数据库方法

2、封装requests方法

3、使用unittest框架编写接口测试用例

  • 调用封装的数据库方法取数据库数据
  • 数据传入requests封装方法中
  • 断言:响应数据是否和存在数据库中的断言字段一致,判断用例是否通过依据

4、执行用例

5、HtmlTestRunner_PY模块生成测试报告

6、准备数据(接口自动化前)、清理数据(接口自动化后)


文件目录

  • commnon文件夹:公共使用的类
    • base_api.py:连接数据库,读取数据库表数据
    • readConfig.py:读写configfile.ini文件配置信息

    注意读写操作时需分开进行,不能用同一个实例,否则会重复写入之前配置文件中存在的内容。

    • requests_api.py:增加auto_request,更适用项目
    • testcase.sql:数据库脚本,附带了点数据
  • logs文件夹:存放日志系统和项目日志
    • logsfile.py:配置日志存放目录和日志相关信息
  • report文件夹:测试报告放置在这里
  • template文件夹:存放用例中用到的文件或图片
  • HtmlTestRunner_PY文件夹:放置测试报告类
  • testcase文件夹:测试用例文件存放
  • configfile.ini:项目相关配置文件
  • run.py:程序运行主文件,运行main函数

数据库表结构

case_id case_num title url method body headers assert status token
测试用例ID 测试用例编号 测试用例标题 接口资源地址 接口请求方法 接口参数 请求头 断言 接口状态码 存放cookies

requests_api.py

@logger.catch():捕获运行中的异常写入error日志文件

auto_request():需要传入url、method、body,函数会根据method方法判断接口请求方式

注意:url根据配置文件主机地址加上资源路径,所以auto_request()函数url只需传入资源路径

@logger.catch()
def auto_request(url, method, body=None, headers=None, files=None, allow_redirects=True, timeout=5):
    all_url = str(url_head) + str(url)
    global get_response
    global post_response
    try:
        logger.info('开始请求接口:{all_url}', all_url=all_url)
        if method == 'GET'
  • 13
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值