目录
现在有两款主流的性能测试工具
性能测试工具
性能测试工具
loadrunner存在我们需要的各种数据指标
loadrunner和jmeter是两款主流的性能测试工具 loadrunner支持的协议比较多 这个工具是使用c编写的 可以让每次发出去的请求都使用不同的ip发出去
缺点就是比较贵 限制使用用户和使用协议 需要支付一定的费用
在现在很大的企业是会使用的 安装包就比较大 小公司是不会使用的
jemeter是使用千为单位的
jemeter的所有的功能在loadrunner上都能找到原型 界面是不一样的 是比较开源的 支持的比较多 免费 内存较小
具有较多的功能组件 不存在ip欺骗
性能测试的目的:评估当前系统能力 定位系统的性能瓶颈,优化性能 预估对未来的业务的支持情况
jemeter环境搭建
jmeter是Java写的,所有用Java写的必须安装jdk,只有这样才可以运行
安装目录不能出现空格和中文
jmeter的版本要和jdk的版本是匹配的
.bat后缀是Windows下的正常的执行程序 另一种是exe文件
jmeter的常用目录介绍
bin目录:存放可执行文件和配置文件
docs:提供二次开发的文档 用于开发扩展组件 因为jmeter本身就是开源
lib里面存放的就是第三方库 lib中的ext存放的是第三方jar包
jmeter修改语言和主题--jmeter界面的汉化
修改语言:
但是这个并不是永久性的,永久性的要在bin目录中修改配置文件
打开软件:
cmd中直接输入jmeter就可以直接打开
bin目录中有一个启动文件:也可以在这里直接打开
使用配置文件进行修改
修改的时候,去掉注释 然后修改语言
jmeter元件
jmeter元件和组件的介绍
元件:一个一个的类 右键添加线程组
线程组就相当于用户 线程组就是用户的意思 因为脚本是用户的意思
右击取样器--用来发送请求 这个就相当于是request
逻辑控制器--控制语句的执行顺序 if else for
前置处理器--对请求参数进行预处理 后置处理器就是对响应结果进行处理
断言:检查接口返回的结果与预期结果是否一致
sleep就是等待
监听器就是查看日志
元件就是容器的集合 组件就是方法 jdbc就是连接数据库的请求
jmeter的作用域原则
作用域就是作用范围
jmeter的执行顺序
不同元件的执行顺序按照脚本的写作顺序来执行
写脚本的第一步就是初始化数据--
同一作用域下的执行顺序是按照作用来排序
定时器永远都在取样器的前面 监听器用来看结果
若是在同一个作用域下有多个相同类型的元件:按照从上往下的顺序进行
案例:执行顺序
分析下面的执行顺序:
其中的定时器1每次都要执行一次 当父节点不是取样器的时候,对父节点下的所有子节点都要起作用
最先执行的是定时器1--http请求1--定时器1--定时器2--http请求2--定时器1--定时器3--http请求3
jmeter使用案例
jmeter线程组的介绍
当用户量很大的时候就可以做性能测试了
特点:可以模拟多人操作 多个线程组可以一起来运行 一个用例就是一个线程组 一个线程组作为一个测试脚本
测试脚本可以串行和并行 取样器和逻辑控制器必须依赖线程组才能使用
分类:前置处理setup和后置处理
百度京东淘宝属于是并行 qq和搜狐分别位于首尾
setup:前置处理以及初始化的操作
线程数就是虚拟用户数
线程组就是模拟用户 支持多用户操作 多个线程组之间可以串行执行,也可以并行执行
jmeter线程组的参数介绍
为了更好的模拟用户的使用情况 可以虚拟用户启动所需要的时间
线程数就是用户数
循环次数为永远就是一直在运行
下面的要想生效 就必须勾选调度器 设置等待时间
模拟十个用户并行执行: 5s内启动完成
jmeter是以毫秒为单位的
性能测试就是大量的数据请求
负载测试就是一组一组往上加
性能就是研究大量的数据请求
压力测试 负载测试测试的时间长差不多两个小时 稳定性测试12h
http取样器参数详解
get在path路径中进行传输 也可以在参数列表当中,以键值对的方式进行传输
post只能添加form类型的
响应结果显示乱码:修改配置文件:bin目录下
jemter参数化
参数化的介绍
参数化:使用参数的方式来替代脚本中的固定的测试数据
参数化的形式:实现方式:参数替代脚本---文件定义的方式 数据库的方式参数化
代码:定义变量--参数化 函数传参--参数化
文件定义:实际使用不多 注册登录 添加 测试数据都是固定的情况下
定义变量多
数据库的方式和函数的方式比较多 适合业务需要
参数化!=文件定义
用户定义的变量
用户定义的变量作为全局参数使用 只要是定义的都是全局变量,不作为局部变量所使用
第一步先添加线程组,所有的脚本都加在线程组下面
第二部添加用户定义的变量
以英文作为变量
添加http请求,应用变量名 和postman很像:一个大括号,前面加一个$
最后查看结果树
因为协议是默认的,所以就是默认的
上面这个就是用来定义全局变量的!!!只要是全局的时候就可以使用了
用户参数
这里多加了一个用户参数!:::
可以添加变量和用户,左边是变量,右边是用户
因为只有张三和李四,所以线程组是2 线程数就设置为2
路径加上/S就不会有重定向
将线程组置为2,查看结果树中直接查看响应结果,有2个http请求,分别是张三和李四
CSV数据文件设置
添加CSV文件设置:
配置文件名:CSV文件
编码格式统一
变量名称:需要读取,存在临时变量
是否忽略首行:第一行是名字写在上面 不是就false:不忽略
以XXX方式进行分割
练习:
添加线程组,次数是3 添加3次循环
添加CSV数据文件设置
counter函数
当CSV文件当中的数据比较大的时候,十万及以上数据,jemeter就崩了
所以当数据较多,函数就会起到很大的效果
counter函数,保证每次取得的数据是不一样的
函数:可以执行统计的次数
true就是分开计数