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)选择什么样的工具

  • 相关阅读:
    《Machine Learning in Action》—— 白话贝叶斯,“恰瓜群众”应该恰好瓜还是恰坏瓜
    《Machine Learning in Action》—— 女同学问Taoye,KNN应该怎么玩才能通关
    《Machine Learning in Action》—— Taoye给你讲讲决策树到底是支什么“鬼”
    深度学习炼丹术 —— Taoye不讲码德,又水文了,居然写感知器这么简单的内容
    《Machine Learning in Action》—— 浅谈线性回归的那些事
    《Machine Learning in Action》—— 懂的都懂,不懂的也能懂。非线性支持向量机
    《Machine Learning in Action》—— hao朋友,快来玩啊,决策树呦
    《Machine Learning in Action》—— 剖析支持向量机,优化SMO
    《Machine Learning in Action》—— 剖析支持向量机,单手狂撕线性SVM
    JVM 字节码指令
  • 原文地址:https://www.cnblogs.com/penghong2014/p/6076623.html
Copyright © 2011-2022 走看看