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

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

一、前言

这是一个基于 python 的接口自动化测试项目,使用 excel 管理测试用例,客户端操作,使用过程中不需要关注代码。设计中主要遵循两点原则:简单易用、覆盖常用场景。

二、基本结构

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

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

三、页面展示

1、配置文件

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

2、用例文件
用例文件是 excel 格式,支持两种格式的 excel,但不建议使用.xlsx 格式,因为程序中处理.xlsx 格式用的是 openpyxl 库,性能比较差。简单直观,包含接口信息,需要校验的字段,查询数据是否入库(用 sql 语句实现),固定值,校验数据是否入库,响应内容,响应头,状态码,数据初始化,数据恢复等等

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

part101~part301 是需要校验的数据
section101~section301 是预期结果
这部分分为 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 的接口自动化测试项目,完整实战项目附源码分享

鉴于篇幅所限,无法展示文档跟项目源码,有需要项目练手的可以关注并私信我关键词“资料”免费领取

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/87145.html

(0)

相关推荐

  • 大一新生日记,新生曰记一免费观看

    上回书说到后续还会出现什么状况呢?首先要说,看完急诊后,我们回到家歇了一天,然后就去看保胎孙大夫了,孙大夫建议输一组蛋白和用一些别的药。蛋白价格对于工薪阶层来说很贵,建议相关部门调查一下,是否可以纳入医保,或者可以调一下价格,毕竟这个药好像好多保胎夫妻都要用,输蛋白过程中又见到了卢女士,得知那天是吃着半阶饭给我妻子解答问题的,还看了那些暗红色的东西,毕竟人家也是孕妈妈啊,由衷的感谢卢女士,在整个孕期中对我们的帮助,尤其是对我妻子的鼓励和支持。治疗完后,确实对孕妈妈有所帮助,我们又回家静养了,妻子还是要坚持每天遛一遛,有助胎儿生长,一天遛弯时,我听到妻子和肚子里的孩子说:“抓住妈妈,一定会好起来的。”我很感动,感到了母性的强大。愿与怀孕夫妻分享后续故事,请听下回分解。

    生活 2021年11月26日
  • 小米、华为投资蔚来电池供应商卫蓝新能源,这家公司什么来头?

    近日,据媒体报道称,小米、华为的战略投资机构将对蔚来的半固态电池供应商“卫蓝新能源”进行投资。据介绍,该公司目前估值50亿人民币,获得投资额约5亿元。其中,小米已经进入交割程序,华为暂无具体消息。对此,卫蓝新能源暂无明确回应。

    科技 2021年12月2日
  • 从跌倒的地方爬起来,在哪跌倒在哪爬起来

    小的时候,大家都有跌倒的这个现象产生,当跌倒了之后,很多的孩子会通过哭泣来吸引大人的关注。这时候大人会迅速跑到面前,帮助孩子扶起来,并且还说着不哭不哭。如果跌倒了,身边没有其它的大人,这时候孩子一般会自己爬起来,拍拍身上的灰尘就结束了。

    生活 2021年11月6日
  • 如何走进孩子内心,与孩子沟通心得体会,关于和孩子的交流与沟通心得体会

    我大儿子13了,在叛逆期,学习成绩下降,跟他妈妈经常吵架,不服管教。

    生活 2021年10月26日
  • SpaceX再次发射53颗“星链”互联网通信卫星

    当地时间13日,SpaceX在美国佛罗里达州卡纳维拉尔角航天发射场发射一枚“猎鹰9”火箭,该火箭搭载有53颗“星链”互联网通信卫星。据报道,美国太空探索技术公司自2018年启动“星链”互联网通信卫星发射计划以来,已累计发射1844颗“星链”卫星。(央视新闻)

    科技 2021年11月14日