接口测试 订阅
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 展开全文
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
信息
定    义
测试系统组件间接口
有关术语
接口
方    法
边界值法,等价类法
中文名
接口测试
外文名
Interface Testing
领    域
软件工程
接口测试简介
接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。针对软件接口的分类一般有如下几种情况:1)系统与系统之间的调用,如微信向用户提供统一的对外接口,程序员调用接口完成基于微信的小程序等;2)同一系统内部上层服务对下层服务的调用,如一个软件程序一般分为表示层,业务层和数据层,表示层调用业务层的接口来完成自己的工作,而业务层又会调用数据层的接口来实现相应的业务等。其以保证系统的正确和稳定为核心,重要性主要体现为以下几个方面:(1)能够提早发现 bug,符合质量控制前移的理念。(2)接口测试低成本高效益,因为接口测试可以自动化并且是持续集成的。(3)接口测试从用户的角度对系统接口进行全面检测。实际项目中,接口测试会覆盖一定程度的业务逻辑 [1]  。
收起全文
精华内容
参与话题
问答
  • Postman接口测试

    千人学习 2019-11-29 17:24:51
    Postman接口测试,内容包括:如何发送请求,分析响应,创建集合,运行集合,编写自动化测试脚本,管理环境和全局变量,生成api文档,监控接口,创建虚拟服务器。
  • 什么是接口测试?怎样做接口测试

    万次阅读 多人点赞 2018-08-20 11:17:31
    扫盲内容: 1.什么是接口? 2.接口都有哪些类型?...接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议...

    扫盲内容:

    1.什么是接口?

    2.接口都有哪些类型?

    3.接口的本质是什么?

    4.什么是接口测试?

    5.问什么要做接口测试?

    6.怎样做接口测试?

    7.接口测测试点是什么?

    8.接口测试都要掌握哪些知识?

    9.其他相关知识?

    1.什么是接口?

    接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。

    2.接口都有哪些类型?

    接口一般分为两种:1.程序内部的接口 2.系统对外的接口

    系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。

    程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。

    接口的分类:1.webservice接口 2.http api接口

    webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。

    http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。

    json是一种通用的数据类型,所有的语言都认识它。(json的本质是字符串,他与其他语言无关,只是可以经过稍稍加工可以转换成其他语言的数据类型,比如可以转换成Python中的字典,key-value的形式,可以转换成JavaScript中的原生对象,可以转换成java中的类对象等。)

    3.接口的本质及其工作原理是什么?

    接口你可以简单的理解他就是URL,工作原理就会说URL通过get或者post请求像服务器发送一些东西,然后得到一些相应的返回值,本质就是数据的传输与接收。

    4.什么是接口测试?

    接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

                  –百度百科

    简答的说就是通过URL像服务器或者其他模块等,传输我们想传输的数据,然后看看他们返回的是不是我们预期想要的。

    5.问什么要做接口测试?

       1.越底层发现bug,它的修复成本是越低的。

       2.前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。

       3.检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。

     4.如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。

     5. 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

     6.   现在很多系统前后端架构是分离的,从安全层面来说:

            (1)、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

            (2)、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

    6.怎样做接口测试?

    –由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。

    –也可以用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。

    7.接口测测试点是什么?

    目的:测试接口的正确性和稳定性;

    原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;

    重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;

    核心:持续集成是接口测试的核心;

    优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);

    用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);

    PS:设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能;

        问题1.1、后端接口都测试什么?

      –回答这个问题,我们可以从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容:

    问题2、后端接口测试一遍 ,前端也测试一遍,是不是重复测试了?

      –回答这个问题,我们可以直接对比接口测试和app端测试活动的内容,如下图为app测试时需要覆盖或考虑内容:

       从上面这两张图对比可以看出,两个测试活动中相同的部分有功能测试、边界分析测试和性能测试,其它部分由于各自特性或关注点不同需要进行特殊的测试,在此不做讨论。接下来我们针对以上三部分相同的内容再进行分析:

    1、基本功能测试:

      由于是针对基本业务功能进行测试,所以这部分是两种测试重合度最高的一块,开发同学通常所指的也主要是这部分的内容。

    2、边界分析测试:

      在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分(比如业务规则的边界)。但是,前端的输入输出很多时候都是提供固守的值让用户选择(如下拉框),在这种情况下测试的边界范围就非常有限,但接口测试就不存在这方面的限制,相对来说接口可以覆盖的范围更广,同样的,接口出现问题的概率也更高。

     3、性能测试:

      这个比较容易区分,虽然都需要做性能测试,但关注点确大不相同。App端性能主要关注与手机相关的特性,如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用情况等。两种测试时的策略和方法都有很大区别,所以这部分内容是需要分开单独进行测试的,理论上来说这也是不同的部分。

     

    综论:

          1、接口测试和app测试的活动有部分重复的内容,主要集中在业务功能测试方面。除此之外,针对各自特性的测试都不一样,需要分别进行有针对性的测试,才能确保整个产品的质量。

      2、接口测试可以关注于服务器逻辑验证,而UI测试可以关注于页面展示逻辑及界面前端与服务器集成验证

    3、接口测试持续集成:

          对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:

      a) 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

      b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等

      c) 问题定位:报错信息、日志更精准,方便问题复现与定位。

      d) 结果校验:加强自动化校验能力,如数据库信息校验。

      e) 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。

      f) 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。

     

    4、接口测试质量评估标准:

      a) 业务功能覆盖是否完整

      b) 业务规则覆盖是否完整

      c) 参数验证是否达到要求(边界、业务规则)

      d) 接口异常场景覆盖是否完整

      e) 接口覆盖率是否达到要求

      f)  代码覆盖率是否达到要求

      g) 性能指标是否满足要求

      h) 安全指标是否满足要求

    8.接口测试都要掌握哪些知识?

    ①了解系统及内部各个组件之间的业务逻辑交互;

    ②了解接口的I/O(input/output:输入输出);

    ③了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;

    ④常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;

    ⑤数据库基础操作命令(检查数据入库、提取测试数据等);

    ⑥常见的字符类型,比如:char、varchar、text、int、float、datatime、string等;

     

    如何学这些技能?

    ①系统间业务交互逻辑:通过需求文档、流程图、思维导图、沟通等很多渠道和方式;

    ②协议:推荐《图解http》这本书,内容生动,相对算是入门级的书籍,其他的还有《图解tcp、IP》等;

    ③接口测试工具:百度这些工具,然后你会发现,好多的教学博客、相关问题解决方案、以及一些基于工具的书籍,当然,选择合适的书很重要;

    ④数据库操作命令:学习网站(W3C菜鸟教程)、教学博客,以及一些数据库相关书籍,入门级推荐:《mysql必知必会》、《oracle PL/SQL必知必会》等

    ⑤字符类型:还是百度,有句话这么说:内事不决问百度,外事不决问Google。。。

     

     如何获取接口相关信息?

    一般的企业,都会由开发或者对应的技术负责人员编写接口文档,里面会注明接口相关的地址、参数类型、方法、输入、输出等信息,如果没有,想办法获取。。。

    接口文档八要素:

    封面:封面最好是本公司规定的封面,有logo,内容标题,版本号,公司名称,文档产生日期;

    修订历史:表格形式较好些,包括:版本、修订说明、修订日期、修订人、审核时间审核人等;

    接口信息:接口调用方式,常用的GET/POST方式,接口地址;

    功能描述:简洁清晰的描述接口功能,比如:接口获取的信息不包括哪些;

    接口参数说明:每个参数都要和实际中调用的一样,包括大小写;参数的含义言简意赅的说明,格式,是string 还是int 还是long等格式;

                说明部分,说明参数值是需要哪里提供,并详细说明参数怎么生成的,例如时间戳,是哪个时间段的,参数是否必填,一些参数是必须要有的,有些是可选参数等;

    返回值说明:

    ①最好有一个模板返回值,并说明每个返回参数的意义;

    ②提供一个真实的调用接口,真实的返回值;

    调用限制,安全方面:

    加密方式,或者自己公司一个特殊的加密过程,只要双方采用一致的加密算法就可以调用接口,保证了接口调用的安全性,比如常见的md5;

    文档维护:文档在维护的时候,如有修改一定要写上修改日期,修改人,对大的修改要有版本号变更;

    9.其他相关知识?

    get请求,post请求的区别:

    1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
    2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
    3、POST比GET安全,因为数据在地址栏上不可见。
    4、一般get请求用来获取数据,post请求用来发送数据。
    其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。(唯一区别就是这一点,上面3点区别都是不准确的)

    http状态码:

    1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
    2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了。
    3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面。
    4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果。

    webservice接口怎么测试:

    它不需要你在拼报文了,会给一个webservice的地址,或者wsdl文件,直接在soapui导入,就可以看到这个webservice里面的所有接口,也有报文,直接填入参数调用,看返回结果就可以了。
    天气预报wsdl地址:http://www.webservicex.net/globalweather.asmx?wsdl

     

    cookie与session的区别:

    1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

    2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗

    考虑到安全应当使用session。

    3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

    考虑到减轻服务器性能方面,应当使用cookie。

    4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

    5、所以个人建议:

    将登陆信息等重要信息存放为session
    其他信息如果需要保留,可以放在cookie中

    展开全文
  • 接口测试流程及测试点

    万次阅读 多人点赞 2018-03-05 16:23:23
    什么情况下开展接口测试?1.项目处于开发阶段,前后端联调接口是否请求的通?(对应数据库增删改查)--开发自测2.有接口需求文档,开发已完成联调(可以转测),功能测试展开之前3.专项测试:如测流量大小,查看图片...

    什么情况下开展接口测试?

    1.项目处于开发阶段,前后端联调接口是否请求的通?(对应数据库增删改查)--开发自测

    2.有接口需求文档,开发已完成联调(可以转测),功能测试展开之前

    3.专项测试:如测流量大小,查看图片压缩大小,测试接口请求响应时间

    4.版本上线前,进行整体回归测试,查看接口是否有异常(如404等)。对准备上线的版本进行抓包,查看服务器地址是都正确

    5.版本功能稳定后,接口自动化

    6.还可以应用在安全测试,性能测试领域等。。

    根据接口文档进行测试

    功能:

    发送信息HTTP请求方式:GET/POST请求 URL  http://localhost:8080/sms/mt.jsp?cpName=用户账号&cpPwd=用户密码&phones=号码&msg=内容


    返回结果:

    参数名称    类型      描述返回描述    String    发送成功返回0,如果发送不成功,则返回“ERROR&&对应的错误信息”

    接口测试用例设计

    接口测试是无界面的功能测试,设计用例思路跟功能测试一样(只是一个注重的是测前端页面,一个注重的是测后端接口)

    1.输入参数测试: 针对输入的参数进行测试,也可以说是假定接口参数的不正确性进行的测试,确保接口对任意类型的输入都做了相应的处理:输入参数合法,输入参数不合法,输入参数为空,输入参数为null,输入参数超长;

    2.功能测试:接口是否满足了所提供的功能,相当于是正常情况测试

    3.异常场景,如:请求超时、快速连续点击、请求失败情况(任务型的,失败后是否可以重新下发任务)

    流量分析

    APP测试会非常关注流量这块

    比如你登录app账号时候,上传一个5M左右图片作为头像,看会不会压缩到100k以下


    弱网测试

    使用工具对网络进行限制,看接口数据返回情况


    展开全文
  • 接口测试全流程

    万次阅读 多人点赞 2018-05-28 11:16:07
    1.什么是接口? 2.接口都有哪些类型? 3.接口的本质是什么? 4.... 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些...
    转载自http://www.51testing.com/html/53/15150753-3726770.html          
               1.什么是接口? 
           2.接口都有哪些类型?
      3.接口的本质是什么?
      4.什么是接口测试?
      5.问什么要做接口测试?
      6.怎样做接口测试?
      7.接口测测试点是什么?
      8.接口测试都要掌握哪些知识?
      9.其他相关知识?
      1.什么是接口?
      接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。
      2.接口都有哪些类型?
      接口一般分为两种:1.程序内部的接口 2.系统对外的接口
      系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
      程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
      接口的分类:1.webservice接口 2.http api接口
      webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。
      http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
      json是一种通用的数据类型,所有的语言都认识它。(json的本质是字符串,他与其他语言无关,只是可以经过稍稍加工可以转换成其他语言的数据类型,比如可以转换成Python中的字典,key-value的形式,可以转换成JavaScript中的原生对象,可以转换成java中的类对象等。)
      3.接口的本质及其工作原理是什么?
      接口你可以简单的理解他就是URL,工作原理就会说URL通过get或者post请求像服务器发送一些东西,然后得到一些相应的返回值,本质就是数据的传输与接收。
      4.什么是接口测试?
      接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
      简答的说就是通过URL像服务器或者其他模块等,传输我们想传输的数据,然后看看他们返回的是不是我们预期想要的。
      5.问什么要做接口测试?
         1.越底层发现bug,它的修复成本是越低的。
         2.前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。
         3.检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。
       4.如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
       5. 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
       6.   现在很多系统前后端架构是分离的,从安全层面来说:
              (1)、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
              (2)、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
      6.怎样做接口测试?
      --由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
      --也可以用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。
      7.接口测测试点是什么?
      目的:测试接口的正确性和稳定性;
      原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;
      重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;
      核心:持续集成是接口测试的核心;
      优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);
      用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);
      PS:设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能;
      问题1.1、后端接口都测试什么?
        --回答这个问题,我们可以从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容:

     
      问题2、后端接口测试一遍 ,前端也测试一遍,是不是重复测试了?
        --回答这个问题,我们可以直接对比接口测试和app端测试活动的内容,如下图为app测试时需要覆盖或考虑内容:

     
       从上面这两张图对比可以看出,两个测试活动中相同的部分有功能测试、边界分析测试和性能测试,其它部分由于各自特性或关注点不同需要进行特殊的测试,在此不做讨论。接下来我们针对以上三部分相同的内容再进行分析:
      1、基本功能测试:
      由于是针对基本业务功能进行测试,所以这部分是两种测试重合度最高的一块,开发同学通常所指的也主要是这部分的内容。
      2、边界分析测试:
      在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分(比如业务规则的边界)。但是,前端的输入输出很多时候都是提供固守的值让用户选择(如下拉框),在这种情况下测试的边界范围就非常有限,但接口测试就不存在这方面的限制,相对来说接口可以覆盖的范围更广,同样的,接口出现问题的概率也更高。
      3、性能测试:
      这个比较容易区分,虽然都需要做性能测试,但关注点确大不相同。App端性能主要关注与手机相关的特性,如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用情况等。两种测试时的策略和方法都有很大区别,所以这部分内容是需要分开单独进行测试的,理论上来说这也是不同的部分。 
      综论:
      1、接口测试和app测试的活动有部分重复的内容,主要集中在业务功能测试方面。除此之外,针对各自特性的测试都不一样,需要分别进行有针对性的测试,才能确保整个产品的质量。
      2、接口测试可以关注于服务器逻辑验证,而UI测试可以关注于页面展示逻辑及界面前端与服务器集成验证
      3、接口测试持续集成:
      对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:
        a) 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。
        b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等
        c) 问题定位:报错信息、日志更精准,方便问题复现与定位。
        d) 结果校验:加强自动化校验能力,如数据库信息校验。
        e) 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。
        f) 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。
      4、接口测试质量评估标准:
        a) 业务功能覆盖是否完整
        b) 业务规则覆盖是否完整
        c) 参数验证是否达到要求(边界、业务规则)
        d) 接口异常场景覆盖是否完整
        e) 接口覆盖率是否达到要求
        f)  代码覆盖率是否达到要求
        g) 性能指标是否满足要求
        h) 安全指标是否满足要求
      8.接口测试都要掌握哪些知识?
      ①了解系统及内部各个组件之间的业务逻辑交互;
      ②了解接口的I/O(input/output:输入输出);
      ③了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;
      ④常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;
      ⑤数据库基础操作命令(检查数据入库、提取测试数据等);
      ⑥常见的字符类型,比如:char、varchar、text、int、float、datatime、string等;  
      如何学这些技能?
      ①系统间业务交互逻辑:通过需求文档、流程图、思维导图、沟通等很多渠道和方式;
      ②协议:推荐《图解http》这本书,内容生动,相对算是入门级的书籍,其他的还有《图解tcp、IP》等;
      ③接口测试工具:百度这些工具,然后你会发现,好多的教学博客、相关问题解决方案、以及一些基于工具的书籍,当然,选择合适的书很重要;
      ④数据库操作命令:学习网站(W3C、菜鸟教程)、教学博客,以及一些数据库相关书籍,入门级推荐:《mysql必知必会》、《oracle PL/SQL必知必会》等
      ⑤字符类型:还是百度,有句话这么说:内事不决问百度,外事不决问Google。。。
       如何获取接口相关信息?
      一般的企业,都会由开发或者对应的技术负责人员编写接口文档,里面会注明接口相关的地址、参数类型、方法、输入、输出等信息,如果没有,想办法获取。。。
      接口文档八要素:
      封面:封面最好是本公司规定的封面,有logo,内容标题,版本号,公司名称,文档产生日期;
      修订历史:表格形式较好些,包括:版本、修订说明、修订日期、修订人、审核时间审核人等;
      接口信息:接口调用方式,常用的GET/POST方式,接口地址;
      功能描述:简洁清晰的描述接口功能,比如:接口获取的信息不包括哪些;
      接口参数说明:每个参数都要和实际中调用的一样,包括大小写;参数的含义言简意赅的说明,格式,是string 还是int 还是long等格式;
                  说明部分,说明参数值是需要哪里提供,并详细说明参数怎么生成的,例如时间戳,是哪个时间段的,参数是否必填,一些参数是必须要有的,有些是可选参数等;
      返回值说明:
      ①最好有一个模板返回值,并说明每个返回参数的意义;
      ②提供一个真实的调用接口,真实的返回值;
      调用限制,安全方面:
      加密方式,或者自己公司一个特殊的加密过程,只要双方采用一致的加密算法就可以调用接口,保证了接口调用的安全性,比如常见的md5;
      文档维护:文档在维护的时候,如有修改一定要写上修改日期,修改人,对大的修改要有版本号变更;
      9.其他相关知识?
      get请求,post请求的区别:
      1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
      2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
      3、POST比GET安全,因为数据在地址栏上不可见。
      4、一般get请求用来获取数据,post请求用来发送数据。
      其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。(唯一区别就是这一点,上面3点区别都是不准确的)
      http状态码:
      1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
      2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了。
      3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面。
      4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果。
      webservice接口怎么测试:
      它不需要你在拼报文了,会给一个webservice的地址,或者wsdl文件,直接在soapui导入,就可以看到这个webservice里面的所有接口,也有报文,直接填入参数调用,看返回结果就可以了。
      天气预报wsdl地址:http://www.webservicex.net/globalweather.asmx?wsdl   
      cookie与session的区别:
      1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
      2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗
      考虑到安全应当使用session。
      3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
      考虑到减轻服务器性能方面,应当使用cookie。
      4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
      5、所以个人建议:
      将登陆信息等重要信息存放为session
      其他信息如果需要保留,可以放在cookie中
    展开全文
  • 使用Jmeter进行接口测试

    万人学习 2019-02-28 09:58:54
    本课程主要讲解使用jmeter进行接口测试。课程分为三大部分: HTTP请求/响应报文结构,该部分主要是在接口测试前,需要了解HTTP请求、响应主要包含哪些?对HTTP有一个大题的认识。 Fiddler工具使用,...
  • 接口测试详细讲解

    千次阅读 2019-04-19 15:19:37
    超详细——接口测试总结与分享  金字塔模型回顾  金字塔模型  通过之前对金字塔结构的学习,大概了解到了金字塔模型想告诉我们的几个道理:  1.越底层,越稳定。  金字塔主要观点认为单元测试的稳定性高...

    转载别人的,Mark一下

     

    超详细——接口测试总结与分享

      金字塔模型回顾

      金字塔模型

      通过之前对金字塔结构的学习,大概了解到了金字塔模型想告诉我们的几个道理:

      1.越底层,越稳定。

      金字塔主要观点认为单元测试的稳定性高,需要多投入。

      2.越底层,越高效。

      程序的问题,最终还得落在具体的代码上,所以底层的测试更容易发现问题。

      3.越底层,越低成本。

      越底层测试能越早发现问题,越早发现问题,修复的成本自然越低。

      4.越底层,越难实施。

      越底层的实现对技术专业性要求越高,这点跟第三点有点矛盾,往往越专业的人才也意味着人力成本越高。

      综合下金字塔模型,我们提出了橄榄模型(不倒翁模型),拿接口测试和UI层测试以及单元测试做了比较,最终认定接口(API)测试可以获得较高的投资回报。

      橄榄模型

      接口测试

      什么是接口(API)

      API全称Application Programming Interface,这里面我们其实不用去关注AP,只需要I上就可以。一个API就是一个Interface。我们无时不刻不在使用interfaces。我们乘坐电梯里面的按钮是一个interface。我们开车一个踩油门它也是一个interface。我们计算机操作系统也是有很多的接口。(这是目前个人找到比较好理解的一段解释)

      接口就是一个位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节。那我们今天要讲的Web API就是这么一类东西。像谷歌搜索系统,它提供了搜索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口,我们就可以达到登录系统的目的。

      现在市面上有非常多种风格的Web API,目前最流行的是也容易访问的一种风格是REST或者叫RESTful 风格的API。从现在开始,以下我提到的所有API都是指RESTful风格的API。

      什么是接口测试和为什么要做接口测试

      接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

      现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

      如今系统越来越复杂,传统的靠前端测试已经大大降低了效率,而且现在我们都推崇测试前移,希望测试能更早的介入测试,那接口测试就是一种及早介入的方式。例如传统测试,你是不是得等前后端都完成你才能进行测试,才能进行自动化代码编写。 而如果是接口测试,只需要前后端定义好接口,那这时自动化就可以介入编写接口自动化测试代码,手工测试只需要后端代码完成就可以介入测试后端逻辑而不用等待前端工作完成。

      接口测试的策略

      接口测试也是属于功能测试,所以跟我们以往的功能测试流程并没有太大区别,测试流程依旧是:1.测试接口文档(需求文档) 2.根据接口文档编写测试用例(用例编写完全可以按照以往规则来编写,例如等价类划分,边界值等设计方法) 3. 执行测试,查看不同的参数请求,接口的返回的数据是否达到预期。

      接口测试点

      image.png

      来个实例

      假如我们现在拿到了如下的一个接口文档(豆瓣图书开源API:https://developers.douban.com/wiki/?title=book_v2)

      image.png

      从文档中我们可以大体知道这个接口的一些信息,例如接口是GET请求,请求协议是https,请求的接口服务器地址是api.douban.com,接口的路径是/v2/book/search,接口可以带有四个参数q(查询的关键字),tag(查询的tag),start(取结果的offset),count(取结果的条数),如果接口请求正常返回状态200,返回大体如下结果:

      {

            "start": 0,

            "count": 10,

            "total": 30,

            "books" : [Book, ]

          }

      假设这个文档是完善的(个人认为开发文档还可以把参数类型写上)这时我们根据这个文档,我们设计了如下一个测试用例:

      用q=自动化测试,start=0,count=1作为参数请求搜索图书接口,那么接口请求的状态码应该是200,reponse应该返回count=1,start=0等等。

      最后我们去执行测试用例,假设我现在没有别的接口测试用例工具,我们就通过浏览器来测试这个GET请求的接口,那么我就可以在浏览器低质栏输入:https://api.douban.com/v2/book/search?q=自动化测试&start=0&count=1,并判断返回信息是否有误。

      image.png

      JSONView 引入

      我们发现直接从Chrome打开我们的查询图书的接口请求,返回的 数据为JSON格式,但是浏览器显示排版难以阅读,这时我们可以考虑安装一些插件来便于我们阅读,例如JSONView插件:

      https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc 。插件安装完后我们再次请求搜索图书接口,我们看到格式化后的排版:

      image.png

      当然类似的格式化JSON的插件工具非常多,可以自己找个喜欢方便的便可。

      Postman 引入

      我们刚刚通过浏览器来测试我们的一个GET请求的接口的一个测试用例,但是平时我们的接口请求方法除了GET还有POST,PUT,DELETE等等,那么浏览器毕竟不是专业的接口测试软件,而且它也无法测试POST这类型的的接口,那么我们就需要找一个专业的接口测试软件:Postman。

      Postman 的安装

      以前的Postman 除了mac版本都需要在Chrome的插件安装,但现在也推出Win和liunx的PC版,所以我们现在只需要到官方网站:https://www.getpostman.com/ 去根据自己的操作系统下载对应的版本便可。

      image.png

      首次使用

      建议去注册个账号,登录使用,可以不同电脑上方便数据同步。

      GET请求

      image.png

      POST 请求

      POST 请求例子,通过Postman 配置好请求方法,地址,参数后发起请求,最后如下:

      Post Demo

      也许你也有疑问,如果开发没有完备的接口文档,我如何知道他API的信息?

      这时我们就得通过一些抓包工具抓取这些API信息。

      常见抓包工具

      HTTP抓包工具:Fiddler、Charles、Firebug、开发者工具等等。。。

      Chrome开发者工具简单演示

      1.打开Chrome 浏览器,按下F12快捷打开Chrome开发者工具

      2.点击Network 标签

      3.勾选 Preserve log选项,确保页面刷新不会把已抓到的请求清空

      image.png

      4.打开网站首页,输入登录名和密码,点击登录

      5.查看开发者工具,可以找到如下图Login的请求接口

      image.png

      6.查看Login 请求的详细信息

      请求方法:POST

      请求的URL:http://test.logwing.com/Home/Login

      请求参数格式:Content-Type: application/x-www-form-urlencoded

      请求参数:UserName=XXX&Password=XXXX&CheckCode=&Remember=false&LoginCheckCode=7119

      请求结果类型:Content-Type: application/json; charset=utf-8

      请求结果:

     

      response

      更多关于Chrome开发者工具帮助中文帮助文档可以参考:https://github.com/CN-Chrome-DevTools/CN-Chrome-DevTools

      Fiddler

      Chrome开发者工具依赖于Chrome浏览器,也只能抓取Chrome浏览器发起的请求,如果我们想获取所有程序发起的请求,我们就可以通过Fiddler来抓取。

      简介

      Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有的“进出”的数据(我一般用来抓包),Fiddler还包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它可以支持众多的HTTP调试任务。

      工作原理

      Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler开启会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

      工作原理.png

      简单演示

      抓取http请求

      1.启动Fiddler。

      2.点击Fiddler主界面右下角的监听程序,选择ie浏览器则该系统上所有的浏览器发起的http请求都将被抓取。

      image.png

      3.打开chrome浏览器 ,打开官网首页,输入用户名密码登录。

      4.查看Fiddler主面板,可以查看到Login请求。

      5.查看Login请求的信息

      可以查看到跟Chrome插件查看到类似的信息。

      request\response

      请求参数


     

     

     

    http://www.51testing.com/html/46/n-3722746.html

    展开全文
  • 接口测试的测试点

    2020-11-12 09:53:21
    接口测试常用测试点 转载:https://www.cnblogs.com/fireporsche/p/9949805.html 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是...
  • 接口测试简介以及接口测试用例设计思路

    万次阅读 多人点赞 2018-09-07 11:50:27
    接口测试简介 1.什么是接口 接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能...
  • 超详细——接口测试总结与分享

    万次阅读 多人点赞 2018-09-23 21:47:43
     金字塔模型回顾  金字塔模型  通过之前对金字塔结构的学习,大概了解到了金字塔模型想告诉我们的几个道理:  1.... 金字塔主要观点认为单元测试... 程序的问题,最终还得落在具体的代码上,所以底层的测试...
  • 接口测试 | 接口测试入门

    万次阅读 多人点赞 2018-02-24 13:08:37
    接口测试讲义 1. 接口测试的类型 主要包含三种测试: Web接口测试, 应用程序接口(API, application programming interface)测试, 数据库测试。 实际上意义就是UI界面到数据库之间,数据流...
  • 秒懂HTTPS接口(接口测试篇)

    万次阅读 2018-12-03 10:14:05
    前言 ...技术选型: ...测试框架:TestNG Json序列化库:fastjson 具体实现 ...--引入接口测试相关包--> <dependency&a
  • 接口测试工具Postman接口测试图文教程

    万次阅读 多人点赞 2018-07-11 13:10:03
    市场上有很多优秀的,完善的接口测试工具,比如SoapUI,Postman等,能够高效的帮助后端开发人员独立进行接口测试。这里使用Postman接口测试工具,此处以请求方式为POST的userLogin登录接口为例。
  • postman进行http接口测试

    万次阅读 多人点赞 2016-11-03 14:48:48
    HTTP的接口测试工具有很多,可以进行http请求的方式也有很多,但是可以直接拿来就用,而且功能还支持的不错的,我使用过的来讲,还是postman比较上手。 优点: 1、支持用例管理 2、支持get、post、文件上...
  • 自动化接口测试之Postman(一篇搞定)

    万次阅读 多人点赞 2018-07-13 14:17:33
    Postman自动化接口测试 该篇文章针对已经掌握 Postman 基本用法的读者,即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求的操作。 当前环境: Window 7 - 64 Postman 版本(免费版): ...
  • 接口测试

    万次阅读 2020-06-02 12:55:06
    接口测试简介 1.什么是接口 接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能...
  • 接口测试工具Postman使用实践

    万次阅读 多人点赞 2017-12-05 16:18:55
    接口测试工具Postman使用实践本次chat内容包括: 接口的定义 接口的分类 为何要进行接口测试 接口文档示例 Postman工具简介 借助Postman完成HTTP请求接口测试 Postman + Newman + Jenkins 实现接口自动化测试 一、...
  • Jmeter接口测试+压力测试

    万次阅读 多人点赞 2017-05-14 14:01:50
    jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装...其中接口测试的简单操作
  • JMeter接口测试入门

    万次阅读 多人点赞 2018-07-16 16:23:08
    除了压力测试外,JMeter在接口测试方面也有广泛的应用。2、JMeter安装访问JMeter官网:https://jmeter.apache.org/download_jmeter.cgi,点击下载后解压缩,依次打开\apache-jmeter-4.0\JMeter\bi...
  • 接口测试

    千次阅读 多人点赞 2018-07-16 23:13:06
    什么是接口测试 接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查操作,以及系统之间的逻辑关系等。 http的几...
  • 接口测试面试题

    千次阅读 多人点赞 2019-06-01 11:45:36
    1.什么是接口测试接口测试:是测试系统组件间接口的一种测试方法 接口测试的重点:检查数据的交换,数据传递的正确性,以及接口间的逻辑依赖关系 接口测试的意义:在软件开发的同时实现并行测试,减少页面层测试...

空空如也

1 2 3 4 5 ... 20
收藏数 1,244,266
精华内容 497,706
关键字:

接口测试