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

    万次阅读 多人点赞 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中

    展开全文
  • 如何使用postman做接口测试

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

    常用的接口测试工具主要有以下几种:

    • Postman: 简单方便的接口调试工具,便于分享和协作。具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档, 接口监控等功能;
    • JMeter: 开源接口测试及压测工具,支持Linux及无界面运行;
    • LR: 商业版接口性能测试工具,简单易用,功能强大;
    • SoupUI: 开源,WebService接口常用测试工具,也可以测试Rest接口及接口安全。

    在上一篇笔记我们主要介绍了接口测试的基础知识,本章主要介绍如何使用postman做接口测试。

     一 、postman 界面功能介绍

    1、工具栏

    • New: 新建,可以新建Request请求,Collection请求集,环境等等
    • Import: 导入,可以导入别人导出的请求集
    • Runner: 运行一个请求集(批量执行)
    • Invite: 邀请(需要注册,邀请进行协作)
    • 同步图标: (需要注册,同步你的项目到云端)
    • 抓包图标: 抓包/捕获请求,用于开启Postman代理, 手动设置代理(或手机代理)后可抓包/录制请求
    • 设置图标: Postman设置功能
    • 消息图标: 官方及协助消息
    • 收藏图标: 我的收藏(需要注册)
    • 云端图标: 用户云端数据(需要注册)

    2、接口管理区

    • History: 请求历史记录,可以查询到之前的请求记录
    • Collections: 接口集,相当于一个接口项目或测试计划,接口集中可以建立无限极子文件夹,用于对接口进行分组管理

    3、环境管理区

     什么是环境

    • 环境切换:用于切换环境
    • 环境预览:用于快速预览环境中的所有变量
    • 环境管理:用于添加修改环境及环境变量,以及全局变量

    4、接口设计区

    接口设计区可以通过上方tab边上的+号,新建多个请求。接口设计区从上到下分为请求区和响应区
      ①请求区 

    • 请求地址行:可以选择请求方法(GET/POST/...),填写请求地址,发送请求和保存请求到测试集 
    • 请求数据区:分为授权,请求头,请求数据,请求发送前执行的脚本(用于准备数据),请求结束后执行的脚本(用于断言) 

      ②响应区: 

    • 响应内容(body): 可以查看Pretty(美化格式),Raw(原始格式),Preview(HTML预览格式)
    • 响应Cookie 
    • 响应头(headers)
    • 测试结果(Test Results):对应请求中Tests中设置的断言

     5、Collection请求集(测试集):

    请求集是Postman中接口管理的一个"整体"单位,运行、导出、分享等都是基于请求集的

    ①新建请求集: New按钮-->Collection 或 直接点击请求集列表上方的新建请求集按钮

    • 授权: 请求集及其子文件夹下的接口统一使用该授权,不用每个接口再都单独设置一遍 
    • 请求前脚本: 请求集的每个接口公用的请求前脚本 
    • 请求后断言: 请求集每个接口公用的请求后脚本 
    • 请求集变量: 请求集中公用的一些变量

    ②新建子文件夹:子文件夹的属性中同样拥有描述,授权,请求前脚本,和请求后断言(没有变量,一个请求集的变量统一管理),实现了不同范围(Scope)的Fixture功能。 

    ③测试集导出:测试集可以导出并发送给别人(不携带环境信息),别人通过导入来使用你的接口 

    ④测试集分享: 测试集直接分享给别人(双方都需要注册)

    ⑤添加请求:通过测试集add request 添加请求,这个请求包含于这个测试集里。

     测试集的功能操作:

    6、环境变量和全局变量

    环境管理中还可以点击“Global”添加全局变量,环境变量只有当选择了该环境时才生效,全局变量在任何环境中都生效,测试集中的变量只在当前测试集生效,当测试集变量,环境变量,

    全局变量有重复的变量名时,优先级为:环境变量>全局变量>测试集变量。

    添加环境变量:设置-add-环境变量信息填写

     添加全局变量:设置-Global-全局变量信息填写

     我们可以环境中设置多个变量,以供在请求中使用。

    环境变量使用方法: 选择环境,在请求URL或者请求Body里使用{{变量名}}来使用环境变量,变量可以在请求Body的各种格式中使用,但不能直接在请求前脚本(Pre-request Script)和请求后脚本(Tests)中使用。

    Params

    当请求URL中参数很多时,不方便进行添加和查看,可以点击URL输入框下的Params按钮,以表格的方式添加变量及值,从表格添加后,变量和值会自动添加到URL中。

     

     7、请求设计

    • 授权:如果接口需要授权,可以在该页面设置授权方式(type)和授权信息
    • Header:请求头,可以设置请求类型(Content-Type)和Cookie
    • Body: 请求数据
    • form-data:混合表单,支持上传文件 ;x-www-form-urlencoded:文本表单;raw:原始格式,支持JSON/XML格式(后面可选择) ;binary:二进制格式,用于发送二进制数据流
    • Pre-request Script:请求前脚本,Javascript语法,用于在发送请求前生成一些动态数据或做一些处理
    • Tests:请求后脚本,Javascript语法,用于请求返回后做一些处理或断言结果 

       7.1 Postman发送各种格式请求数据的请求方法(注意:选择不同的请求可是,会自动在Header中添加Content-Type信息 ):

    • form-data:混合表单,支持上传文件 ;
    • x-www-form-urlencoded:文本表单;
    • raw:原始格式,支持JSON/XML格式(后面可选择) ;
    • binary:二进制格式,用于发送二进制数据流

    form-data混合表单格式传参示例(上传文件-选择file类型,传文本选择text类型):

     x-www-form-urlencoded(文本表单)传参示例:

      raw:原始格式,支持json和xml格式传参示例:

     7.2 tests断言示例

     二、postman接口测试实例

    1、发送一个get请求的方法:

    选择get请求方式,输入要请求的url,传参方式以json为例,选择raw再选择JSON,然后将参数填入请求参数区,点击send发送请求,在响应区即可看到返回结果。如下

     2、发送一个post请求实例:

    选择post请求方式,输入要请求的url,传参方式以混合表单为例,选择form-data,然后将参数名称和对应的值填入参数区,点击send发送请求,在响应区即可看到返回结果。如下

     3、使用postman批量发送请求

    Runner:批量执行测试集

    • 支持设置迭代次数
    • 支持加载csv或json、txt类格式测试数据

    使用实例:

    ①新建一个Collection,比如课堂练习,新建请求(add requests)如登录,选择POST方法,填入URL,请求数据,URL的host使用配置的环境变量,请求数据使用变量做参数化,本地新建参数化文件备用

    ②设置断言

    ③Runner配置

    • 点击Runner,进入测试集批量执行设置页面
    • 选择测试集下,要批量执行的请求,然后选择本地参数化的txt文件login.txt,数据文件类型选择text/csv,迭代次数iteration参数化数据多少个就填多少
    • 点击preview,可以预览本地参数化数据

     

     ④以上配置完后,点击Run XXX按钮,即可批量执行用例,得到测试结果,如图

    展开全文
  • 什么是接口测试?为什么要做接口测试?

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

     

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    展开全文
  • 一、为什么要做接口自动化,怎样做

    万次阅读 多人点赞 2019-09-29 10:28:13
    一、为什么要做接口自动化,怎样做 为什么要做接口自动化 通过接口测试验证判断模块的正确性(集成测试阶段) 去除UI干扰,直接测试逻辑(数据) 接口测试难度低于UI测试(手工测试) 接口测试速度快于UI测试...

    为什么要做接口自动化,怎样做

    一、为什么要做接口自动化

    1. UI能模拟用户的真实行为,但是受外部的原因,如电脑卡顿,浏览器卡顿,网速,需求变动等,从而容易造成脚本执行失败,维护成本较高,投入较高等问题
    2. 接口测试直接验证模块逻辑的正确性,去除UI干扰
    3. 接口测试难度低于UI测试,执行效率高于UI,可测试的代码覆盖率高,维护成本低,属于低成本,高收益
    4. 有些项目产品数据列表的内容比较多,不好定位,难以开展UI自动化测试
    5. 接口自动化能够解放人力,提升工作效率

    二、了解一波接口

    2.1 什么是接口

    接口一般来讲分为两种:

    1. 程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛出一个接口,进行内部系统调用。
    2. 系统对外的接口:从别人的网站或服务器上获取资源或信息,对方不会提供数据库共享,只能提供一个写好的方法来获取数据,如购物网站和第三方支付之间,购物网站支付时可选择第三方支付方法,但第三方不会提供自己的数据库给购物网站,只会提供一个接口,供购物网站进行调用。

    2.2 常用接口

    1. http接口走http协议,通过路径来区分调用方法,请求报文一般是key-value形式的,返回报文一般是json串,常用的是get和post方法来请求。
    2. webservice接口走的soap协议,通过http传输,请求报文和返回报文都是xml格式的。

    2.3 http登录接口文档范例

    2.4 获取接口关键信息

    1. 开发提供接口文档/接口规范(正规流程),如上接口文档范例;

    说明:如果没有接口规范/文档(不正规流程),需要使用抓包工具,如Fiddler、wireshark、httpwatch或直接在谷歌或火狐浏览器F12等获取接口关键信息;

    1. 接口关键信息:
    • 协议类型:http/htts
    • 请求URL/IP:如:网址:https://www.baidu.com/;ip:127.0.0.1
    • 端口:http默认端口:80,https默认端口:443或自定义端口
    • 请求方式:如post/get/put/delete
    • 表头信息:如内容类型Content-Type:application/json
    • 请求参数:注意参数的传参类型如json;参数的属性如名称、类型、是否必填,参数的个数;
    • 响应结果:注意输出内容的类型如json
    返回状态描述
    1xx请求已被成功接收、理解、接受
    2XX成功,操作被成功接收并完成响应
    3xx重定向–要完成请求必须进行更进一步的操作
    4xx客户端错误–请求有语法错误或请求无法实现
    5xx服务器端错误–服务器未能实现合法的请求

    三、什么项目适合做接口自动化测试

    1. 任务需求明确,不会频繁变动
    2. 项目周期较长,回归测试频繁(>=5次),开展自动化确实能提升测试效率及质量
    3. 产出的效益高于投入
    4. 测试预留的时间比较充裕

    四、接口自动化关键点

    1. 开发测试脚本需充分考虑脚本的复用性
    2. 业务与数据分离

    五 什么时候可以做接口自动化

    1. 需求评审完毕,接口需求明确稳定
    2. 版本升级项目发布之前的全流程回归测试

    六、与开发同步进行接口用例脚本开发

    软件开发未完成,接口还无法调试,测试如果需要同步开发接口,需根据接口文档规范,利用MOCK SERVER等接口模拟工具模拟接口,从而进行接口自动化用例调试开发

    七、接口自动化测试的流程

    • 业务流程
    1. 评估投入与收益比,是否需要进行接口自动化
    2. 根据项目组成员的能力及项目属性,选取适当的自动化工具或开发语言
    3. 分析业务,在功能测试用例提取主业务场景
    4. 先开发一个主业务场景脚本,根据需要补充其他业务场景
    • 开发流程
    1. 提取脚本可重复项,封装简化脚本,利用公共类或公共函数等方法,提高脚本的利用率、可读性及可维护性
    2. 提取脚本中可变的参数,修改成变量
    3. 利用csv、Excel、ini、数据库、yaml等参数化数据信息,使业务与数据分离,实现数据驱动测试
    4. 引入日志,出现问题能迅速定位
    5. 添加断言并生成可视化报告
    6. 利用Jenkins持续集成工具,实现自动打包,按时发布并执行,生成结果邮件发送给项目相关人
    展开全文
  • 原文链接https://blog.csdn.net/u011541946/article/details/777452171. 为什么要做接口测试 在日常开发过程中,有人做前端开发,有人负责后端开发。接口就是连接前后台,由于前端开发和后端开发的速度可能不一样,...
  • 2.为什么要做接口测试 接口测试的定义就是测试系统组件间接口的一种测试,我们的操作系统有很多个接口,因为接口可以简化我们的任务,就比如我们每个团队都有着明确的分工,而大家都只要做好自己的工作,那么接口就...
  • 接口测试简介及如何做接口测试

    千次阅读 2017-09-14 18:48:41
    为什么要做接口测试? <div id="cnblogs_post_body"><h2>1. 什么是接口测试?为什么要做接口测试?  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的...
  • 主要介绍为什么要做接口测试,并简单总结接口持续集成和接口质量评估相关内容。 第一部分: 问题1、首先,在做接口测试的过程中,经常有后端开发会问: 后端接口都测试什么?怎么测的? ...
  • 先对开发提供的接口文档做好需求分析,进行用例整理,然后就是做接口预测,确保接口功能能正常调用,然后才进行详细的测试。 具体测试是用jmeter来完成的,比如测试加标接口,先在测试计划下面添加线程组,添加http...
  • 使用Postman做接口测试(基础篇)

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

    万次阅读 多人点赞 2018-07-28 15:40:52
    做接口测试时, Jmeter是常用的工具。那么怎么用这个工具来做接口测试呢? 一、首先,先了解下,什么是接口?什么是接口测试? 接口实现系统模块与模块或系统与系统间进行交互的功能。一般现在使用的比较多的是...
  • 最近跟朋友聊起这个话题,想深入了解下,于是学习总结,记录下来,此文章参考以下博客综合而来表示感谢: http://blog.brucefeng.info/post/api-idempotent http://825635381.iteye.com/blog/2276077 ... 1. 接口调用...
  • 用postman做接口测试实例

    万次阅读 多人点赞 2019-04-24 16:45:39
    1.接口测试:针对软件对外提供服务的接口的输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能与接口描述文档的一致性 2.接口测试流程: 1)获取接口信息:通过接口文档或抓包来获取接口的基本调用方式和...
  • jmeter做接口测试(值得一看)

    万次阅读 多人点赞 2018-08-06 17:42:40
    默认做接口测试前,已经给出明确的接口文档(如,http://test.nnzhp.cn/wiki/index.php?doc-view-59);本地配好了JMeter 3.x的运行环境; 打开JMeter,添加一个线程组和该线程组的查看结果树。以下的几种接口请求...
  • 一、为什么要做接口测试?好处是什么? 接口测试是测试系统组件间接口的一种测试。 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。 测试的重点是要检查数据的交换,传递和控制管理...
  • 为什么要做接口测试?

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

    千次阅读 2018-10-30 16:34:29
    同理,我们可以修改并发数,请求数来测试接口性能 ,需要注意的一般数据库写的操作并发数相对较低。 四、测试中可能遇到的错误 Windows 环境测试post接口报错 错误消息: Counld not stat POST data ...
  • JMeter学习笔记15-如何用JMeter做接口测试

    万次阅读 多人点赞 2017-05-02 21:21:45
    这里就介绍一下如何利用JMeter基于HTTP的web接口测试。接口也叫API(Application Programming Interface),很多我们使用的各种APP,上面的内容显示大部分都调用后台web服务器的接口,有些是网站的接口,有些是solr...
  • Postman和jmeter做接口测试

    万次阅读 2018-08-15 23:03:51
    众所周知postman用来做接口测试很方便,下面我们就用一些例子来演示一下它该如何进行接口测试 首先是get请求,get请求没有请求体只要填写具体的参数就可以,如图: 然后是简单的post请求 只需在body中加入接口中所...
  • 具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档, 接口监控等功能; 2.JMeter: 开源接口测试及压测工具,支持Linux及无界面运行; 3.LR: 商业版接口性能测试工具,...
  • 2018年已经来临了。...还在为如何做接口自动化而发愁吗? 《接口测试自动化实战》--从基础开始学起,快速入门接口自动化。 https://yuedu.baidu.com/ebook/aaf72f1b42323968011ca300a6c30c225901f07d
  • 使用Python做接口测试

    千次阅读 2017-05-12 09:14:21
    接口的时候需要对接口进行测试,一般会选用postman这种工具,但是需要一个一个的用鼠标去点他,尤其有些返回值需要手动去更新就更麻烦了,使用脚本自动去测试可以减轻一定的工作量.反正闲着也是闲着,在代码开发的同时...
  • 使用Postman和fiddler做接口自动化测试

    千次阅读 多人点赞 2019-01-01 23:25:02
    一、接口自动化测试简介 1、什么是接口接口一般指2种 1)API:应用程序编程接口 2)GUI:图形用户界面(接口) 这里我们主要说API接口测试 /2、接口自动化测试分类: Web应用的接口自动化测试大体分为两类:模块...
  • yaml做接口测试之初探

    千次阅读 2017-08-31 10:42:36
    接口测试的核心要素:发送接口请求→解析接口响应→检验接口测试结果。 之前常用的简单测试用例,举个栗子: import requests def test_login(): url = http://www.senbaba.cn method =POST headers = {'content...
  • 求牛人指点怎么用jmeter做接口性能测试,最近公司要把从界面、移动端的访问数据库的数据做成接口,需要做这些接口的性能测试。且提及用jmeter做,重点是测并发量和接口反映速度。小弟我都没用过jmeter,就百度了一下...
  • 如何用jmeter做接口测试

    万次阅读 2021-08-30 10:19:48
    1,了解jmeter接口测试的整体架构 1)测试计划:这个不用管,这个是固定默认的 2)线程组:从业务层面上可以理解为是一整个的... ... 4)查看结果树:查看接口的请求或者响应等等信息。 ... 对于我们做接口测试来说...
  • 别人已经给我接口地址 接下我来我该怎么啊 http://api.zhongmuzhijia.com/PostProjectService.asmx 求大神告知
  • 用fiddler工具做接口测试

    万次阅读 2017-05-23 10:50:51
    接口测试的原理我理解很简单,是你发送数据,看返回数据是否正确,返回值类型是否正常,主要点是多种数据的,返回结果正常 和其他应用程序相同,java中需要知道你的参数,字段有哪些,我们就去给他造数据,而先公司...
  • 什么是接口? 业内常说的接口一般指两种: API:应用程序编程接口,程序间的接口 GUI:图形用户界面,人与程序的接口 软件接口测试中的接口特指API接口 接口测试又称API测试 接口实例:系统与系统间的接口调用,...
  • jmeterAPP接口测试时,怎么验证手机验证码,和图标验证

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,285,377
精华内容 914,150
关键字:

做接口