jmeter-知识点讲解

关联(正则表达式)

解决bug时会自动关联到新建bug的编号
1)在对应请求中添加【后置处理器】>【正则表达式提取器】
(2) 在请求结果树中找到需要提取的响应内容
(3) 设置正则表达式提取器
在这里插入图片描述
引用名称:下一个请求要引用的参数名称,如填写abc,则可用${abc}引用它。
正则表达式
    ():括起来的部分就是要提取的。
    .:匹配任何字符串。
    +:一次或多次。
    ?:不要太贪婪,在找到第一个匹配项后停止。
    *:匹配零次或多次

模板:用KaTeX parse error: Can't use function '$' in math mode at position 28: …式中有多个正则表达式,则可以是$̲12$ 3 3 等等,表示解析到的第几个值给abc。如: 1 1 表示解析到的第1个值
匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
缺省值:如果参数没有取得到值,那默认给一个值让它取。
(4)使用正则表达式获取到的值
格式:${引用名称}
在这里插入图片描述
${abc}代表取第1,2,3个值内容
${abc_g1}代表取第1个值,
${abc_g2}代表取第2个值,
${abc_g3}代表取第3个值

参数化

(1)用户自定义变量在这里插入图片描述
用户自定义变量中的定义的所有参数的值在测试计划的执行过程中不能发生取值的改变,因此一般仅将测试计划中不需要随迭代发生改变的参数(只取一次值的参数)设置在此处。

(2)用户参数(在“前置处理器”中添加)在这里插入图片描述
与用户自定义变量不同的是,用户参数列表中的参数取值可以在测试计划执行过程中发生变化。
在这里插入图片描述
修改线程数即可按顺序循环执行
(3)CSV data set Config(“配置元件“中添加)在这里插入图片描述
对“输入用户名和密码”http请求进行CSV参数化进行演示
在这里插入图片描述

Filename: 获取参数值的文本文件。
File Encoding: 文件编码方式,一般采用utf-8。
Variable Namesg: 从文本文件中获取内容的参数列表。参数列表中可以包含多个参数,用逗号分隔。
Ignore first line: 忽略第一行内容
Delimiter: 文本文件中分隔记录域的分隔符,“\t”表示tab键。
Allow quoted data?: 当该项值是False时,CSV Data Set Config原封不动地将文本文件中相应域的值取为参数值;当为Trues时,将处理文本中用双引号引用的部分,把双引号中的内容取为参数值。
Recycle on EOF: 当该项取值为True时,允许循环取值。当文件中的全部记录被取完后,重新从文件的第一行取值。为False时,根据stop thread on EOF的取值决定测试计划的执行行为。
Stop thread on EOF?: 当Recycle on EOF为true时,无论该项取何值,测试计划的执行行为相同;当Recycle on EOF为False时,该项值为True时,文件记录取完后,线程停止运行,如果该项取值为False,则线程后续执行时给定参数的取值为。
在这里插入图片描述

Sharing mode:
All threads,该测试计划的所有线程共享csv文件中的记录(所有线程按照顺序取文件中的记录)。
Current thread group,该测试计划中的每个thread group中的所有线程共享csv文件中的记录。
Current thread,每个线程各自独立使用csv的记录
(4)函数助手 (选项>函数助手对话框)
在这里插入图片描述
(5)计数器(配置元件>计数器)
在这里插入图片描述
修改线程数,查看运行结果

Jmeter分布式测试

在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。
一、Jmeter分布式执行原理:
  1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
  2、执行时,调度机会把脚本发送到每台执行机上,执行机拿到脚本后就开始执行,执行时不需要启动GUI,是通过命令行模式执行的。
  3、执行完成后,执行机会把结果回传给调度机,调度机收集所有执行机的信息并汇总。
二、执行机(slave)配置:
  1、slave机上需要安装Jmeter,具体如何安装这里不详细介绍了。
  2、添加环境变量:path=D:\B_TOOLS\apache-jmeter-2.13\bin (此处为你Jmeter的路径)
  3、检查Jmeter.properties文件中的remote_hosts=192.168.2.236:1099,端口也可以自定义
启动bin目录下的:jmeter-server.bat.
  4、执行机的IP和端口会在调度机里配置时用到。
  5、多台执行的话,重复1~4步骤就好。
三、调度机配置:
1.修改Bin目录下jmeter.properties文件remote_hosts=192.168.2.236:1099,多个IP时用“,”隔开
2.脚本:录制Bugfree登录界面脚本,添加“察看结果树”与“聚合报告”
3.打开Jmeter,选择“运行》远程启动”,查看聚合报告。
四、聚合报告结果分析:
在这里插入图片描述

