1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,接口测试概念、接口测试流程及接口测试原理,0,接口测试详解,The concept of iinterface test,interface test procedure and interface test operation steps.,接口测试怎么做?,接口测试做什么的?,一,二,00,疑问(学习目标),00,为什么要做接口测试?,前后端,移动端,由,来,不同段的进度不同,需要对最开始出来的接口进行接口测试,00,接口测试的优点?(接口测试给我们带来了哪些好处?),01,02,03,节约时间,缩短项
2、目时间,提高工作效率,提高系统的健壮性,目录,Contents,接口测试简介,接口测试工具,接口测试流程,02,延时符,5,2024/11/29 周五,01,接口测试概念,03,第一章,SECTION,延时符,6,2024/11/29 周五,接口的概念从,IT,的角度出发,主要是子模块或者子系统间交互并相互作用的部分。,虽然接口的形式各有不同,但是从测试角度来说,需要测试的内容大致是相同的,功能,性能,安全。,硬件的驱动程序,Webservice,接口,API,数据库系统的访问接口,http rest,接口,01,接口的概念,7,2024/11/29 周五,接口测试:测试系统间接口的一种测试,
3、测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点。,接口测试的概念,接口测试概念,01,8,原理,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。,01,接口测试原理,目的,测试接口的正确性和稳定性(持续集成是接口测试的核心),。,9,1)LoadRunner,:一款商业性能测试工具,用来做接口测试,很好很强大,2)Jmeter,:一款开源的性能测试工具,操作简单,方便,既有,jdbc request,操作数据库数据,也有,http request,和,
4、soap request,应对测试,3)poster,:火狐浏览器自带接口测试工具,插件中安装即可,界面简单明了,容易上手,。,4)postman,:谷歌浏览器的扩展工具,谷歌商店中选中安装,界面同,poster,差别不大,界面简洁,5)SoapUI,:开源测试工具,通过,soap/http,来检查、调用、实现,Web Service,的功能,/,负载,/,符合性测试;该工具既可作为一个单独的接口测试工具使用,也可利用插件集成到,Eclipse,,,maven2.X,,,Netbeans,和,intellij,中使用。,常用的接口测试工具,01,10,单一接口,组合接口,结构检查,接口测试应该
5、测什么?,01,11,接口测试应该测什么?,01,单一接口测试,主要测试的是输入输出值,一些具有业务意义的值需要特别测试(例如,,1,和,2,分别代表两个测试场景,那么就不能够把他们看成是等价类,需要分开测试,单一接口,12,接口测试应该测什么?,01,组合接口测试,主要是通过组合多个单一接口,来测试一个业务场景,Example,:测试购物网站的一个下单的功能,那么因为在下单之前还有一些流程,所以要测试一个场景。,测试:搜索商品,-,选中商品,-,添加进购物车,-,提交订单,-,支付,(提交订单时还涉及到地址的选取等),注:涉及到如果使用从,cookie,或者,session,在本例中的区别:
6、如果使用,cookie,加入购物车,那么换一台电脑购物车里的商品就不存在了,但如果使用的是,session,,购物车里面的东西就一直存在,即:,cookie,是本机作用的,,session,不止于本机作用,组合接口,13,接口测试应该测什么?,(,1,)检查返回值的结构是否正确,如是,json,类型还是,xml,类型的数据,(,2,)字段名称是否正确等,结构检查,01,14,调用方式,HTTP,调用,(注意:提交数据,一定使用,POST,方式,不能使用,GET,方式。),其他方式,参数格式校验,必选项检查,非必选项默认值,类型,取值范围,长度,全,/,半角、大,/,小写转换,。,返回结果,与需
7、求一致(返回码及返回字段)。,每种错误要有单独且明确的错误码。,01,接口测试内容,15,功能逻辑,路径测试,异常测试,其他异常场景,通过查数据库或缓存等验证数据是否处理正确。,通过其他辅助途径进行验证,03.,路径测试,当被测接口的实现方法中,判断逻辑复杂分支多,且判断中又调用了其他的接口,此时必须要进行路径覆盖测试。,02.,异常测试,接口测试中主要测试接口正常逻辑,但仅逻辑测试不能保证数据的安全及程序接口在异常情况下的逻辑处理的正确性。,04.,其他异常场景,研发的项目,有些项目是底层使用的系统,根据项目特点,可能会存在特殊的异常场景。,例如:,堵命令,支付的异步操作,支付消息重试等。,
8、01.,功能逻辑,01,接口测试内容,16,接口测试的依据,01,接口测试的依据,测试依据,-,需求规范(接口文档),资源评测,用画像,质量评测,用户反馈,接口文档包含如下内容:,1,、接口概述:,1,)接口名称,2,)接口功能,3,)接口类别,4,)提交者、提交时间、需求来源及时间要求,2,、,HTTP,请求方式,3,、认证说明,4,、请求限制说明,5,、请求参数说明,参数名、是否必选、类型、取值范围、描述(非必选项的默认值),6,、相关约束,7,、注意事项,8,、调用示例,9,、返回说明,1,)返回数据格式,2,)返回结果示例,3,)错误代码及返回说明,17,可以通过开发脚本代码进行测试。
9、,可以通过开源免费的接口调用调试工具测试或者自动化工具,如,:Postman,,,jmeter,等。,可以通过,App,手动测试,结合抓包工具分析,如,:Fillder/Charles,等。,01,接口测试内容,18,11,02,常见的接口测试及接口测试流程,第二章,SECTION,延时符,19,2024/11/29 周五,常见的接口测试,02,我们常说的接口一般指,2,种,1,),API,:应用程序编程接口,application,2,),GUI,:图形用户界面(接口),这里我们主要说,API,接口测试,20,思路,01,02,03,04,Get,方式是从服务器上获取数据;在做数据查询时,建
10、议用,Get,方式;如:公共服务部五大服务接口、搜索接口、博客访客系统接口等,。,Post,方式是向服务器传送数据;在做数据添加、修改或删除时,建议用,Post,方式;如:微博图片上传图片接口、,Picself API,接口等,。,这个方法比较少见。HTML表单也不支持这个。本质上来讲,PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。,Delete:删除某一个资源。基本上这个也很少见。,02,接口传递数据的方式(接口的分类),21,不同接口类型差异,02,参数提交方式,请求数据大
11、小,post-,:,webform,大,Get,:服务器,小,安全性,Post,安全,Get,相对不安全,22,模块接口测试是单元测试的基础。它主要测试模块的调用与返回,例如:,package com.java.base;,public class InterfaceTest,/,求两个整数相加的和,public static int add(int a,int b),return a+b;,public static void main(String args),/,测试整数相加,int resule=add(1,2);,if(resule=3),System.out.println(suc
12、cess!);,else,System.out.println(fail!);,模块接口测试,02,模块接口测试,02,23,流程惹的祸,02,有一天,领导嘱咐我让我做一下支付接口是否正确?给了我一整天的时间。我当时挺高兴的,想这不就是下个订单,支付一下吗?很简单,第二天,我还没到公司,领导就来电话了(无法下单),问昨天的接口测试了没有?如果测试了,把你的测试用例和测试数据发过来看看。我当时就傻眼了!,24,接口测试流程,02,02,25,为什么要讲接口测试流程,02,02,熟悉接下来要,干的事情,面试用,掌握,基础知识,26,接口测试流程,02,02,和黑盒测试流程相同,27,11,03 h
13、ttp,请求,第二章,SECTION,延时符,28,2024/11/29 周五,http,请求的组成,03,http,01,02,03,HTTP(HyperText Transfer Protocol),是一套计算机通过网络进行通信的规则。,HTTP,遵循请求,(Request)/,应答,(Response),模型。,Web,浏览器向,Web,服务器发送请求,,Web,服务器处理请求并返回适当的应答。,请求正文,请求行,消息报头,http,请求的组成,03,http,请求的组成,03,GET/index.html HTTP/1.1,,,请求行是请求消息的第一行,由三部分组成:分别是请求方法(,
14、GET/POST/DELETE/PUT/HEAD,)、请求资源的,URI,路径、,HTTP,的版本号,请求行,请求头中的信息有和缓存相关的头(,Cache-Control,,,If-Modified-Since,)、客户端身份信息(,User-Agent,)等等。例如:,Cache-Control:max-age=0,Cookie:gsScrollPos=;_ga=GA1.2.329038035.1465891024;_gat=1,User-Agent:Mozilla/5.0(Windows NT 10.0;WOW64)AppleWebKit/537.36(KHTML,like Gecko)C
15、hrome/51.0.2704.84 Safari/537.36,请求体是客户端发给服务端的请求数据,这部分数据并不是每个请求必须的。,请求正文,请求头,消息报头,思路,get,Post,Put,Delete,Get,方式是从服务器上获取数据;在做数据查询时,建议用,Get,方式;如:搜索接口、博客访客系统接口等,。,Post,方式是向服务器传送数据;在做数据添加、修改时,建议用,Post,方式;如:微博图片上传图片接口等,。,PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。,D
16、elete:删除某一个资源。基本上这个也很少见。,03,接口传递数据的方式,32,03,Http,响应格式,响应正文,状态行,消息报头,33,http,响应,03,状态行位于响应消息的第一行,有,HTTP,协议版本号,状态码和状态说明三部分构成。如,:,HTTP/1.1 200 OK,状态行,消息报头服务器传递给客户端用于说明服务器的一些信息,以及将来继续访问该资源时的策略。,是服务端返回给客户端的,HTML,文本内容,或者其他格式的数据,比如:视频流、图片或者音频数据。,响应正文,消息报头,状态响应码,03,1xx,指示信息,-,表示请求已接收,继续处理,3XX,重定向,-,要完成请求必须进
17、行更进一步的操作,5XX,服务器端错误,-,服务器未能实现合法的请求,2XX,成功,-,表示请求已被成功接收、理解、接受,4XX,客户端错误,-,请求有语法错误或请求无法实现,状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值,1,401 Unauthorized/,请求未经授权,这个状态代码必须和,WWW-Authenticate,报头域一起使用,400 Bad Request/,客户端请求有语法错误,不能被服务器所理解,403 Forbidden/,服务器收到请求,但是拒绝提供服务,500 Internal Server Error/,服务器发生不可预期的错误,200 O
18、K/,客户端请求成功,常见状态代码,03,2,3,4,5,6,7,404 Not Found/,请求资源不存在,,eg,:输入了错误的,URL,503 Server Unavailable/,服务器当前不能处理客户端的请求,一段时间后可能恢复正常,11,04,接口文档与接口测试用例,第二章,SECTION,延时符,37,2024/11/29 周五,接口测试流程中的重点是什么?,04,测试用例!,38,2024/11/29 周五,为什么要设计测试用例?,04,(一),理清思路,避免漏测,(,二,),提高测试效率,(,三,),跟进测试进度,(,四,),告诉领导做过,没有理清思路,就进行随机测试,在
19、以后你会发现你一定有漏测的情况出现(一些关键的业务点),那么上线后难免会出现一些,bug,当我们有了思路,后面就只需要按照这样的思路去测试就好了,这样的效率将会很高,当领导问你进度时,你就能很方便的知道自己已经做了多少,还剩下多少,如果项目上线了,出现了问题,追究责任的时候,如何避免这个问题呢?通过用例体现这个问题,(,五,),跟进重复性工作,如果让你大量的重复的去做一件事情,你能保证你做的一样吗?但是根据用例,就不会出现漏测的情况,39,2024/11/29 周五,用例设计,04,功能,逻辑业务,异常,安全,40,2024/11/29 周五,用例设计,-,功能用例设计,04,01,02,验证
20、功能是否实现了。,功能是否正常,以登录为例,如果接口文档中写的是,loginname,,开发却将参数写成了,username,,虽然接口实现了,也是不对的,功能是否按照接口文档实现,41,2024/11/29 周五,用例设计,-,逻辑业务,04,01,下单,首先要验证过是否登陆成功,,header,是否有业务依赖,42,2024/11/29 周五,将参数或数据值修改为关键字,如,echo,,,null,关键字数据,数据为空,如输入不存在的用户名密码,错误数据,长度不一致,用例设计,-,异常用例设计,04,参数异常,数据异常,1,2,将参数或数据值修改为关键字,如,echo,关键字参数,参数为空,如,loginname-username,,,password-pwd,错误参数,多、少参数,数据表在创建时,字段都有长度限制,43,2024/11/29 周五,用例设计,-,安全用例设计,04,如下单或有逻辑业务依赖时,(一),cookie,(,二,),headers,移动端的接口测试中应用到,(,三,),唯一识别码,44,2024/11/29 周五,PPT,模板下载:,PPT,素材下载:,PPT,图表下载:,PPT,教程:,Excel,教程:,PPT,课件下载:,PPT,论坛:,谢谢,接口测试总结,