常见接口类型
• 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代码
从哪些方面考虑选择接口测试工具
首先我们要了解本次测试的目的是什么,才能去选择对应的测试工作,否则事倍功半。我们可以从下面几个方面去考虑:
• 项目紧急程度
• 项目时间
• 接口类型
• 测试目的
• 效率
• 环境
• 团队技术水平
• 成本
• 易用性
• 灵活性
• 功能完善性
• 是否支持多种协议
• 是否支持团队协作
• 问题定位
• 测试报告
• 维护性
• 等等
上面我们列举了这么多考虑点,肯定大部分情况下不会考虑这么多方面, 这些全部考虑时是在部门及公司层面做接口自动化时才需要多方面考虑,下面我们说下日常工作怎么选择:
• 日常项目的接口测试:主要是对新项目的接口进行详细的测试功能,这种情况下,大部分公司都是功能业务、性能方面的测试, 目前大部分公司都是使用 PostMan、Jmeter,或者使用公司现有的测试平台
• 接口自动化:这个主要需要从项目时间、团队技术水平、维护性、问题定位、测试报告等方面 如果是小公司,需要快速看见效果,可以使用 Jmeter+Ant+Jenkins 去做,有条件的建议使用python+pytest+allure+jenkins 或者Java+Rest-Assured+TestNG
• Devops 工程:这个主要需要从效率、团队协作、灵活性、易用性等方面考虑,这个时候需要结合整个产研流程中 的问题去考虑,怎么更好的提高产研流程效率、产品质量。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。