接口自动化测试--框架设计思路

小编 2026-07-14 阅读:1549 评论:0
接口自动化测试--框架设计思路1前言 之前文章跟大家分享了一下自己在接口自动化测试中进行测试准备的一些相关知识点,接下来本篇文章详细分享一下接口自动化框架设计的思路总结,希望能对初次探索接口自动化测试的小伙伴们有一些思路上的帮助。...

接口自动化测试--框架设计思路

1

前言

之前文章跟大家分享了一下自己在接口自动化测试中进行测试准备的一些相关知识点,接下来本篇文章详细分享一下接口自动化框架设计的思路总结,希望能对初次探索接口自动化测试的小伙伴们有一些思路上的帮助。

小编是以python+requests+unittest

+HTMLTestRunner为基础进行的接口自动化探索,下面结合接口测试的测试点介绍一下整个框架的搭建思路:

我们知道接口测试本质是对数据的测试,调用接口,输入一些数据,随后,接口返回一些数据,最后验证接口返回数据的正确性。

2

基础

首先要理清楚进行接口测试需要了解的内容:

1、接口文档

a.接口协议--基于http协议的接口

b.接口域名--XXX.XX.XX

c.接口请求类型--业务中只涉及到get和post类型,其中又包含认证校验机制

d.接口参数

e.接口的返回--包含http状态码、业务状态码、实际业务逻辑对应的返回内容

2、 接口内部逻辑

a.接口内部逻辑对应的数据库及redis的操作(增删改查)

3、自动校验的结果

4、测试结果的展示

5、必要的解释说明

a.文档

b.注释

3

具体内容

小编在选择接口请求参数分离方式时对csv、excel、xml进行了对比,最终选择xml格式。

由于excel或csv格式需要维护一组测试case和参数对应关系,每次增删改case会需要同时修改excel或csv中对应的内容,而xml格式可以根据功能模块及接口设计参数文件的结构目录,无需再对接口case和对应的参数进行对应修改,所以选择了借鉴使用友组项目中接口自动化框架,也使用xml获取参数的模式,项目结构具体如下:

整个框架思路说明:

一、最开始就需要建立一个readme文档,即doc目录可以对框架进行整体的说明、写case具体的思路说明等。

二、既然是通过代码的形式进行自动化测试,就有可能会出现编写过程中的问题调试,所以需要有对应的log目录,即logs目录。便于case执行失败后进行问题定位

三、请求参数、按功能模块,根据开发给的的文档,以xml文件的格式对每个接口进行添加,如datafile/input/模块名/接口名 ,及对整个所有接口参数进行检索的interface.xml

四、公共api封装,在进行接口测试前通过文档我们可以知道请求域名、请求方法、公共请求参数(xml保存默认参数)、业务逻辑需要用的接口的公共参数等,可以对这些内容进行封装,如src/common/request_interface.py

包含对接口请求的封装,将其封装成通用的,这样可以满足业务所需要的get和post两种请求。大家可以自行根据自己业务请求的特点结合request库提供的方法进行封装。

如src/common/constant.py包含对域名、某一功能模块参数内容格式化获取、url获取、接口鉴别用户方法等(此处不做展示)

由于业务特点,对接口进行请求前可能需要构造某一种返回逻辑的测试环境,如模拟新用户功能,测试账号名是手机号于已经注册但又没有那么手机号可供每次作为新用户进行注册,这就需要将数据库中的需要对数据库或redis进行删除,从而实现新用户的模拟,其中src/common/db_manager.py和src/common/redis_manager.py分别对两者增删改查方法的封装,这时它们就起到了关键作用(大家可以自行搜狗,根据自己的风格编写)

当然,根据需要,也可增加其他可以使用的公共api接口,如针对php语言特点对返回的数据进行计算封装的src/common/calculate.py

五、每个功能模块的公共部分及所有接口用例执行入口,如crazy接口的公共功能部分src/activity/crazy及测试用例run_activity_crazy.py,及all_interfaces.py

以上接口用例的编写,对接口业务逻辑根据自己的需要进行编写,结果展示可以借助HTMLTestRunner,网上也有很多示例,可自行搜狗

4

结束语

好了以上就是今天要分享的内容,之后敬请关注接口自动化--编写过程中遇到的问题总结,下次见!

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
标签列表