接口自动化之设计考量

前置

前两篇已经写了:

1. 接口自动化之接口整理(抓包)

2. 接口自动化之接口工具选取(jmeter)

第二点,需要再扩展补充,工具的选取需要考量多个方案,其中不乏定制化后进行二次封装开发。

第一点,后续需要增加多种抓包情形。

设计

1.通过抓包整理,文档展示效果如果,如果接口数及模块比较多,整个的工作量还是很费时的。

 2.接口间的关系设计



a)依赖关系

其实这块在抓包的时候,大致是可以知晓的。

比如,需要登录的才能操作的接口,那么这些接口一定是依赖登录的,或者获取cookie或者session。



b)无依赖关系,但是关系微妙

例如:

接口A为添加数据功能,接口B为获取某个数据的详细信息,接口C为删除某条数据。

以上A-B-C之间是没有直接关系的。

但是,当数据库不存在数据的时候,使用接口B的时候就会返回空,接口C也无法证明接口功能是否真实实现了(正向用例)。

这时,如果先执行A,再提取A的结果,使用B去查询该条数据,最后使用C删除该添加的数据,即做到了接口验证,同时又还原了初始数据,一举两得。



c)关系确认

关系的确认其实还是要根据接口自动化测试范围来确定,只做冒烟测试那么做正向用例其实是差不多的,但是如果要对接口做压测等等这些,考量又不一样了



3.接口的验证

接口的验证比较难的点在于:验证的粒度,多大才是合适的。

比如:做接口测试要不要查询数据库!

我们从几个方面进行考量:

1)接口响应值

→接口的响应值是只返回最终成功或者失败的状态:那么不需要查询数据库,直接匹配响应值即可。(完美情况)

→接口的响应值是单纯只返回未被处理的数据:那么直接通过与请求同样的处理获取数据进行匹配即可。(完美情况)

→接口的响应值是返回被处理后的数据:那么需要通请求一样对数据进行同样格式的处理再进行匹配(完美情况)

→接口的响应值格式是无规律的:同未被处理(完美情况)

→接口的响应值返回是有类似json这样的美好格式的:同被处理(完美情况)

2)对产品的熟悉程度

→熟悉表结构

→熟悉各请求对应的表关系

→熟悉各请求对应的后端处理逻辑

BUT!

以上情况,我们很少能恰好做到。

so:

对于接口测试,建议分阶段进行处理。安排好测试计划。

是的,接口测试也要有测试计划的。

第一阶段

在不熟悉各表结构和反例的情况下,建议走正向用例。

在返回的数据比较复杂的情况下,建议在前置准备的时候,准备特性数据,校验的时候模糊匹配是否接收到对应的特性数据。

这种情况下的效果是:

优点:覆盖冒烟/回归,完成正向用例,结果准确性也能达到几近100%;

缺点:需要部分的手工干预,比如前置准备的特性数据。

第二阶段

在熟悉产品的同时,熟悉反向用例,补充完善反向用例

优点:在第一阶段的基础上,可以覆盖其他异常情况,执行本接口功能测试。

缺点:需要部分的手工干预,比如前置准备的特性数据。

第三阶段

在熟悉产品的同时,熟悉表结构等

其余阶段均是根据对产品的熟悉程度,对接口测试进行扩展扩充!

所以是否需要进行数据库查询联动,主要还是在于测试的范围,测试的粒度,测试的时间性等

......

原则上,接口自动化全程是无需手工干预的。即路径应该如下:

后续再完善。。。。

原文地址:https://www.cnblogs.com/VVsky/p/9317966.html

时间: 2024-10-09 03:44:29

接口自动化之设计考量的相关文章

接口自动化的设计

1.整体设计 测试工作中,接口测试是相当重要的部分,也是最好实施自动化的.一个完整的接口自动化测试框架,大概需要完成以下几个步骤: 1.用例编写. 2.获取用例. 3.执行用例,我们可以通过Jenkins自动执行,也可以手动执行. 4.生成测试报告. 5.通知,用例执行完成后,通知相关人员. 有了上面几个步骤,我们就可以设计我们的自动化测试框架了.如图所示,整个项目目录如下: case目录用于存放测试用例,common用于存放主要的脚本,reports用于存放测试报告,config用于存储配置文

Selenium Webdriver自动化测试设计(webdriver自动化架构设计、定义接口、日志处理、Java Robot类应用)

