七、接口测试基础
restful风格测试---返回的内容
- get(200)、post(json串)、put(json串)、delete(204)
为什么学习jmeter---纯java写成的
- 安装jmeter,先安装jdk,在安装jmter
- 使用jmeter,
- 启动(bin目录)
- 修改配置文件,修改其中的编码格式(jmeter.properties文件)
- 测试计划---线程组
- 取样器---http请求---就是一个用户
- 监听器---查看结果树
- 聚合报告
- 线程组的执行顺序
- 测试片段
- 与线程组同级
- 不会独立执行,在线程组中使用模块控制器来调用测试片段
- 测试片段和线程组中的任务的执行顺序取决于他们的先后顺序
- 8大元件的作用域
- 取样器---任何时候,取样器都会执行---基础
- 逻辑控制器---对子元件有绝对的控制权
- 其他的6个元件
- 如果父元件是取样器,只对父元件起作用
- 如果父元件不是取样器,对父元件下所有的子元件起作用
- 元件的执行顺序
- 配置元件(http头信息,csv文件)--前置处理器(用户参数)--定时器--取样器(请求)--后置处理器(各种提取器)--断言(与期望结果对比)--监听器(查看结果树)
- 取样器是最重要的,前是对取样器添加参数,后
- 是对取样器提取结果分析
八、jmeter核心知识点
- 参数化、数据库、关联、断言、集合点、函数
- 参数化----因为需要很多数据,自动加载数据
- 数据驱动测试DDT
- 两种方式
- csv文件设置---大量数据
- 参数的取值范围是成为数据池
- csv逗号分割值文件
- 在配置文件中添加CSV文件
- 在http请求中设置参数${csv文件中的变量名}
- 前置处理器---(用户参数)少量数据
- 用户自定义变量---同样可以携带参数
- 可是使用函数,选项---函数助手
- 数据库
- 默认不能连接数据库
- JDBC连接数据库
- JDBC配置文件连接(配置元件)
- 创建连接(取样器)
- 操作数据库
- 可以使用sql语句操作sqlite数据库,sqlit是嵌入式数据库,没有用户和密码
- 连接mysql数据库与操作类比sqlite数据库,区别是databaseurl不同。
- 关联
- 前一次请求的结果是后一次请求的数据
- 主要是讲提取器
- 正则提取器、xpath提取器
- 断言---是否符合预期
- 响应断言
- http---断言---参数设置
- 响应文本、代码
- 匹配模式:包括和匹配(支持正则)、equals、substring(不支持正则)
- 大小断言
- 断言持续时间(性能是否达标,一般会在200毫秒之内)
- 集合点(同步定时器)
- 测试并发的情况
- 两个条件:请求数量、时间,满足其中一个,就发送请求。
- 函数
- counter、csvread(不能设置编码,用的不多)、random
- 全局变量
- 需要两个函数配合setproperty、property
- beanshell取样器目的:执行js代码或者函数
九、接口测试
jmeter分布式
逻辑控制器(8大元件之一)
- 如果if控制器
- 添加取样器http
- 用户定义的变量
- jmeter只获取json数据,不会有js数据
- foreach控制器--参数设置
- 变量前缀
- 开始循环字段、结束循环字段
- 主要是配合自定义变量元件使用
- 交替控制器
- 循环控制器
- 仅一次控制器
- 控制用户只执行一次
- 使用场景:登录操作,仅仅登录一次就行
- 随机控制器
- while控制器
- 不添加条件、默认会一直运行,若其中一个请求为空,就会停止循环。
- switch控制器
- 简单控制器
- 事务控制器
jmeter图形监视器扩展插件---用处不大
api文档
- url地址、请求方法、请求参数
- 接口脚本(jmeter可执行文件都是接口脚本)
- 各种节点
- 查询是最复杂的
接口脚本的设计
- 整理接口清单
测试用例的设计
- 正向方法
- 为空校验
- 为空格校验
- 超长校验
- 类型校验
- 特殊字符校验
- 删除引用校验
- 唯一不重复校验
- 判断参数是否可以为空
自动化脚本设计
接口测试
原文:https://www.cnblogs.com/hui-code/p/12078137.html