接口自动化主要做什么,接口自动化可以怎么做?
一、接口自动化主要做什么
原理->业务逻辑->工具->自动化脚本和框架
1.连通性
每一次每一个接口调用的时候都会有一个responsecode,assertEqual(r.status_code,200),检查接口是否连通
当接口返回不正常时,它可以使用响应状态码非200来表达,也可以是响应体json中的code字段
不仅理解了该如何进行一次接口请求,也知道怎么样的接口响应是预期值
2.正确性
3.工具
你需要的工具一般分为两类:
一是请求发送和收取工具,例如postman和jmeter。当然jmeter可以作为简易的自动化or性能测试工具。
二是抓包工具,这主要是进行辅助验证。正所谓,“遇事不决先抓包”,黄金定律,切莫瞎猜,眼见为实。工具例如chrome开发者工具F12,fiddler,wireshark,tcpdump等。如果你同时有涉及UI的测试,chrome开发者工具就很重要了,可以帮助你分辨前端bug或后端bug。
二、什么是接口测试?
定义:测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点,重点是检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等;
目的:测试接口的正确性和稳定性;
原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;
重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;
核心:持续集成是接口测试的核心;
优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);
用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);
PS:设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能;
做接口测试需要哪些技能
做接口测试,需要的技能,基本就是以下几点:
业务流:了解系统及内部各个组件之间的业务逻辑交互;
数据流:了解接口的I/O(input/output:输入输出);
协议:包括http协议,TCP/IP协议族
工具:工具可以辅助我们更好更高效的完成工作,常用的接口测试工具有:jmeter、loadrunner、soapui、postman等;
数据库知识:无论是从数据库获取知识,还是确认数据落地,抑或接口对数据执行了哪些操作,都需要确认,因此数据库知识(其实就是增删改查)就很有必要;
补充:接口文档的几个必要点:完整性、一致性、容错性;
接口自动化测试
1、如何开展
首先,调试单个接口,保证单个接口的正确和通畅(类似于性能测试中的基准测试);
其次,明确数据流,业务流;
最后,将N个接口测试脚本串起来,执行即可;
最重要的一点,别想太多太复杂,先把最基础最简单的做起来,就成功一大半了,至于扩展性的第三方接口、https、定时任务、自动出测试报告、自动发邮件等等功能,这都是不断累计和优化的,
行动起来就行,想太多不如行动起来,让接口自动化测试落地,才是我们首先需要考虑的!
2、开展之前需要知道的
现在的测试对象包含几个页面?
每个页面涉及几个接口?
分别在哪一步调用?
每个接口包含哪些字段?
各个字段对应数据库哪张表?
每个表中各个字段是什么意思?
各个接口对表产生了怎样的操作?
3、自动化框架
什么是框架?你可以理解为一个完整的环,也可以理解为让接口测试脚本运行的一整套环境,平台,随便什么都可以;一般一个自动化测试框架包含以下几点:
数据池:即测试数据的存储管理,一般集成为一个data包,其中包括:
log(日志文件)、report(测试报告文件,一般为xml格式)、case-data(单个接口的测试数据,一般为json格式)、server-data(接口业务串联的数据,可以用excel管理)
脚本管理中心:接口测试脚本的统一管理、存储、调度中心,常用的工具有maven、ant等,或者可以使用编程语言中的单元测试框架提供的功能,选择自己适用的即可;
运行平台:一般是借助工具来运行这些测试脚本,工具可以使用上面提及到的几种(jemter、loadrunner、soapui等),同样,选择合适的很重要;
持续集成工具:最常见的就是Jenkins,它的作用就是监控外部程序的调用执行,定时或者触发调度任务,测试脚本执行等功能;
通信服务:dubbo、spring_boot、thrift等RPC、REST同步调用服务;
测试结果统计管理中心:比如testlink,目的是为了测试结果自动更新上传,更好的统计测试结果,以便后期的优化;
接口测试分为分为单接口测试和多接口业务串联测试,接口测试本质是测试接口传入正确的或错误的参数,服务端的处理逻辑是否正确。
1. 其中单接口测试分为业务等价类测试、参数规则边界测试和安全测试三个维度:
(1)业务等价类测试。业务等价类分为单接口的有效等价类和单接口的无效等价类。例如登录接口,在用户名和密码输入合法的前提下,有效等价类是“正确的用户名 + 正确的密码”这一组合,无效等价类包括“正确的用户名 + 错误的密码”、“错误的用户名 + 错误的密码”、“错误的用户名 + 正确的密码”等组合。需要注意的是,我们不仅要找出所有的“有效等价类”(有效等价类毕竟是最常见的业务流程,往往不会忘记),也要找出所有的“无效等价类”。
(2)参数规则边界测试。参数规则边界测试是对接口请求体参数、字段,基于需求的边界值做限制。例如登录的用户名和密码中,字符类型和字符长度限制。在不多数互联网公司,这类限制大多由前端处理。但严格来讲,不仅前端要处理参数、字段的边界,服务端也是需要在接口层级做参数、字段边界的校验的。因为服务端的校验才是最可靠的;此外,基于前后端的C/S架构、B/S架构,如果在服务端做了参数规则校验,那么新开发的各个客户端,就算没有处理对应逻辑,也是不会出现错误数据的,而客户端处理的话,就需要对各个类型的客户端限制参数字段的边界。
(3)安全测试。为防止任何人随意调用接口,我们会给接口加上鉴权限制,这就需要测试接口的安全性。比如接口header里加token和不加token,加cookie和不加cookie等。
2. 多接口业务串联测试
接口之间是有业务关联的,例如订单创建后,订单支付接口应该可以拿最新的订单号支付成功;而订单支付成功后,订单详情接口应该要能拿到最新的订单支付状态,即依赖于订单支付接口的数据,都能够获取到正确的数据。
在单接口测试通过的基础上,再去测试多接口业务串联测试。单接口测试通过,代表单个接口的代码处理没有问题,这时候把业务相关联的接口串联起来,测试通过就代表业务流程没有问题。
测试工具我们选择Jmeter、Postman等都可以。
在做好接口测试后,我们可以对单接口进行封装,实现接口自动化测试(推荐在产品需求第一次开发时,就可以写接口测试的脚本,接口测试通过后,单接口测试的脚本可以直接集成到接口自动化脚本中,非常高效方便)。接口自动化测试方法、框架有很多,如果代码基础比较薄弱,推荐的方法是采用Jmeter + Ant + Jenkins + Git + 邮件服务器的方式来实现。该方法的优点是:
1. 对代码要求不高,非常有利于开发基础不强的测试团队;2. 测试数据、测试用例通过Json文件来管理,且可以和测试脚本一起可以实现分布式管理、多端开发接口测试脚本;3. Jenkins 定时发送测试报告,并基于日志定位问题。
如果有Python基础,采用Python + Request + Jenkins + Git + 邮件服务器来做接口自动化,也会很灵活。 作者:飞塔 https://www.bilibili.com/read/cv5109643/ 出处:bilibili
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~