给各位网友分享一套课程,有兴趣的可以加我 2748165793 更多免费资料,可以查看http://blog.sina.com.cn/sonyandnokia码农的开心乐园 课程大纲第1章节:课程介绍概要介绍selenium介绍webdirver介绍webdriver环境搭建 第2章节Selenium IDE介绍IDE实例讲解录制回放过程录制脚本的导出IDE插件的介绍以及安装方法 第3章节Selenium 识别对象的方法包括:id,name,class name,link text,partia

Jmeter接口自动化参数化 (转)

测试场景: 有个查询城市(大概一百个 )天气预报的接口(需求参考第一课),需要根据不同的citycode,去查询对应城市的天气预报,这种接口该如何去测试呢? 分析需求: 不管是功能测试需求,还是接口测试需求,首先要先学会分析需求,然后设计测试用例.对于上面的一百多个城市天气预报,小伙伴们是如何设计用例的呢? 一百多个城市的天气预报,我不可能一个个去手工测,一是比较耗时间,二是重复劳动.就算你这次一口气测了一百多个,下次版本更新,你做回归测试也得重新测.(也许你会偷懒,只测两三个,但是做测试不要抱

DLL接口自动化测试总结

1. DLL接口测试方法介绍 在最近测试的项目中,系统给业务端提供DLL文件,业务端通过DLL文件中的C++接口实现系统功能,这就需要对DLL中的C++接口进行详细功能测试. 本文主要介绍项目测试中使用的DLL接口测试方法及基于AutoIT实现的DLL接口自动化测试方法. 1.1 VS2005 通过VS2005可以直接加载DLL文件中的C++接口,模拟业务端调用,传递一些参数值从而验证接口返回码等功能是否正确接口.这部分代码,类似与白盒测试中编写的驱动模块,需要有一定的C++编程基础. 项目初期

关于接口自动化的那些事 - 基于 Python

网络请求模拟小技巧 在学习了一段时间的Python语言后,咱也大概对Python的语法和逻辑有了一定的积累,接下来,可以为接口自动化测试开始尝试做一些比较简单的准备工作啦~跟着我一起来来来~ 扩展库requests 一般来说接口测试都是基于HTTP和HTTPS的网络请求,Python中有很多自带原生库和扩展库均可以实现.Python模拟HTTP请求有两种方式,一种是使用httplib模块,一种是使用requests模块,我个人比较倾向于使用requests库,该库把请求的框架都搭建好了,使用简洁

接口自动化大牛养成记﹒分享﹒第一篇

对于大多数未做过接口测试的同学来说,可能并不清楚接口到底是什么,甚至你去问很多做过接口测试的同学什么是接口,他们也说不出个所以然,大多数人可能知道接口大概是什么,也知道怎么测,但是不知道如何用专业的术语去描述出来. 接口的本质:接口就是一个函数,通过将接口部署到web容器(tomcat,jboss,weblogic等),发布服务后,就可以通过一个url地址去访问到接口了.而接口文档里面描述的接口参数呢其实就是函数的参数,接口的返回数据就是函数的返回值.即:接口=函数,接口参数=函数参数,接口返回

接口自动化之协同办公自动化平台二(ScriptManagement)

第一篇请参考:https://www.cnblogs.com/VVsky/p/9361139.html 当我完成jmx脚本编写之后,将jmx嵌入ScriptManagement平台,使之可以单模块运行及批量运行之后. 主心骨部分算是完成了. 接下来的难点就是,怎么使环境在执行之前一直是干净的.  干净的环境 接口设计考量的时候,我有说过,对响应值过于复杂的系统,是需要进行分段设计的. 本次的产品系统响应值比较复杂.所以我考虑了三种情况: 1.每个case执行之前准备数据,这个对于表结构等要求比较

接口自动化-接口测试初介

前期针对接口测试做了些整理分享,本文主要介绍接口测试基础内容.后续会针对接口自动化(Jmeter,RobotFramework,其实Postman也可以)以及持续集成做相关介绍. 接口测试定义 接口测试是测试系统组件间接口的一种测试. 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点. 测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等. 为什么做接口测试 系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降: 单一产品之间的测试已不

接口自动化

一.概念 1. 什么时接口自动化? 接口自动化就是传入输入,检查输出的一个过程, 优点:相比UI测试,有效且稳定,比单元测试更容易上手. 2. 如何做好接口自动化? 梳理测试用例,将测试点罗列出来,设计好测试用例. 3.自动化和手工的区别? 自动化只是将测试点用程序实现出来.提高测试效率,缩短回归测试的时间,而且不容易遗漏. 4.自动化测试用例和普通用例设计的区别 基本上没啥区别,基本上也是采用边界值法,等价划分法,场景法等. 5.自动化关注的重点 a)功能 b)逻辑业务,根据需求文档设计 c)