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

    1、接口测试:接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。


      系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。

      程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用

      现在我们最常用的两种接口就是 webservice 接口和 http api 接口,概念这里就不赘述了,知道有这两种接口和怎么测试就可以了。
      webService 接口是走 soap 协议通过 http 传输,请求报文和返回报文都是 xml 格式的,我们在测试的时候都用通过工具才能进行调用,测试。
      http api 接口是走 http 协议,通过路径来区分调用的方法,请求报文都是 key-value 形式的,返回报文一般都是 json 串,有 get 和 post 等方法,这也是最常用的两种请求方式。

    接口:就是从数据库里面取数据库、插入数据。

     客户端、服务端


    前端: web :
      html js css
    ios:object-c、swfit
    Android:Android

    接口 login?username=niuhanyang&password=112234(?好后面是参数多个参数用&连接)

    它们通过接口交互接口反返回的是json

      (json通用数据类型所有语言都支持)它是以key:value形式存在

    后端
      php、java、python、go等等
      


    接口测试就是功能测试,它比功能测试还简单(功能测试除了要考虑返回值,还要考虑字体、颜色、兼容性)。

      为什么要做接口测试


      例如:测试支付接口修改订单金额(页面无法测试)

    1. 可以发现很多在页面上操作发现不了的bug
    2. 检查系统的异常处理能力
    3. 检查系统的安全性、稳定性
    4. 前端随便变,接口测好了,后端不用变

      接口测试三要素:


        1)请求URL,请求方法(Get、Post用的较多)

       2)  传递的参数,数据

       3)返回值

      GET和POST请求:


     

    get请求,不需要借助任何的工具,在浏览器里面就可以发请求。

    GET请求和POST请求的区别:
      1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
      2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
      3、POST比GET安全,因为数据在地址栏上不可见。
      4、一般get请求用来获取数据,post请求用来发送数据。

       sesion和cookie


      seesion
        http://www.nnzhp.cn/archives/426

      就是存在服务端的一个键值对
        key - vaule

      cookie
      就存在客户端的一个键值对
        key - value

      登录的时候已经把账号密码写到cookie里面了,咱们再去打开京东页面的时候,浏览器会自动把京东这个网站下面的cookie发给京东的服务端,会和服务端session的键值对做匹配校验。

      接口签名

      为了防止别人恶意刷请求,它是一个加密后的字符串

    http://api.nnzhp.cn/reg?username=xxx&passwd=xxx&sign8eea855efc702130d9c9cafcd9f4d91a

          Refer

      是为了判断网页从哪里跳转过来

          URL编码

      中文等特殊字符在传输过程中会变为%23%232%232%这样的url编码
    https://www.bejson.com/enc/urlencode/ URL在线编码、解码工具

      http状态码


    每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:

    • 200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
    • 300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,
    • 400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
    • 500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果

    3.怎么设计接口用例


     

    通过性验证:
      首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试

     

    参数组合:
      type传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样的,就要测参数组合

     

    接口安全:
      1、绕过验证,修改订单价格或数量,后端有没有做验证
      2、绕过身份授权,普通用户,能否修改商品信息
      3、参数是否加密,登录用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
      4、密码安全规则,密码的复杂程度校验

     

    异常验证:
      异常的,三种,必传非必传、参数类型、入参长度

     

    根据业务逻辑来设计的话,就是根据自己系统的业务来设计用例
      举个例子,拿bbs来说,bbs的需求是这样的:
      1、登录失败5次,就需要等待15分钟之后再登录
      2、新注册的用户需要过了实习期才能发帖
      3、删除帖子扣除积分
      4、......
    把这些测试点列出来,然后再去造数据测试对应的测试点。

     

    咱们测试接口的话,肯定要写测试用例,写测试用例的话,就要有一个用例模板,那需要有哪些字段呢?见“测试用例.xlsx"
      1、项目 是哪个项目的
      2、模块 这个接口是属于哪个功能模块的
      3、用例id
      4、接口名称 
      5、用例标题 用例是干嘛的
      6、请求方式 GET/POST
      7、请求url url地址
      8、请求参数
      9、前置条件 有依赖的时候,比如说要测登录失败3次的
      10、结果验证 预期结果
      11、请求报文 
      12、返回报文 
      13、测试结果 通过/失败
      14、测试人员

    用例模板


     

     

     

     

  • 相关阅读:
    java中的常用内存区域总结
    访问权限修饰符-static-final-this-super-匿名对象
    Scanner-String-StringBuilder-API
    This application failed to start because it could not find or load the Qt platform plugin “windows”错误解决方法
    如何优雅的写C++代码(一)
    Color Map的生成方法
    加色法和减色法
    无线电入门书籍推荐
    玩业余无线电的前期准备
    iPhone 上拨号键盘的发音规律
  • 原文地址:https://www.cnblogs.com/cwl-bj/p/10636784.html
Copyright © 2011-2022 走看看