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

    七、接口测试基础

    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. 自动化脚本设计

  • 相关阅读:
    P3371 【模板】单源最短路径(弱化版)
    村村通
    P1551 亲戚题解
    P4467 [SCOI2007]k短路
    P2483 【模板】k短路([SDOI2010]魔法猪学院)
    POJ——2449 Remmarguts' Date
    P1337 [JSOI2004]平衡点 / 吊打XXX
    P1118 [USACO06FEB]数字三角形`Backward Digit Su`…
    P1621 集合
    P1514 引水入城
  • 原文地址:https://www.cnblogs.com/hui-code/p/12078137.html
Copyright © 2011-2022 走看看