目录
性能测试工具
性能测试工具
jemeter环境搭建
jmeter的常用目录介绍
jmeter修改语言和主题--jmeter界面的汉化
jmeter元件
jmeter元件和组件的介绍
jmeter的作用域原则
jmeter的执行顺序
案例:执行顺序
jmeter使用案例
jmeter线程组的介绍
jmeter线程组的参数介绍
http取样器参数详解
jemter参数化
参数化的介绍
用户定义的变量
用户参数
CSV数据文件设置
counter函数
现在有两款主流的性能测试工具
性能测试工具
性能测试工具
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就是分开计数