再谈接口测试

目前大多数的公司招聘测试,几乎都要求应聘者能够会接口测试,几乎成了一种趋势,大多数的要求是会主流的测试工具,如PostMan,Jmeter和SoupUi等工具,再高一个层次的,要求会HTTP的应用层协议和编程语言,也有对微服务的测试经验和接口测试框架设计能力的要求。不得不说,这是一个趋势,这源于开发模式的改变,另外一种情况是市场的变化不得不让企业在另外一个维度来思考问题,那就是“快”,快速的推出产品上线,快速的满足客户的要求等等,总之这一切的结果是不仅仅要快,而且产品的质量要好。这对测试来说是一个非常大的挑战,如何能够适应这个快的节奏,并且让产品上线后能够满足市场的要求。

所以很多的时候,测试要面对很多不合理的情况,比如上线时间是确定的,但是开发晚转测了,开发占用了测试的时间,但是测试不能占用上线的时间,不能上线,那就要求加班等等。当然这中间涉及很多的管理的问题,以及一个公司流程化的问题。或者说,是要求更快,还是更加重视客户的价值。大多数的时候,鱼和熊掌是不可兼得的,但是在这样的一个形式下,好像鱼和熊掌必须得兼得。所以就有了自动化的测试以及自动化的运维。

那么既然说到自动化的测试,UI的自动化测试不适合刚才说的这种快速发展的节奏,也无法满足条件。测试应该把更多的精力放在接口自动化测试中,以及各种微服务的测试中和契约测试中。对微服务的测试,测试要做到每个微服务内部的正确性(特别是业务逻辑和业务流程),以及每个微服务组件之间连接的正确性,或者更加通俗的说要测试到端到端流程的正确性和逻辑的正确性。当然对于API的测试,本人在其它的文章中专门有说到接口测试的四个维度,但是我最推荐也是最看重的就是通过接口测试的技术来测试产品的业务逻辑和业务流程,那么如果把这些覆盖的测试点越来越多,对提升测试效率以及研发效率是非常重要的,作为IT的基础部门,首先是要保障的是产品的业务流程,如果我们通过接口测试的技术把产品的业务流程涉及的测试点覆盖到60%至80%之间,那么也就只有剩余的20%至40%的测试点需要手工的方式去验证,当然这个覆盖点还可以继续开展和延伸,接口测试的执行速度是非常快的,也就几分钟的结果出结果,意味着什么,意味着覆盖到的产品业务,几分钟就能够得出结论,得知这些覆盖到的产品质量的情况,这对集成测试,和UAT,ST以及生产环境的冒烟测试的帮助是非常大的。设想这样一个场景,假设底层微服务修改了一个API,要求测试N个版本,并且必须是今天得出测试结论今天必须上线,如果不按照接口测试的方式,那么只能通过上层应用的产品来逐步的验证,N个版本把业务流程都测试一遍,问题是第一次测试业务流程感觉没什么,第二次,以及后面的第N次,人首先自己就感觉没多少意思,但是我们通过自动化测试技术的手段,只需要配置文件配置不同的版本执行就可以了,并且很快的出结果。当然,自动化不是万能的。关于微服务,其实微服务它主要还是以应用层的协议HTTP等轻量级通信方式调用,这对我们做接口测试也是非常有利的,只是这涉及会涉及到异步调用以及其他的测试思路。契约测试更加看重的是服务见是否调用正确,以及服务者提供的功能是否满足别人的需求。

接口测试涉及的技术相对来说也是比较多,世界是复杂的,接口测试也是如此,理解它的本源,搞清楚它的内部原理,下来不管测试工具还是测试代码只是实现它的一种形式。建议可以看看《HTTP权威指南》,对HTTP的协议有非常详细并且很系统的介绍。

本文分享自微信公众号 - Python自动化测试(wuya-python)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 漫谈服务端测试

    熟悉金字塔的同学都知道,整个分层在大的分类思想上分三层,除了单元测试层外,基于把另外两个层次分成客户端的自动化测试和服务端的自动化测试。基于客户端...

    无涯WuYa
  • Python自动化之unittest框架

    在软件架构的层面来讲,测试最重要的步骤之一是发生在软件开发的时候。而软件最终的功能是软件实现细节实现的产物。在金字塔模型的测试理论体系中,单元测试是最...

    无涯WuYa
  • 对接口自动化测试的几点思考(一)

    在自动化的测试体系中,目前应用的比较多,包含了UI自动化测试和接口自动化测试,在UI的自动化测试中使用最广泛的是Selenium框架,移动端是Ap...

    无涯WuYa
  • 华为专家 | 轻量化微服务测试实践

    前言 在我过去工作的这十年间,IT行业经历了很多的变迁,从单体架构到微服务架构,从传统组织到敏捷组织,我正好都有不同的体验,现在我在华为任软件架构师,华为有各种...

    DevOps时代
  • 测试测试测试测试测试测试测试测试测试测试测试测试

    奥特曼打小怪兽2222555
  • 基于蓝鲸DevOps平台的一体化测试应用设计

    企业通过DevOps体系落地,建立相关的DevOps工具及流程规范,实现CICD过程自动化。在整个CICD过程中,测试是其重要组成一环,由于测试的方式较多,在传...

    嘉为科技
  • 测试大咖漫谈测试人职业发展

    【作者介绍】思寒,资深测试架构师,霍格沃兹测试学院校长,开源自动化测试工具 AppCrawler 作者,有 10 余年软件测试开发经验,曾任职于阿里巴巴,百度、...

    霍格沃兹测试开发
  • 性能测试入门-LoadRunner

    性能测试主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试

    用户6367961
  • 软件测试相关名词

    白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的...

    用户7657330
  • MySQL 基准测试

    基准测试 ( benchmark ) 是针对系统设计的一种压力测试,通常的目标是为了掌握系统的行为,但也有其他原因,如重现某个系统状态,或者是做新硬件的可靠性测...

    syy

扫码关注云+社区

领取腾讯云代金券