基于 python 的接口自动化测试项目,完整实战项目附源码分享

一、前语

这是一个基于 python 的接口自动化测验项目,运用 excel 办理测验用例,客户端操作,运用过程中不需求重视代码。规划中主要遵循两点原则:简略易用、覆盖常用场景。

二、基本结构

项目包含 3 个部分,配置文件、用例文件、客户端。

基于 python 的接口自动化测试项目,完整实战项目附源码分享

三、页面展示

1、配置文件

基于 python 的接口自动化测试项目,完整实战项目附源码分享

2、用例文件 用例文件是 excel 格局,支撑两种格局的 excel,但不主张运用.xlsx 格局,因为程序中处理.xlsx 格局用的是 openpyxl 库,性能比较差。简略直观,包含接口信息,需求校验的字段,查询数据是否入库(用 sql 句子实现),固定值,校验数据是否入库,呼应内容,呼应头,状态码,数据初始化,数据康复等等

基于 python 的接口自动化测试项目,完整实战项目附源码分享

part101part301 是需求校验的数据 section101section301 是预期结果 这部分分为 3 种不同的校验方式: Part101~section101:固定值校验 Part101 填写 JSONPATH 如 [‘sites’][0][‘name’] Section101 填写一个固定的预期结果如:helloworld

Part201~section201:数据库校验 Part201 也是 JSONPATH,如 [‘sites’][0][‘name’] Section201 这时候填写的不再是一个固定的值,而是从数据库中查询出的数据,能够这么写:select ‘helloworld’ 需求注意的时候,假如用例中需求写 sql 句子(不只此处),那么首先需求挑选数据库

Part301~section301:校验数据是否入库 有时候在接口恳求之后要校验数据是不是真的入库了就能够运用这部分校验 Part301 填写 sql 句子 Section301 填写预期结果

JSON 解析: 假如接口呼应层次比较深,能够运用 “JSON 解析” 功能把接口呼应解析为 key-value 方式,然后直接复制要用到的 jsonpath 即可。

以上 part101~section301 部分为准确校验

模糊校验: 假如不想进行准确校验,只想看某些值是不是包含在接口呼应中或呼应头中,则能够运用呼应断言 resText 或 resHeader。

表达式: 以上校验一般能够满意大多数场景,但有些场景不能很好的满意,如,我或许想校验呼应中的某个列表的长度,或许某个字段是不是手机号,这时候需求运用表达式进行校验,这里的表达式其实便是一句 python 代码,如我想校验接口呼应中的列表长度则能够这么写:len(r.json()[‘sites’])==3,此处需注意:程序中的接口呼应对象是 “r”。

数据库初始化、数据康复、动态参数: 这三部分都是 sql 句子 望文生义,数据初始化是在接口恳求之前对数据库进行的初始化操作,数据康复是在接口恳求之后对数据库进行的康复操作。 动态参数最初则是基于这样的考虑,有些接口的恳求参数不是固定的,那么咱们就需求从数据库中实时获取,假如参数 ID 是自增的,咱们实时从数据库中查询出最新的 ID 赋给参数列表,能够这么写:select ID from XX where XX,参数列表中运用这个查询出的 ID 需求这么写:{“ID”:”${ dyparam001 }”},当然动态参数不只仅用于自增参数,任何从数据库中取出的数据都能够用作动态参数,如运用 sql 随机一个手机号或许调用 md5 函数对某个值进行加密。

${变量名},

这是本项目中变量的引证格局,项目中存在 3 种变量,用户变量,动态参数和接口变量,都运用相同的引证格局。

用户变量: 用户变量在配置文件中设置,作为全局变量运用。

接口变量: 很多情况下接口之间会存在依靠关系,如其他接口依靠于登录接口,这时候就要设置接口变量。如 B 接口依靠 A 接口中的某个 [‘token’] 字段,则能够在 A 接口的 key001 填写 [‘token’] 在 value001 中填写 token,key001 是依靠的字段,value001 是给这个字段设置的变量名,在 B 接口中就能够用 ${token}的方式来调用这个变量。

信息头办理器: 信息头办理器可供后续接口隐式调用,还是以 AB 两个接口为例,假如 B 接口恳求时需求带恳求头,当然能够在 B 的 header 中直接填写,但假如 B 之后的接口 CDEF……都需求运用相同的恳求头,那么这时候就能够用到信息头办理器了,能够在 A 的信息头办理器中填写{“token”:”${token}”},假如 B 中没有填写 header,那么 B 就会引证 A 的信息头办理器,假如 B 中填写了恳求头,那么信息头办理器在 B 接口中就不起作用了。

数据库: 数据库信息是在配置文件中配置的,支撑 3 种数据库,oracle,sqlserver.mysql 项目中预置了 3 个数据库:DB1,DB2,DB3,也能够在配置文件中自定义数据库,运用 ${}方式调用即可。

迭代次数: 需求注意的是迭代次数为 0 即该条用例不履行。

模板中的很多列都能够根据实际需求添加或删去,如,我想校验 5 个字段,那么在 part101 后边加几列就能够了,同时在对应的 section101 后边也加相同的列数;假如用到两个动态参数,就在 dyparam001 就在后边加一列,运用 ${dyparam002}引证。

3、客户端 点击挑选按钮能够挑选用例文件,然后先择用例文件中相应的接口模块,点击开始,就能够进行接口用力的测验,窗口中出现接口成功或报错的结果。右侧显示接口成功、失利、反常的数据剖析。

基于 python 的接口自动化测试项目,完整实战项目附源码分享

解析 JSON 按钮实现接口呼应解析成 JSON 格局,便于用例文件中数据校验的填写。

基于 python 的接口自动化测试项目,完整实战项目附源码分享

接口用例履行完成后,点击 excel 陈述和 html 陈述,可检查此次接口履行的陈述,便于后期接口测验的剖析。

基于 python 的接口自动化测试项目,完整实战项目附源码分享

基于 python 的接口自动化测试项目,完整实战项目附源码分享

履行接口报错后,咱们能够点击检查日志按钮,检查履行的接口的恳求,呼应 的信息从而剖析接口出错原因。

基于 python 的接口自动化测试项目,完整实战项目附源码分享

鉴于篇幅所限,无法展示文档跟项目源码,有需求项目练手的能够重视并点击下面链接免费收取

实战项目进口