接口测试

七、接口测试基础

  1. restful风格测试---返回的内容

    • get(200)、post(json串)、put(json串)、delete(204)
  2. 为什么学习jmeter---纯java写成的

    • 安装jmeter,先安装jdk,在安装jmter

    • 使用jmeter,

      • 启动(bin目录)
      • 修改配置文件,修改其中的编码格式(jmeter.properties文件)
    • 测试计划---线程组

      • 取样器---http请求---就是一个用户
      • 监听器---查看结果树
      • 聚合报告
    • 线程组的执行顺序

      • setup>普通线程组>teardown线程组
    • 测试片段

      • 与线程组同级
      • 不会独立执行,在线程组中使用模块控制器来调用测试片段
      • 测试片段和线程组中的任务的执行顺序取决于他们的先后顺序
    • 8大元件的作用域

      • 取样器---任何时候,取样器都会执行---基础
      • 逻辑控制器---对子元件有绝对的控制权
      • 其他的6个元件
        • 如果父元件是取样器,只对父元件起作用
        • 如果父元件不是取样器,对父元件下所有的子元件起作用
    • 元件的执行顺序

      • 配置元件(http头信息,csv文件)--前置处理器(用户参数)--定时器--取样器(请求)--后置处理器(各种提取器)--断言(与期望结果对比)--监听器(查看结果树)
      • 取样器是最重要的,前是对取样器添加参数,后
      • 是对取样器提取结果分析

    八、jmeter核心知识点

    • 参数化、数据库、关联、断言、集合点、函数
    • 参数化----因为需要很多数据,自动加载数据
      1. 数据驱动测试DDT
      2. 两种方式
        1. csv文件设置---大量数据
          • 参数的取值范围是成为数据池
          • csv逗号分割值文件
            • 遇到文件停止符是否继续循环最重要
          • 在配置文件中添加CSV文件
          • 在http请求中设置参数${csv文件中的变量名}
        2. 前置处理器---(用户参数)少量数据
          • 同样在http请求中使用${变量名}
      3. 用户自定义变量---同样可以携带参数
      4. 可是使用函数,选项---函数助手
    • 数据库
      1. 默认不能连接数据库
        1. JDBC连接数据库
          • JDBC配置文件连接(配置元件)
          • 创建连接(取样器)
        2. 操作数据库
          • 可以使用sql语句操作sqlite数据库,sqlit是嵌入式数据库,没有用户和密码
        3. 连接mysql数据库与操作类比sqlite数据库,区别是databaseurl不同。
    • 关联
      • 前一次请求的结果是后一次请求的数据
      • 主要是讲提取器
      • 正则提取器、xpath提取器
    • 断言---是否符合预期
      • 响应断言
        • http---断言---参数设置
        • 响应文本、代码
        • 匹配模式:包括和匹配(支持正则)、equals、substring(不支持正则)
      • 大小断言
      • 断言持续时间(性能是否达标,一般会在200毫秒之内)
    • 集合点(同步定时器)
      • 测试并发的情况
      • 两个条件:请求数量、时间,满足其中一个,就发送请求。
    • 函数
      • counter、csvread(不能设置编码,用的不多)、random
    • 全局变量
      • 需要两个函数配合setproperty、property
      • beanshell取样器目的:执行js代码或者函数

九、接口测试

  1. jmeter分布式

    • 目的:发起多线程的请求,就是使用jmeter做性能测试,实际上很少使用jmeter这样做,性能测试主要使用loadrunner来做

    • 一台控制机、多台执行机

  2. 逻辑控制器(8大元件之一)

    1. 如果if控制器
      • 添加取样器http
        • 添加执行条件 “$”=="百度"
      • 用户定义的变量
      • jmeter只获取json数据,不会有js数据
    2. foreach控制器--参数设置
      • 变量前缀
      • 开始循环字段、结束循环字段
      • 主要是配合自定义变量元件使用
    3. 交替控制器
      • 一个用户的多次请求,交替执行
    4. 循环控制器
    5. 仅一次控制器
      • 控制用户只执行一次
      • 使用场景:登录操作,仅仅登录一次就行
    6. 随机控制器
      • 随机控制器
        • 随机拿出一个运行
        • 一个线程就是一个用户
      • 随机顺序控制器
        • 全部运行,但是顺序随机
    7. while控制器
      • 不添加条件、默认会一直运行,若其中一个请求为空,就会停止循环。
    8. switch控制器
      • 写子元件的索引或者名字
    9. 简单控制器
    10. 事务控制器
  3. jmeter图形监视器扩展插件---用处不大

  4. api文档

    • url地址、请求方法、请求参数
    • 接口脚本(jmeter可执行文件都是接口脚本)
    • 各种节点
    • 查询是最复杂的
  5. 接口脚本的设计

    1. 整理接口清单
  6. 测试用例的设计

    1. 正向方法
      • 为空校验
      • 为空格校验
      • 超长校验
      • 类型校验
      • 特殊字符校验
      • 删除引用校验
      • 唯一不重复校验
      • 判断参数是否可以为空
  7. 自动化脚本设计

原文地址:https://www.cnblogs.com/hui-code/p/12078137.html