接口测试实战之工具选型

接口测试实战之工具选型_第1张图片

常见接口类型

  • • HTTP/HTTPS 类型接口 基于HTTP协议开发的接口现在应用是最为广泛的,这类API使用起来简单明了,因为它是轻量级的、跨平台、跨语言的, 但凡是第三方提供的API都会有HTTP版本的接口。 RESTful API也是基于HTTP协议的,只不过RESTful它并不是一种规范,它是一种设计准则,用不同的HTTP动词(GET、POST、DELETE、PUT等)来表达不同的请求。

  • • Web Service 类型接口 Webservice就是一个服务应用程序,它向外界暴露出一个能够通过http协议进行调用的应用程序接口。 这就是说,你能够用编程的方法通过HttpGET来调用这个应用程序。我们把调用这个Webservice的应用程序叫做客户。 Webservices是建立可互操作的分布式应用程序的新平台。 Webservice平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Webservice,只要我们可以通过Webservice标准对这些服务进行查询和访问。

  • • RPC类型接口 RPC(Remote Procedure Call Protocol)远程过程调用协议,一种通过网络从远程计算机程序上请求服务, 而不需要了解底层网络技术的协议。 特点:常用的RPC框架:

    • • Thrift:thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发,包括 C++, Java, Python等多种编程语言。

    • • Dubbo:Dubbo是一个分布式服务框架,以及SOA治理方案。其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由, 软负载均衡与容错,依赖分析与降级等。

    • • Spring Cloud:提供了搭建分布式系统及微服务常用的工具,满足了构建微服务所需的所有解决方案。

    • • gRPC: 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。

    • • RPC是协议。只是协议,而非实现。RPC实现包括:Dubbo、Thrift、GRPC、Hetty等

    • • 网络协议和网络IO模型对其透明。RPC的客户端认为自己是在调用本地对象,因此其对使用的网络协议(HTTP协议等) 以及网络IO模型,是不关心的。

    • • 信息格式对其透明。调用方法是需要传递参数的,对于远程调用来说,传递过程中参数的信息格式是怎样构成, 以及提供者如何使用这些参数,都是不用关心的。

    • • 有跨语言能力。因为调用方实际上也不清楚远程服务器的应用程序是使用什么语言运行的。那么对于调用方来说, 无论服务器方使用的是什么语言,本次调用都应该成功,并且返回值也应该按照调用方程序语言所能理解的形式进行描述。

接口测试方式

  • • 手工测试 由于接口测试的特殊性,与功能业务测试方法、手段完全不一样,需要借助工具进行,所说的手工测试也是需要借助 工具手动执行测试用例的过程。 针对新开发接口建议首先进行全面的手工测试后再将部分可重复执行用例加入自动化测试

  • • 自动化测试 接口测试相对容易实现自动化,且相对 UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期, 是支持后端快速发版需求,达到低成本高收益的最佳实践

常用接口测试工具

  • • Postman

  • • Jmeter

  • • fiddler、charles

  • • Apifox

  • • YApi

  • • MeterSphere

  • • HTTPrunner

  • • python、java代码

从哪些方面考虑选择接口测试工具

首先我们要了解本次测试的目的是什么,才能去选择对应的测试工作,否则事倍功半。我们可以从下面几个方面去考虑:

  • • 项目紧急程度

  • • 项目时间

  • • 接口类型

  • • 测试目的

  • • 效率

  • • 环境

  • • 团队技术水平

  • • 成本

  • • 易用性

  • • 灵活性

  • • 功能完善性

  • • 是否支持多种协议

  • • 是否支持团队协作

  • • 问题定位

  • • 测试报告

  • • 维护性

  • • 等等

上面我们列举了这么多考虑点,肯定大部分情况下不会考虑这么多方面, 这些全部考虑时是在部门及公司层面做接口自动化时才需要多方面考虑,下面我们说下日常工作怎么选择:

  • • 日常项目的接口测试:主要是对新项目的接口进行详细的测试功能,这种情况下,大部分公司都是功能业务、性能方面的测试, 目前大部分公司都是使用 PostManJmeter,或者使用公司现有的测试平台

  • • 接口自动化:这个主要需要从项目时间团队技术水平维护性问题定位测试报告等方面 如果是小公司,需要快速看见效果,可以使用 Jmeter+Ant+Jenkins 去做,有条件的建议使用python+pytest+allure+jenkins 或者Java+Rest-Assured+TestNG

  • • Devops 工程:这个主要需要从效率团队协作灵活性易用性等方面考虑,这个时候需要结合整个产研流程中 的问题去考虑,怎么更好的提高产研流程效率、产品质量。

最后: 可以在我的VX公众号:【自动化测试老司机】免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

你可能感兴趣的:(测试工程师,软件测试,自动化测试,功能测试,数据库,自动化)