JDBC数据库性能测试

利用Jmeter对数据库的性能测试,对SQL语句的响应时间
(1)添加JDBC Connetction Configuration (测试计划>配置元件)
添加线程组
JDBC Request (线程组>Sampler)
(2)添加JDBC数据库驱动,拷贝mysql-connector-java-5.1.47-bin.jar到jmeter安装目录的lib文件夹下
在这里插入图片描述
(3)JDBC Connetction Configuration配置
如何使用jmeter批量构造mysql测试
在这里插入图片描述
Database URL:jdbc:mysql://127.0.0.1:3306/bugfree3?useZUnicode=true&characterEncoding=utf-8
JDBC Driver class:com.mysql.jdbc.Driver
Username:数据库登录用户名,我这里是root
Password:密码(如果没有密码,则不用填)
(4)采用SQLyog连接到Bugfree3数据库上,对bf_bug_info表进行查询操作
在这里插入图片描述
(5)JDBC Request配置
在这里插入图片描述
(6)添加“察看结果树”,查看数据库返回结果
(7)在“测试计划”中把jar添加Lib库中
在这里插入图片描述
(8)添加“响应断言”
修改查询语句,添加“响应断言”(线程组>添加>断言>)
在这里插入图片描述
添加“断言结果”(线程组>监听器)
在这里插入图片描述
添加“断言持续时间”(线程组>断言持续时间),查看语句执行性能指标
在这里插入图片描述
在这里插入图片描述

Jmeter批量创建数据

在Bugfree数据库中创建一个score表(id,score)
首先在线程组中添加“用户参数”,添加变量,值采用“函数助手”产生在这里插入图片描述
在JDBC Request中SQL语句引用变量
在这里插入图片描述
修改线程数为10,运行后通过SQLyog查看数据库数据是否增加
在这里插入图片描述

集合点\思考时间\事务\初始化\Http请求默认值 设置

添加“线程组”、“Http请求”、“察看结果树”
(1)添加“集合点” (线程组>定时器>Synchronizing Timer)
在这里插入图片描述
(2)添加“思考时间” (请求与请求之间的等待时间)
固定定时器(Http请求>定时器>固定定时器)
在这里插入图片描述
高斯定时器
在这里插入图片描述
(3)添加“事务”(线程组>逻辑控制器>事务控制器)
在这里插入图片描述
Generate parent sample 勾上只显示所有请求事务时间,不勾则单独显示每个请求事务时间
在这里插入图片描述
(4)“初始化”设置(线程组>逻辑控制器>仅一次控制器)
在这里插入图片描述
在这里插入图片描述
(5)Http请求默认值
线程组>配置元件>HTTP请求默认值
在这里插入图片描述
在这里插入图片描述

元件作用域

详细介绍链接
组件执行顺序:
1.配置元件 (CSV、HTTP Cookie管理器、Http请求默认值)
2.前置处理器 (用户参数)
3.定时器 (固定定时器、高斯随机定时器、集合点)
4.取样器 (http请求)
5.后置处理器 (正则表达式)
6.断言 (响应断言)
7.监听器 (察看结果树、聚合报告、断言结果)
8.逻辑控制器(事务控制器、仅一次控制器)

作用域的原则是:
1.采样器(sampler):元件不和其它元件相互作用,因此不存在作用域的问题。
2.逻辑控制器(Logic Controller):元件只对其子节点中的取样器 和 逻辑控制器作用。
3.除采样器 和 逻辑控制器 元件外,其他6类元件,如果是某个sampler的子节点,则该元件只对其父子节点起作用。
4.除采样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)。

测试计划和线程设置

在这里插入图片描述
在这里插入图片描述

Jmeter命令生成HTML报告

注意:提前要配置环境变量Path
在这里插入图片描述
Jmeter命令生成HTML报告格式:
jmeter -n -t [jmx file] -l [results file] -e -o [path to output folder]

例子(Windows):
jmeter.bat -n -t F:\GitHub\jmeter\baidu_搜索参数化.jmx -l F:\GitHub\jmeter\result.jtl -e -r -o c:\tmp
命令参数解析:
-n :以非GUI形式运行Jmeter
-t :source.jmx 脚本路径
-l :result.jtl 运行结果保存路径(.jtl),此文件必须不存在
-e :在脚本运行结束后生成html报告
-r : 设置分布式执行
-o :用于存放html报告的目录,注意,目录必须为空。

在这里插入图片描述
在这里插入图片描述
打开c:\tmp\index.html 分析报告内容。

发布了44 篇原创文章 · 获赞 1 · 访问量 1414

猜你喜欢

转载自blog.csdn.net/cc_park/article/details/104188674