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

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

    目录

    一、前言

    二、Postman安装和使用

    三、请求方式

    四、资金记录接口实例演示


    一、前言

        在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性。而这要求前端开发进度和后端进度保持基本一致,任何一方的进度跟不上,都无法及时完成功能模块的测试。
        做为后端开发人员,要求独立开发完成某个接口后,开发人员自己需要先测试通过后再提交给测试人员进行测试,否则会出现到测试人员哪里业务流程根本就走不通,或者BUG会过多的情况等。
        市场上有很多优秀的,完善的接口测试工具,比如SoapUI,Postman等,能够高效的帮助后端开发人员独立进行接口测试。这里使用Postman接口测试工具,此处以请求方式为POST的userLogin登录接口为例。

    二、Postman安装和使用

        1、这个直接去官网下载即可,我们使用免费版即可满足基本接口测试,根据个人或者公司的项目实际情况考虑是否需要专业版或者其他。
     
    免费版官网链接: https://www.getpostman.com/postman
    下载好的安装程序Postman-Win64-xxx-Setup.exe,双击安装即可。建议安装在非系统盘,即C盘在外的其他盘,另建议使用全英文路径,避免使用中文路径。
     
        2、打开Postman如下图2-1,可以关闭该页面跳过注册账户,非登陆状态下该工具可以直接使用。接下来出现引导页面,类似IDEA,Android Studio等开发工具的引导页。此处关闭即可。
    图2-1注册账户图
     
    图2-2项目创建引导图

    3、进入Postman主页面并创建项目接口集合

        这里是我之前用过,所以左侧文件栏存在几个已有的文件夹。
        选择功能菜单New下的Collection创建项目接口集合。新建一个亿的项目A hundred million,可在Description部分写一下项目描述。

    图2-3Postman主页面
     
    图2-4新建项目接口集合图

    4、创建项目模块文件夹

        一般项目会分多个管理模块或者功能模块进行开发。这里可根据项目具体情况创建子文件夹方便接口管理。此处在A hundred million项目右键创建资产管理assets文件夹、user用户管理文件夹。可将测试的接口实例保存在对于管理模块下。

    图2-5新建资产管理文件夹

    5、后台登录接口演示

        开发完成后台接口,编写正确严谨的逻辑代码处理前端请求。此处登录接口代码如下,运行后台开发项目,使该接口能够访问。接口请求路径为:http://localhost:8080/manage/app/user/login

    @Controller
    @RequestMapping("/manage/app/")
    @Scope("prototype")
    public class AppUserController {
    
       /**
        * 日志
        */
    public static Logger customFile = LoggerFactory.getLogger("manageCustomFile");
    
    @Resource
    private AppUserService appUserService;
    
        /**
         * 用户登录
         * @param baseResult
         * @return
         */
        @RequestMapping(value = "user/login" , produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
        @ResponseBody
        public BaseResult loginUser(@RequestBody BaseResult baseResult) {
            customFile.info("appId:"+ baseResult.getTreasureID()+ "用户登陆访问:" + baseResult.toString());
            return appUserService.loginUser(baseResult);
        }
    }

    6、新建接口测试

        在Postman主页面Content部分点击'+'按钮,新增一个接口测试。在图2-6所示第一部分填写接口请求路径,左侧下拉列表可选择请求方式,此处选择POST请求方式。接口请求路径为http://localhost:8080/manage/app/user/login。第二部分是请求体,即包含接口所需请求参数的Body,此处选择原始数据RAW,数据类型使用JSON数据作为请求数据。点击蓝色Send按钮发送请求,后台项目接口接收请求并响应返回执行结果。此处后台处理数据返回结果仍是JSON数据,这个看实际项目而定,此处仅做演示。第三部分是接口响应体,即接口响应请求处理并返回的数据。点击Pretty自动匹配接口返回的数据格式并对数据美化显示,使数据看起来更加直观。如果接口测试出现异常,则可以通过PreView视图查看浏览器响应接口的页面信息,也可以通过Header了解请求状态等参数。一般出现异常还是直接去后台看控制台的异常信息及项目日志来处理解决异常,再进行接口测试。

    图2-6接口测试图

        接口测试通过后,可Ctrl+S保存接口测试实例,填写接口测试名称和接口描述信息,选择要保存的路径,此处保存在user用户管理模块文件夹。当项目的接口全部测试通过后,可在A hundred million项目右键Export导出接口文档,保存为JSON接口测试文件,该文件可通过Postman导入查看。

    三、请求方式

        对于后台开发的接口,请求方式肯定不止POST一种,Postman也支持多种请求方式。在新建接口测试实例时可选择接口的请求方式,如图3-1。

    图3-1接口请求方式图

        请求类型可以模拟Form表单文本提交,Form表单文件提交,raw原始数据提交,二进制文件提交。对于原始数据类型raw还支持不同文件格式,包括JSON,TXT,HTML等多种文件格式。

    图3-2数据请求类型图

     

    四、资金记录接口实例演示

        后台开发接口如下,服务器部署运行后台项目。接口请求路径为:http://localhost:8080/manage/app/user/asset/withdrawRecord

    @Controller
    @RequestMapping("/manage/app/")
    @Scope("prototype")
    public class AppUserAssetController {
     
        /**
         * 日志
         */
        public static Logger customFile = LoggerFactory.getLogger("manageCustomFile");
    
        @Resource
        private AppUserAssetService appUserAssetService;
        
        /**
         * 获取提现记录
         * 即我的页面中的资金记录
         * @param baseResult
         * @return
         */
        @RequestMapping(value = "user/asset/withdrawRecord" , produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
        @ResponseBody
        public BaseResult getUserWithdrawRecord(@RequestBody BaseResult baseResult){
            customFile.info( "appId:"+ baseResult.getTreasureID() + "用户提现记录获取"+baseResult.toString());
            return appUserAssetService.getUserWithdrawRecord(baseResult);
        }
    }

    新建资金接口测试
    请求方式为POST,
    请求URL为http://localhost:8080/manage/app/user/asset/withdrawRecord
    请求体为JSON类型的原始数据
    点击Send请求接口,接口响应请求处理返回结果如图3-3所示


    图3-3资金记录接口测试图
     
    展开全文
  • 接口测试

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

    什么是接口测试

    接口测试是测试系统组件间接口的一种方式,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查操作,以及系统之间的逻辑关系等。

    http的几个类型(接口的几种类型)

    接口的类型包括:post ,get,put,和delete等。

    post和get的区别:post的参数是存在webfrom,以表单的形式存在,get的参数是存在在url中

    get:请求获取request-url所标时的资源

    post:在request-url所标识的资源提交数据或者附加新的数据。

    put:和post很像,也是想像服务器提交数据,put指定了资源在服务器上的位置,post没有

    delete:删除服务器上的某个资源

     

    怎么做接口测试

    接口测试只是无界面的功能测试,设计的思路跟功能测试基本都是一致的。

    1、输入的参数测试

       1)根据参数的要求,进行判断是否满足要求,参数要符合他的要求,比方假如让输入一个数字,那么就判断输入数字----整数、小数、负数、复数等数字进行正常测试,或者超大数值和超小数值,异常测试就是判断当不输入数字,保持为空,或者输入的为字符串,不为数字时,反应是否正常。

       2)参数是否为必填项,如果为必填项,将所有的必填项都填写,进行接口测试当必填项未填写时,进行接口测试,查看是否报错

      3)如果参数为选填项,则进行测试,如果有多个选填项,一个个进行测试,填入所有必填项,和要求的一个选填项,接口返回是否正确,再测试,当选填项保持为空时,是否能够正常返回,当多个选填项时,是否返回正常

     4)如果参数名称填写错误是否报错,如果存在不合法的参数,是否报错等等

    5)对每个接口进行逻辑的测试,就是比方为新增一个数据,查对应的url,就得显示新增的数据,也就是所描述的每次新增,删除或者改动后都要进行检查查询。

    6)接口中还得考虑一些异常情况,比方权限问题,a方建立了多个内容,b方采用接口是否可以删掉。

    7)接口测试还得考虑各种逻辑和现实问题,这个就需要就是根据项目本身的可用性,可以完全想象成功能测试进行测试

    8)还要考虑反复提交接口,是否报错

    9)异常情景,如请求超时,快速连续点击、请求失败等情况

    10)安全性问题,比方登录的密码是否需要加密。

    接口测试常用的工具介绍

    常用的工具介绍:postman,jemeter,soupui,java+httpclient

    url的基本讲解

    url (统一资源定位器)是www页的地址,它从左到右依次为:

    .intenet 资源类型(scheme):指出www客户程序用来操作的工具,如:http 表示www服务器,

    .服务器地址(host):指出www页所在的服务器域名

    .端口(port):对于某些资源的访问时,需要给出相应的服务器提供端口号

    .路径(path):指明某服务器上某资源的位置。

    举例说明:https://mp.csdn.net/postedit

    服务器返回代码

    ---200:请求ok ;2xx一般是服务器接收成功了并处理

    ---3xx:重定向相关

    ---4xx:404最常见的就是找不到服务器,一般是请求的地址有问题。

    ---5xx:一般是服务器本身有问题,比较常见的502错误

     

     

     

    展开全文
  • 什么是接口测试?怎样做接口测试

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

    展开全文
  • 接口测试工具Postman使用实践

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

    各位老板,请关注一下我的新书,谢谢。

    UI自动化测试新书

    作者新建了QQ群:460430320,供大家交流测试心得(培训机构勿进)。另外,还会不定期上传测试资料,也欢迎您共享测试资料。

    接口测试工具Postman使用实践

    本次chat内容包括:

    • 接口的定义
    • 接口的分类
    • 为何要进行接口测试
    • 接口文档示例
    • Postman工具简介
    • 借助Postman完成HTTP请求接口测试
    • Postman + Newman + Jenkins 实现接口自动化测试

    一、接口定义

    软件不同部分之间的交互接口。通常就是所谓的API――应用程序编程接口,其表现的形式是源代码。 —— [ 百度百科 ]

    我们常说的接口一般指两种:
    (1)API:应用程序编程接口。程序间的接口
    (2)GUI:图形用户界面。人与程序的接口
    这里我们所说的接口特指API接口。

    API接口定义:对协议进行定义的引用类型。

    好多公司开发人员分前后端,他们之间如何配合工作的,就是其中一方定义接口,另一方来调用接口,以实现预期功能。

    ##二、接口的分类
    1、接口分类
    (1)HTTP接口
    (2)Webservice接口
    (3)RESTful接口

    WebService接口是走soap协议,请求报文和返回报文都是xml格式,通过SoapUI工具进行测试;
    HTTP API接口走HTTP协议,通过路径来区分调用的方法,请求报文入参有多种形式,返回报文一般为json串,最常见的是get和post方法。
    这里写图片描述

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

    2、接口测试原理
    模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端再接收应答的一个过程。

    3、接口测试范围
    接口的功能、性能、安全性。重点关注数据的交换,传递和控制管理过程,还包括处理的次数。

    接口测试对象是接口,但随着系统复杂度越来越高,接口越来越多,完全覆盖是一件很困难的事情。通常情况下主要测试最外层的两类接口:数据进入系统的接口(调用外部系统的参数为本系统使用)、数据流出系统接口(验证系统处理后的数据是否正常)

    ##四、接口文档示例
    1、接口文档应该包括哪几部分?

    • 接口说明
    • 调用的url
    • 请求方法(get、post)
    • 请求参数,参数类型、请求参数说明
    • 返回参数说明
    • 返回示例

    2、示例:
    APP注册登录接口
    APP注册登录接口

    注:上图接口文档工具为ShowDoc

    ##五、Postman工具简介
    这里写图片描述
    1、Sidebar侧边栏
    Postman侧边栏允许你查找、管理请求和集合。侧边栏分为两个主要的选项卡,包括历史和集合选项卡。
    可以拖动右边的边来调整侧边栏的宽度。侧边栏也可以隐藏到小屏幕(标题栏 view—>toggle side bar)。
    (1)历史选项卡
    通过Postman应用程序发送的每个请求都保存在侧边栏的History选项卡中。
    (2)集合选项卡
    在侧栏中创建和管理集合选项卡的集合。

    2、Header toolbar
    这里写图片描述
    Postman的顶部工具栏包含以下选项:
    (1)新建按钮——可以新建请求,集合,环境等
    (2)运行按钮-打开集合运行页面
    (3)导入按钮——导入Postman文件、文件夹、form link等
    (4)新窗口图标-打开一个新的tab页、新的窗口、新的runner等
    (5)构建器和团队库选项卡——在请求生成器和Team Library视图之间切换
    (6)抓取API请求图标——使用postman抓取API请求
    (7)同步状态图标——同步API请求图标
    (8)用户下拉——管理集合链接和你的个人资料或登录/登出,你的Postman帐户
    (9)开放API集合(点击打开一个网址)
    (10)通知图标-接收通知或广播
    (11)设置图标——管理Postman应用程序设置,并找到其他支持资源
    (12)❤——分享按钮

    3、Builder
    Postman通过选项卡布局,用于在构建器中发送和管理API请求。上半部分是请求构建器,下半部分是响应查看器。
    (1) Cookies——管理cookie模式是通过点击cookie链接访问的。该特性允许你管理与请求相关的cookie。
    (2) Code——生成的代码片段模式通过保存按钮下面的最右边的Code链接。该特性允许你生成与请求相关的代码片段,该请求支持20多种语言(http、java、go等语言)
    这里写图片描述

    4、Console
    Postman有两个控制台,可以帮助我们了解系统后台到底发生了什么。
    (1)Postman Console——包含HTTP请求和响应的运行日志。来自脚本的日志消息(如在console. Log中)。这个功能只能在Postman的本地应用中使用。
    (2)DevTools Console——可以在开发期间记录诊断信息。

    ##六、借助Postman完成HTTP请求接口测试

    1、借助Postman Echo 演示下各种请求的构建方法
    (1)Get 请求
    https://postman-echo.com/get?foo1=bar1&foo2=bar2
    HTTP GET请求方法是从服务器检索数据。数据由惟一URI(统一资源标识符)标识。GET请求可以使用“查询字符串参数”将参数传递给服务器。例如,在下列请求中,http://example.com/hi/there?hand=wave,参数“hand”的值等于“wave”。

    这里写图片描述

    (2)POST:URI 传参
    这里写图片描述

    (3)POST:Form-data 传参
    这里写图片描述

    (4)POST:x-www-form-urlencoded传参
    这里写图片描述

    (5)POST:raw 传参
    这里写图片描述

    (6)POST:binary 传参
    这里写图片描述

    (7)Authentication Method——权限认证方法

    • GET Basic Auth
      这里写图片描述

    增加auth信息
    这里写图片描述

    • DigestAuth
    • Hawk Auth
    • OAuth1.0(verify signature)

    (8)Headers——添加header
    这里写图片描述

    2、接下来,我们拿个开放API来演示下单一接口测试流程
    示例API:https://developers.douban.com/wiki/?title=book_v2#get_book

    豆瓣搜索图书API

    步骤一:使用Postman工具发送该Get请求,如下图:
    Postman发送请求

    步骤二:添加测试
    添加测试

    上图针对该API添加了3个测试
    (1)要求响应时间小于200ms
    (2)要求status code等于200
    (3)要求Response body中包含字符串“金庸”

    注:当然你还可以增加更多的测试点

    ##七、Postman + Newman + Jenkins 实现接口自动化测试
    1、准备工作(具体步骤参考附件文档-作者提供)
    (1)安装Newman 工具

    • 安装Node.js
    • 安装Newman
    • 查看Newman命令

    (2)部署Jenkins

    2、将接口保存到集合
    点击Save按钮,将接口保存到一个集合(可以保存到一个现有集合中或者新建一个集合),如下图:
    保存接口到集合

    4、将集合保存到本地
    将集合保存到本地,文件为.json格式,如下图:
    集合保存到本地

    5、命令行通过Newman 运行集合
    (1)打开命令行窗口,运行如下命令:
    D:\git-local>newman run MyCollection1.postman_collection.json -g globals.postman_globals1.json

    (2)执行结果如下
    这里写图片描述
    可以看到,其中两条断言passed,一条断言failed,失败的原因是,我们期望接口响应时间小于200 ms,但是本次接口请求响应时间是270 ms。

    6、通过Jenkins 调用Newman,执行接口测试
    这里写图片描述

    执行一次构建,构建失败(上面的断言失败,我们并未修复),查看构建失败原因。
    这里写图片描述

    7、假设开发修复了接口bug,接口响应时间减少了,我们需要回归测试。(我们将断言响应小于200 ms,修改成1000 ms,让断言passed)
    这里写图片描述

    8、演示一个如何调用data file 参数化用例
    我这里有一个集合,3个接口,第一个接口为登录接口,第二个接口为获取登录用户信息接口,第三个接口为修改密码接口
    登录接口如下:
    这里写图片描述
    测试脚本如下:
    这里写图片描述

    参数化json文件内容如下

    [{
      "loginName": "duzl",
      "password": "admin123",
      "verifyCode": "adf",
      "value": "/index"
    }, {
      "loginName": "duzl",
      "password": "admin",
      "verifyCode": "adf",
      "value": "账号或密码错误"
    }, {
      "loginName": "duzl",
      "password": "",
      "verifyCode": "adf",
      "value": "参数password不能为空"
    }]
    

    这里写图片描述

    (1)好我们调用json文件,执行下集合,结果如下:
    这里写图片描述

    结果还不错,执行了3次,参数都是取自用例文件(json文件),断言也取自用例文件。

    美中不足的是,第二个和第三个接口也跟着迭代了3次(这并不是我们期望的结果),这是因为集合运行器中的迭代次数是针对所有接口的设置。

    (2)那如果,我们想第一个接口运行3遍,第二、三个接口只运行一遍,该如何做呢?Postman 给我们提供了一个内置方法,设置接口运行顺序postman.setNextRequest(’’);
    这里写图片描述
    注意:迭代次数从0开始
    当迭代次数!==0时,就停止本次迭代(意思就是,第一次迭代全运行,第二次迭代开始就不执行第二、三个接口了),好,再次运行集合,看看结果
    这里写图片描述
    很好,第一次迭代,执行了3个接口;第二、三次迭代只执行了第一个接口。

    展开全文
  • Jmeter接口测试+压力测试

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

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

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

    万次阅读 多人点赞 2018-02-24 13:08:37
    接口测试讲义 1. 接口测试的类型 主要包含三种测试: Web接口测试, 应用程序接口(API, application programming interface)测试, 数据库测试。 实际上意义就是UI界面到数据库之间,数据流...
  • Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性,可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程,允许通过多个线程并发...
  • 软件接口测试中的接口特指API接口 接口测试又称API测试 接口实例:系统与系统间的接口调用,作用:实现了两个或多个独立系统或模块间的通信和数据交换能力。 常见的Web接口类型 REST接口——通过HTTP的get和post...
  • 自动化接口测试之Postman(一篇搞定)

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

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

    万次阅读 多人点赞 2018-07-03 18:29:31
    Jmeter是压力测试、接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具。将这三者结合起来可以搭建一套webservice接口测试的持续构建环境。 优势 通过Ant构建可以看到详细的执行...
  • 接口测试简介及如何做接口测试

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

    万次阅读 多人点赞 2018-05-01 12:39:28
    那么,接口测试用例应该怎么编写呢?接口的定义 : 主要是子模块或者子系统间交互并相互作用的部分。因此,可以分析,系统间的接口包含三部分:输入、处理逻辑、输出。应该怎么分析一个接口?获取接口文档:和黑盒...
  • 接口测试(二)接口测试用例设计

    千次阅读 多人点赞 2017-10-15 18:42:18
    接口测试做什么? 接口测试主要检查接口返回的接口数据是否正确、是否和接口文档中定义的一致。 接口测试用例怎么写? 接口测试用例可以参照黑盒测试用例规则来编写,如边界值法、等价类划分法、正交试验法等...
  • 接口自动化测试之接口测试基础

    万次阅读 多人点赞 2020-02-11 13:29:38
    说明:该篇博客是博主一字一码编写的...接口测试3.1 接口测试的含义3.2 接口测试的意义3.2.1 为什么测试接口3.2.2 接口测试的意义3.3 协议接口的分类3.3.1 按系统不同的调用方式进行分类3.3.2 按协议的不同进行分类3...
  • 什么是接口测试?为什么要做接口测试

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

    万次阅读 多人点赞 2017-04-13 11:26:39
     第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做?  第二部分:主要介绍为
  • 接口测试用例和接口测试模板

    千次阅读 2019-05-05 17:25:00
     当今社会在测试领域,接口测试已经越来越多的被提及,被重视,而且现在好多招聘信息要对接口测试提出要求。区别于传统意义上的系统级别测试,很多测试人员在接触到接口测试的时候,也许对测试执行还可以比较顺利的...
  • jmeter接口测试脚本

    2016-11-18 11:50:00
    jmeter接口测试脚本jmeter接口测试脚本
  • 接口测试总结

    万次阅读 2018-10-31 21:27:27
    1、什么是接口测试? 2、为什么要做接口测试? 3、接口测试持续集成: 4、接口测试质量评估标准: 1、什么是接口测试?  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及...
  • 接口测试基础-1-什么是接口测试

    万次阅读 多人点赞 2017-08-31 13:28:13
    前面写过了Python接口自动化入门只requests篇,想了一下,还是把接口测试基础入门给介绍一下。在做接口自动化测试之前,还是有必要介绍接口的手工测试一些基本概念的方法。预计会写十篇左右介绍接口测试入门,第一篇...
  • 接口测试面试题

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

    千次阅读 热门讨论 2021-05-28 21:07:14
    文章目录0)项目环境准备1)项目部署1、解压项目后,用Pycharm打开项目2、安装项目依赖的模块pip 安装依赖 requirements.txt安装过程中遇到"No ...《【接口测试实战(零)】接口测试简介》 0)项目环境准备 开始接
  • 一周搞定接口测试

    2020-06-15 15:30:09
    接口测试Postman工具的使用 熟练掌握 接口测试工具Postman的日常使用及技巧 测试工具Postman的作业布置及详解!
  • HTTP接口测试

    千次阅读 2019-03-19 10:36:25
    本章主要是用来介绍接口测试的理论以及如何做、为什么要做等 第一节、导章:接口测试 第二节、什么是接口测试? 第三节、为什么要做接口测试? 第四节、接口测试的价值及结果是什么? 第五节、接口测试需要...
  • 接口测试全流程

    万次阅读 多人点赞 2018-05-28 11:16:07
    1.什么是接口? 2.接口都有哪些类型? 3.接口的本质是什么? 4.... 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,446,566
精华内容 578,626
关键字:

接口测试