zoukankan      html  css  js  c++  java
  • 接口测试

    1.接口测试范围

              一、被测项目中同层之间的接口(如DAO层、Service层),一个接口调用了其他的接口

              二、外部系统与系统之间的交互点(如一个App调用了第三方支付宝的API)

              三、各个子系统之间的交互点(如App客户端调用了服务端的Http接口)

    2.接口的主要两类

    一类提供给查询功能接口,一类提供保存数据功能接口,数据保存后要去数据库中查看,jmerter可链接数据库进行操作代理手工

    大批量数据制造,数据的参数化,可以使用jmerterKh的计数器、或者随机函数

    https://my.oschina.net/hellotest/blog/512482

    3.API用例设计方法

    出发点:参数、业务

    参数--参数异常时是否正常处理,如业务中要求参数不能为null/空字符串,设计 用例为:当给相应的参数传null值/空字符串时,系统是否正确的处理了

    业务--给API的各形参传入满足业务的实数后,系统是否做出了正确的处理

    4.接口用例类型

    1)逻辑测试:主要是根据开发写的JavaDoc来编写测试用例,JavaDoc包含的要素(前提条件,输入参数,业务逻辑,输出值的描述)此类主要是测试在正常输入的情况下,是否能得出正确的结果。

    也存在失败了但返回的是成功

    2)出错测试:接口逻辑的测试中主要测试的是正常逻辑,即对外提供的接口服务是能够工作的,但是这些测试不能保证数据的安全,以及程序在异常情况下的逻辑的正确性

              (a) 空值输入:如当传一个对象参数(形参类型为Object类型)时,需要值null值测试

                 (b) 参数属性测试:如输入一个未赋值的参数(即参形参传的值也为变量,但此变量没有被赋值)

                 (c) 异常测试:制造一些异常的测试场景,测试的异常描述是否清晰(如测试“按名称搜索”API,传的名称是系统中不存在的值,则返回回来的描述信息是否正确)

                 (d) 对参数个数,参数类型时的出错测试(如在测试App的Http接口时,传的值个数不足时,返回的结果是否正确)

     3)路径测试:当被测API的实现方法中,有很多的判断,且判断中又调用了其他的接口,此时必须要进行路径测试。

    5.接口与用例是一对多的关系

    如发朋友圈的接口用例:

    1. 有图片、有文字,预期返回发布成功
    2. 无图片,有文字,预期返回发布成功
    3. 有图片,无文字,预期返回发布成功
    4. 无图片,无文字,预期返回发布失败
    5. 有图片、有文子,预期返回发布成功,同时数据库中的记录符合预期

    每一个用例测试一个点,发布成功这个返回值是否正确由一个单独的用例来覆盖就足够了。

     6.WEB接口测试

    应用商店的测试属于WEB接口测试

    web接口测试又可分为两类:服务器接口测试和外部接口测试。

    服务器接口测试:是测试浏览器与服务器的接口。用户输入的数据是输入到的前端页面上,怎样把这些数据传递的后台的呢?通过http协议的get与post请求来实现前后端的数据传递。这也可认为是接口测试。
    外部接口测试:这个很典型的例子就是第三方支付,比如在我们应用中在充流量时,交话费时,都会调用第三方支付接口。

    主要测试要点如下:

    请求是否正确,默认请求成功是200,如果请求错误也能返回404、500等。
    检查返回数据的正确性与格式;json是一种非常常见的格式。
    接口的安全性,一般web都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。
    接口的性能,这直接影响用户的使用体验。

    7.怎么做接口测试

    1)首先看你的请求是基于什么协议的,测试接口时主要是通过工具或代码模拟http请求的发送与接收

    看接口的访问方式是get、post、delete

    请求头:header中的cookies信息或者UA信息等重要信息,其中Content-Type是开发者经常用到的,比如json,xml格式数据,都会有对应Content-Type类型,必须设置,否则服务器无法识别

       1、 服务端需要返回一段普通文本给客户端,Content-Type="text/plain"
        2 、服务端需要返回一段HTML代码给客户端 ,Content-Type="text/html"
        3 、服务端需要返回一段XML代码给客户端 ,Content-Type="text/xml"
        4 、服务端需要返回一段javascript代码给客户端,Content-Type="text/javascript"
        5 、服务端需要返回一段json串给客户端,Content-Type="application/json"

    看响应头中诸如referer等信息

    看接口的参数构成是否合理。

    看所传参数有无敏感数据需要加密传输

    看接口的返回体是否返回一些不必要的敏感信息,返回格式是否合理等

    改:请求体中参数的常规修改。常规修改就是通用的边界值方法,如极大值、极小值、极长值、null、空。未对这些值做校验的后果可大可小

    2)选择什么样的工具

  • 相关阅读:
    对于Dubbo一些面试题自己的答案
    序列化和反序列化的简单理解
    学习Spring-Session+Redis实现session共享
    Java中的String,StringBuilder,StringBuffer三者的区别
    个人对数据结构的理解和总结
    LeetCode 101. Symmetric Tree
    LeetCode 100. Same Tree
    LeetCode 88. Merge Sorted Array
    LeetCode 83. Remove Duplicates from Sorted List
    LeetCode 70. Climbing Stairs
  • 原文地址:https://www.cnblogs.com/penghong2014/p/6076623.html
Copyright © 2011-2022 走看看