精华内容
下载资源
问答
  • 什么是接口测试?怎样做接口测试?

    万次阅读 多人点赞 2018-08-20 11:17:31
    5.问什么要做接口测试? 6.怎样做接口测试? 7.接口测测试点是什么? 8.接口测试都要掌握哪些知识? 9.其他相关知识? 1.什么是接口? 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,...

    扫盲内容:

    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中

    展开全文
  • 2.为什么要做接口测试 接口测试的定义就是测试系统组件间接口的一种测试,我们的操作系统有很多个接口,因为接口可以简化我们的任务,就比如我们每个团队都有着明确的分工,而大家都只要做好自己的工作,那么接口就...

    1.测试橄榄模型(即不倒翁模型)

    单元测试处于最底层,底层测试发现问题最早,低成本,超高效,较稳定,但是对测试人员技术要求最高,综合橄榄模型可见API即接口测试可获最高投资回报

    2.为什么要做接口测试

    接口测试的定义就是测试系统组件间接口的一种测试,我们的操作系统有很多个接口,因为接口可以简化我们的任务,就比如我们每个团队都有着明确的分工,而大家都只要做好自己的工作,那么接口就像是一个中间人,不需要了解彼此的详细信息,比如用户登陆界面,我们只需要调用登陆接口,就可以达到登陆系统的目的。我们接口测试的重点就是检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系,比如一个if条件要返回ture or flase,接口测试就要测试他们下一个逻辑业务分别是什么。尤其是现在我们的大部分系统都是前后端架构分离的,从安全的层面讲,只依赖前端就不能满足系统的安全性,需要从后端进行控制,在这种情况下就要进行接口测试了。就敏捷测试讲,只要前后端定义好接口,测试就可以编写自动化测试代码了。

    3.怎么进行接口测试

    接口测试是功能测试之一,流程:1.接口文档2.测试用例(等价划分,边界值)3.执行测试,查看入参以及接口返回值

    接口测试

    1.功能测试:业务流程测试(正常异常场景),特殊字符,参数类型,参数有无或null,所有必选参数,组合可选参数,边界值测试等等。

    2.性能测试:响应时间,吞吐量,并发数等等。

    3.安全测试:敏感信息是否加密,必要参数是否后端校验,接口是否被恶意请求等等。

    4.接口测试有哪些工具呢

    Postman,Jmeter

    我们可以用浏览器测试我们的get请求的接口,但是浏览器不是专业的测试软件,他也无法测试POST等其他类型的接口,此时就可以用postman,它主要针对测试http请求(put,delete,post,get,options,track,connect,head),功能上很简单。而JMeter相对强大,可以测试各种类型的接口(rest,soap等可扩展websocket,socket),不支持的也可以自己编写插件进行扩展,支持Java或shell脚本语言,他除功能测试还可以通过线程组进行压力测试,然后他们的结果展示也是不同的,postman 通过send可查看request的response runner可产看运行的result,Jmeter有各种监听器可导出文件,Jmeter一个testplan是一个jmx文件,无法分割,但是它有合并的功能,允许多个文件合并在一起,可以一个团队建立一个testplan,分功能模块进行测试,最后整理合并。

    具体可参考:https://blog.csdn.net/GR9527/article/details/79875837

     

     

    展开全文
  • 接口测试简介及如何做接口测试

    千次阅读 2017-09-14 18:48:41
    为什么要做接口测试? <div id="cnblogs_post_body"><h2>1. 什么是接口测试?为什么要做接口测试?  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的...

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

    由于如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以就要做接口测试。同时,接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

    2. 后端接口测试测什么?

      从下面这张图可以看出后端接口测试主要测了些什么:

    3. 怎么做接口测试?

      一般情况下,由于我们项目前后调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送和接收。所以我们下面整理了一下使用Jmeter工具进行http接口测试。

      3.1 开发接口测试案例的整体方案

        第一步: 分析出测试需求,并拿到开发提供的接口说明文档;

          第二步: 从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点;

          第三步: 和开发一起对接口测试案例进行评审;

          第四步: 结合开发库,准备接口测试案例中的入参和出参数据,并整理成csv格式的文件;

          第五步: 结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发。

      3.2 接口自动化适用场景

        目前设计的自动化接口测试案例有两个运行场景:

        (1)测试前置、开发自测:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。(开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。)

        (2)回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行。

      3.3 接口测试环境准备

        Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html

        Jmeter, 下载地址:http://jmeter.apache.org/download_jmeter.cgi

        插件的下载安装地址: http://www.jmeter-plugins.org/

      3.4 创建工程

        1.打开Jmeter:下载好Jmeter后,双击bin目录下的jmeter.bat文件:

        

        2.添加线程组:在“测试计划”上点击鼠标右键–>添加–>threads(Users)–>线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。

        

        3.添加“HTTP Cookie管理器”:

        

        4.添加“Http请求默认值”组件,当被测系统有唯一的访问域名和端口时,这个组件很好用:

        

        5.在“HTTP 请求默认值”组件配置页面,填写被测系统的域名和端口,http请求的实现包版本以及具体协议类型,线程组里的所有“HTTP Sampler”可默认使用此设置。

        

        6.在“线程组”里添加“HTTP 请求”的Sampler

        

        7.在HTTP请求设置页面,录入被测接口的详细信息,包括请求路径,对应的请求方法,以及随请求一起发送的参数列表:

        

        8.设置检查点:在被测接口对应的“HTTP 请求”上,添加“响应断言”:

        

        9.在设置页面上添加对相应结果的正则表达式存在性判断即可:

        

        10.添加监听器:方便查看运行后的结果

        

        运行结果:

        

      上述步骤完成了一个简单测试案例的创建,复杂测试案例均在此基础上扩展完成。使用Jmeter工具开发的接口测试案例,一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。比较独立的接口,可以统一放在一个线程组内,顺序完成测试。

      流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性。

     

    4. 接口测试持续集成

          对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。对接口进行自动化测试的内容包括但不限于下面的内容:

      a) 流程方面:对于手工通过和稳定的功能,可以回归测试。

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

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

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

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

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

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

    5. 接口测试质量评估标准

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

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

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

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

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

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

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

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

    转载自:Zoraliu
    http://www.cnblogs.com/zoraliu66/p/6743126.html
    注:根据自己的理解,对文中内容有少量删改

    展开全文
  • 原文链接https://blog.csdn.net/u011541946/article/details/777452171. 为什么要做接口测试 在日常开发过程中,有人做前端开发,有人负责后端开发。接口就是连接前后台,由于前端开发和后端开发的速度可能不一样,...

    原文链接https://blog.csdn.net/u011541946/article/details/77745217

    目录

     

    1. 为什么要做接口测试

    2.什么是接口测试

    3.接口的分类

    HTTP请求方法(原文链接)

    4、设计接口测试用例方法     

    1.接口测试的流程

    2.为什么要写用例

    3、接口主要设计用例点

    4、接口测试的工具


    1. 为什么要做接口测试

           在日常开发过程中,有人做前端开发,有人负责后端开发。接口就是连接前后台,由于前端开发和后端开发的速度可能不一样,例如后端开发好了,但是前端没有开发。那么我们是不是就不需要测试呢?大部分人都是做功能测试,很多是界面的功能测试。

    如果你理解了接口测试,那么你就可以针对接口进行测试。

    同时,接口测试也是后端测试常见的一种测试种类。
        

           看看测试金字塔,接口测试是在中间部分,底层是单元测试,最顶端是界面测试。从三者的面积大小来看,单元测试和接口测试,才是重点,而界面测试真的是太少。这个面积,你可以理解为代码覆盖,也可以理解为测试的工作量。这里要提出一个观点:现在国内公司越来越重视接口测试,之前的几年,很多测试资源都放在了界面的测试,今后会逐步放在接口测试功能,性能,自动化和稳定性测试上面。白盒测试目前还是开发自己测试,有些大公司,注重软件产品质量,也会安排一些有代码能力的测试人员,去辅助和指导开发人员进行单元测试,共同保证软件的质量。

    2.什么是接口测试

          一般来说,测试接口,就是指测试接口的功能,性能和稳定性测试,当然可能还有安全性测试。

          这个入门系列会让你掌握接口的功能测试。一般,来说我们听说到的接口基本上都是指HTTP或者HTTPS协议的接口测试,也就是一些web服务请求。一个软件项目中,有很多接口,少的有几十个,多的有几百上千个接口。这个时候,我们没有软件界面,没有具体的测试场景,只有一个接口描述文档。我们需要把接口这样抽象的东西,通过软件测试的理论和方法去测试接口,找出接口的功能和安全性的缺陷。

         接口有内部接口和外部接口。内部接口就是开发人员自己开发的接口。外部接口,好比网站调用微信支付和支付宝支付接口。还有一些模块与模块之间的接口。学习过Java或者用过selenium的人,应该对接口有了解。你的自动化脚本调用了很多selenium的接口。

    3.接口的分类

           在开始做接口测试之前,有必要了解一下接口的分类。这里的分类,主要是HTTP请求方法分类。

    HTTP请求方法(原文链接

    根据HTTP标准,HTTP请求可以使用多种请求方法。

    HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。

    HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

    序号 方法 描述
    1 GET 请求指定的页面信息,并返回实体主体。
    2 HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
    5 DELETE 请求服务器删除指定的页面。
    6 CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    7 OPTIONS 允许客户端查看服务器的性能。
    8 TRACE 回显服务器收到的请求,主要用于测试或诊断。

     

    附:GET和POST的区别,可以参考另一篇文章https://blog.csdn.net/weixin_30363263/article/details/80060456,这个问题,面试中经常被提到。简单来说,可以从三个方面去回到这个区别:方式、大小、安全

    1).方式

    方式指的是参数的传入方式,GET方法一般是指获取服务器上的数据,参数直接跟着URL后边,直接可以放到浏览器地址栏里,例如登录就是采用GET方法。而POST方法是指客户端给服务器上提交表单数据,所以POST是通过表单提交的,例如你网页上的调查问卷和答题就是采用POST方法。

    2).大小

    上面已经知道GET是直接在浏览器地址栏输入,由于浏览器有限制,一般整个URL的长度可以很长,但是不能超过2049KB的大小限制,而这个POST就没有大小限制。

    3).安全性

    由于GET的参数是在浏览器地址栏直接拼接,暴露在互联网中,肯定不安全。POST是通过表单数据提交,相对比GET方法更安全。

    4、设计接口测试用例方法     

      前面我们已经介绍了什么是接口测试和接口测试的意义。在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作。或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文档直接利用接口测试工具测试嘛。其实,如果只是三五个接口,你可以这么做一个临时的接口测试。但是,如果是上百个接口,或者,你们公司的这个项目,第一次做接口测试,那么,我们还是很有必要遵守测试的流程。

    1.接口测试的流程

    接口测试和功能测试一样,流程也大致遵守V模型,请看下图

           一般来说,接口测试左边的每个阶段,每个公司可能都侧重点不同,例如有些公司就没有需求讨论和需求评审这个阶段。不管如何,用例设计,这个是少不了,而且是重点,要花时间的阶段。只有覆盖全面的接口测试用例,才能有比较好的测试接口覆盖率,才会找出更多的接口的Bug.

    2.为什么要写用例

             功能测试用例,大家都写过。接口测试用例,很多人没有写过。在写之前,我们来讨论下,为什么要写接口用例。

    1.           理清思路,避免漏测
    2.           提高测试效率
    3.           跟进测试进度
    4.           告诉领导做过
    5.           跟进重复性工作,回归功能使用

           上面五点,结合自己测试实际经验,应该来说是很好理解和认同的。有用例,就有思路,避免漏掉测试点。跟着用例测试,避免随机测试那种没有目的性的测试,提高测试效率。有用例,上级问你完成的进度,你好用数据回答。有用例,用来标记你执行的结果,证明你做过测试。避免将来发生问题,人家说你没有测试,有数据和证据说话。接口测试也需要重复跑,跑几轮,或者用自动化天天跑。这样的重复性工作,用例可以保证每次重复做的是一样的情况。

    3、接口主要设计用例点


    主要从四个方面来设计接口用例:功能,逻辑业务,异常,安全

    功能

    1)功能是否正常;

    2)功能是否按照接口文档实现      

    举例:有些添加到购物车,需要登录才能添加。也就是业务要求不支持游客添加购物车功能,如果设计一个没有登录的用户,然后去测试添加购物车接口,结果接口能添加到购物车,说明功能不正常,不符合需求和接口文档描述。

    逻辑业务:是否依赖业务;

    举例:该接口调用之前,需要调用登录接口,如果不登录也能请求数据,不符合业务规则。
     

    异常:参数异常和数据异常
    参数异常:关键字参数,参数为空,多,少参数,错误参数

    数据异常:关键字数据,数据为空,长度不一致,错误数据
             举例:不管数据异常还是参数异常,测试点差不多,一个参数有key和value,key表示参数,value表示数据。第一,看看参数和数据能不能支持关键字,例如Java中的保留关键字等等。第二个就是参数和数据都为空,看看是否做了判断。第三个,参数多和少,例如有两个参数的接口,你需要设计一个三个参数的用例,一个只有一个参数的用例。数据那边长度不一致,例如设计很长的字符串是否支持,因为数据库创建表过程都设置好了每个字段的长度。输入错误的参数和数据,例如故意输出单词等等。

    安全测试用例设计:

    1. cookie:有cookie才能获取数据,如果不带cookie还有信息返回,说明有问题
    2. header:正常接口带header信息,删除header看是否能够返回数据。
    3. 唯一识别码:app手机识别码,一般是唯一的。

           安全测试主要从上面三点检查。第三个是唯一识别码,主要是指app上手机的识别码,一般很少用到,除非很严格的接口测试,例如银行app登录,需要指纹,而指纹来源手机,一般有一个手机识别码判断过程。

    4、接口测试的工具

    目前,市场上有很多支持接口测试的工具。利用工具进行接口测试,能够提供测试效率。例如,加入让你一天完成100个接口测试任务,你觉得你加班能否完成。如果有工具,但是不是所有工具都能够支持你完成这个任务。下面我们就来挑选几个工具,简单介绍一下。

    1.我画了一个图

    1.fiddler

           首先,这是一个HTTP协议调试代理工具,说白了就是一个抓http包的工具。web测试和手机测试都能用到这个工具。既然是http协议,这个工具也能支持接口测试。稍后文章,我们会专门介绍fiddler这个工具。

    2.postman

           这是一款google工程师开发的一个插件,可以安装到chrome浏览器上。支持不同接口测试请求,能够管理测试套件和自动化运行,弱点在于,自动化断言功能不强大。不能和jenkins和代码管理库进行持续集成测试。但是,绝对是一个很好的半手工,半自动化测试工具,我一般在写自动化接口测试用例,会打开postman进行辅助测试和debug。这个工具也会稍后在文章介绍。

    3.wireshak

           这个是一款计算机上抓包工具,支持抓各种包,TCP,UDP,HTTP都支持。如果做底层网络数据测试,一般都需要用到它。作为接口测试,这个软件有点不友好。因为刷新数据太快,不好定位每个操作对应的接口。所以,我们不会进行过多介绍这个工具。

    4.soupUI

           这个是一个开源免费和,企业版收费的软件。在国外的接口测试,使用非常多。这个工具能够支持接口自动化测试和接口性能测试,也能支持和jenkins做持续集成测试。了解一下就可以,自己可以下载一个社区免费版,做一个demo试试。

    5.java代码做接口测试

           代码是万能,笔记工具也是代码开发出来的。为什么要用代码做接口自动化测试呢。因为,有些工具功能是有限制,很多公司,需要一些特定的功能,工具不支持,只好用代码进行开发。一般用Java做自动化测试,主要是利用httpclient.jar这个包,然后利用junit或者testng这样的单元测试工具,进行测试用例的开发,然后在jenkins上创建一个job,进行持续集成测试。

    6.Python代码做接口测试

          和Java一样,Python中利用一个很好,功能强大的第三方库requests,能够方便都创建接口自动化用例。python下单元测试框架,一般采用unittest。生成测试报告,一般选择HTMLTestRunner.py。同样,可以和jenkins做持续集成测试。

    7.LoadRunner

           不要以为LR只能做性能测试,loadrunner同样可以做接口自动化和接口压力测试。只是我们很多人,不会利用LR的函数,进行开发接口测试用例。

    8.JMeter

          JMeter同loadrunner一样,都是以性能测试出名,一般用JMeter也是做接口性能测试。例如java+Jmeter+ant+jenkins做接口性能监听测试。JMeter如何做接口测试,请看我JMeter系列文章。

          上面说了这么多工具,基本覆盖了接口功能测试,接口自动化测试,接口性能测试。这里提一下,在Python语言下有一个性能测试工具推荐:Locust。自己百度,安装下,很简单的web界面,感觉很不错,作为一个轻量级的协程测试工具。

    展开全文
  • 一、为什么要做接口自动化,怎样做 为什么要做接口自动化 通过接口测试验证判断模块的正确性(集成测试阶段) 去除UI干扰,直接测试逻辑(数据) 接口测试难度低于UI测试(手工测试) 接口测试速度快于UI测试...
  • 什么是接口测试?为什么要做接口测试?

    千次阅读 多人点赞 2019-01-10 11:25:57
    为什么要做接口测试?  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互...
  • 如何用Jmeter做接口测试

    千次阅读 多人点赞 2018-07-28 15:40:52
    做接口测试时, Jmeter是常用的工具。那么怎么用这个工具来做接口测试呢? 一、首先,先了解下,什么是接口?什么是接口测试? 接口实现系统模块与模块或系统与系统间进行交互的功能。一般现在使用的比较多的是...
  • 做接口测试的要求

    千次阅读 2018-04-24 10:23:17
    做接口测试需要哪些技能之前的博客,对接口的定义、目的和分类等知识做了一个简单介绍。临时起意,这篇博客,就说说做接口测试,需要哪些基本的技能点吧,也算是小白入门扫盲。。。 1、什么是接口测试?定义:测试...
  • 2018年已经来临了。...还在为如何做接口自动化而发愁吗? 《接口测试自动化实战》--从基础开始学起,快速入门接口自动化。 https://yuedu.baidu.com/ebook/aaf72f1b42323968011ca300a6c30c225901f07d
  • Postman和jmeter做接口测试

    千次阅读 2018-08-15 23:03:51
    众所周知postman用来做接口测试很方便,下面我们就用一些例子来演示一下它该如何进行接口测试 首先是get请求,get请求没有请求体只要填写具体的参数就可以,如图: 然后是简单的post请求 只需在body中加入接口中所...
  • 使用Postman做接口测试(基础篇)

    千次阅读 多人点赞 2020-05-10 21:25:24
    一、下载postman(百度网盘分享) ...提取码:unvw 下载后打开 初次打开会让你使用邮箱登录,如果不做mock测试,关掉就好了 之后就会进入到postman中 ...三、创建请求做接口 右击测试集---Add Request 可以看到接
  • 使用postman做接口测试

    万次阅读 2016-01-12 16:39:53
    使用postman做接口测试 1.在google应用商店搜索"postman"并添加如下插件到chrome浏览器中: 点击postman图标启动postman: Postman操作界面如下: 输入请求的接口地址,并选择请求方法,配置请求参数 已POST...
  • 最近跟朋友聊起这个话题,想深入了解下,于是学习总结,记录下来,此文章参考以下博客综合而来表示感谢: http://blog.brucefeng.info/post/api-idempotent http://825635381.iteye.com/blog/2276077 ... 1. 接口调用...
  • 一、为什么要做接口测试?好处是什么? 接口测试是测试系统组件间接口的一种测试。 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。 测试的重点是要检查数据的交换,传递和控制管理...
  • 为什么要做接口测试?

    千次阅读 2019-01-08 13:20:05
    前言:最近很多伙伴会在群里问为什么要做接口测试(自动化)?碰巧最近网上看到一段介绍分享给大家!   当前互联网产品迭代频繁的背景下,回归测试的时间越来越少,很难在每个迭代周期对所有功能做完整的回归测试...
  • jmeter做接口测试(值得一看)

    万次阅读 多人点赞 2018-08-06 17:42:40
    默认做接口测试前,已经给出明确的接口文档(如,http://test.nnzhp.cn/wiki/index.php?doc-view-59);本地配好了JMeter 3.x的运行环境; 打开JMeter,添加一个线程组和该线程组的查看结果树。以下的几种接口请求...
  • 怎么使用 soapui 做接口测试?

    千次阅读 2018-09-19 11:29:05
    1、怎么使用 soapui 做接口测试? 在做 soapui 接口测试时,当某一个字段存在不同值且不同值过多时,我们可以将此字段参数化,这里就用到了使用DataSource读取excel表中的数据。 注释:soapui的基本操作我这里就不...
  • 用postman做接口测试实例

    万次阅读 多人点赞 2019-04-24 16:45:39
    1.接口测试:针对软件对外提供服务的接口的输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能与接口描述文档的一致性 2.接口测试流程: 1)获取接口信息:通过接口文档或抓包来获取接口的基本调用方式和...
  • 求牛人指点怎么用jmeter做接口性能测试,最近公司要把从界面、移动端的访问数据库的数据做成接口,需要做这些接口的性能测试。且提及用jmeter做,重点是测并发量和接口反映速度。小弟我都没用过jmeter,就百度了一下...
  • 什么是接口? 业内常说的接口一般指两种: API:应用程序编程接口,程序间的接口 GUI:图形用户界面,人与程序的接口 软件接口测试中的接口特指API接口 接口测试又称API测试 接口实例:系统与系统间的接口调用,...
  • postman+jenkins+newman做接口测试的持续集成 为何要做接口自动化测试的持续集成? 1. 接口相对稳定,改动少,比起GUI自动化测试来说性价比更加高些,不容易出现GUI自动化那种掉到维护脚本的坑里。 2. 接口...
  • 当系统接口需要通过其他系统登录后才能跳到此系统,在接口测试时需要添加...如:一个系统需要通过权限系统登录后再跳转到对应的系统时,在做接口测试时需要把跳转到对应的token加入到对应接口测试时的header中 ...
  • 怎么做接口测试、概念及常用方法小结 1.接口的概念从IT的角度出发,主要是子模块或者子系统间交互并相互作用的部分。从形式上来看各种应用程序的API(最著名的Windows 系统的API),硬件的驱动程序,数据库系统的...
  • python语言用robot framework做接口测试自动化怎么将传入的参数和返回值用到另一个case下或者作为变量存起来,robot文件只能写关键字,方法都要在另一个py文件中,这是我没有想明白的点,希望大神们给点思路!...
  • jmeter做接口压测,如何从压测结果中确定最大并发数? 在网上又看过,说是逐渐增加线程数,看聚合报告里吞吐量。 当吞吐量不再往上增加时,这个时候的并发数即是最大并发数,这样对吗? 求各位指点迷津!!!...
  • 在自己的工作中经常碰到要做接口级别的功能和性能测试,soapUI是一款不错的工具,可以用来对soap接口和REST接口做测试。具体的操作步骤可以参考:  ... 当然,在soapUI的官网上也有说明。  对于REST接口,基本是...
  • 用Jmeter做接口测试

    千次阅读 2012-03-19 14:04:15
    最近做接口测试,服务层的代码先是用junit写,因为项目时间紧,加上流程经常变化,单元测试代码写的很粗糙,需要不停的准备不同的测试数据,不能进行自动化的执行,一个方面是流程确实需要不同的测试数据,另外一个...
  • 如何使用postman做接口测试

    千次阅读 2020-03-10 12:13:57
    具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档, 接口监控等功能; JMeter: 开源接口测试及压测工具,支持Linux及无界面运行; LR: 商业版接口性能测试工具,...
  • 用requests.py做接口测试

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 109,325
精华内容 43,730
关键字:

做接口