开发口中的接口是什么?相信大部分听到“接口”这个词的测试同学都起源于开发同学。书中标准的接口定义称为Interface。在JAVA编程语言中,接口是一种抽象类型,是抽象方法的集合。接口通常被声明为接口。一个类实现了接口,通过implements关键字重写接口中的抽象方法。例如:interfaceAnimal{publicvoideat();publicvoidtravel();}classCatimplementsAnimal{publicvoidat(){//TODOAuto-generatedmethodstub}publicvoidtravel(){//TODOAuto-generatedmethodstub}}在实际工作中,开发者经常讲的是接口,其实并不是一个理论上的接口,但通常体现在以下两种方式:1.是http请求。例如:http://host:port/getAllPeople这个请求是一个接口。当您发送此url时,它将从收到的服务器请求中发送。服务器的核心代码是有一个方法判断url是什么,如果匹配到getAllPeople,则调用相关方法,如getAllPeople(){//具体实现代码}2.不是通过http请求,直接调用方法getAllPeople(){//具体实现代码}对于我们测试人员来说,最关心的是第一种方法,即通过http请求调用后端服务代码,因为测试的代码同学比较弱,通过代码调用直接测试接口比较困难High,另外很多公司的研发代码都是绝对保密的,研发团队以外的人很难获取代码。为什么近几年接口测试如此火爆?传统的开发模式,从过去的瀑布式转变为今天的敏捷式;随着移动互联网的普及,用户页面需求变化频繁,但服务器接口相对稳定;随着微服务的兴起,很多服务已经没有了测试人员可以点击的UI,我们只能测试服务端的接口。常见接口类型HTTP接口、RPC接口、WebService接口、Dubble接口、RESTful接口,其中RESTful接口是基于HTTP接口的,WebService和Dubble属于RPC接口。目前HTTP接口是最核心、应用最广泛的接口!接口测试的核心测试点检查接口参数是否满足要求(边界、业务规则)检查接口返回数据的正确性和格式检查接口覆盖率是否满足要求(一般核心接口是要求达到100%测试率,非核心接口基于)性能指标是否满足要求(接口响应时间、处理能力)安全指标是否满足要求(一般接口不会暴露在互联网上)并且任意调用,需要做一些限制,比如鉴权或者身份验证。)接口测试相对于UI测试的优势1.接口测试相对容易实现自动化持续集成,相对于UI自动化来说相对稳定2.测试可以是前面涉及到(具体时间点应该是后台界面开发基本都在之后完成,需要模块间接口联调时)3.可以发现服务端功能测试无法覆盖的问题。接口测试四步骤1、确认接口文件的准确性,这是接口测试通过与否的标准。2.准备接口测试数据。3.构建界面代码。选择javahttpclientjar包或者pythonrequests模块工具选择postman、jmeter等。4.验证接口请求。成功调用接口后,获取接口的响应数据,根据接口文档判断接口测试是否通过。接口测试必备知识点。了解OSI网络模型、TCP/UDP协议,掌握HTTP/HTTPS协议,了解RPC、WebService和REST,了解Session和Cookie;掌握常用的接口测试工具Postman、Jmeter、SoupUI等;掌握Chrome开发者工具、Fiddler、Wireshark等基本抓包工具;掌握一门编程语言Python或Java;了解Nginx、Apache、Tomcat等服务器中间件;掌握基本的数据库查询命令,以及检查响应结果的Redis操作;掌握基本的Linux日志查询和过滤命令。综上所述,其实接口测试进行的顺利与否,技术并不占主要因素(核心技术就是我讲的,懂了就可以搞接口测试了)。我个人认为沟通是接口测试成败的核心,因为接口测试的开发和接口文档的编写需要开发人员的大量配合,这就需要沟通能力了!(通讯问题不在本文讨论范围内)
