主要组件
测试计划 test plan
线程组 thread group
配置元件 configuration
逻辑控制器 logic controller
取样器 sampler
断言 assertion
监听器 monitor
正则表达式提取器
线程数:请求发送的用户数,即并发数
ramp-up period(in sencond):创建完所有线程的时间,防止对服务器有太大负载
一个简单的压测
如下设置:10秒内启动100个线程(100个用户),每个samper请求访问一次。相当于每秒启动10个用户
报告分析
Label:http请求名称
Samples:一个http请求发起的次数
Average:每个请求的平均响应时间
Mendian:50%的用户响应的时间
Min:最小时间
Max:最大时间
Error%:本次请求中响应错误的占比
Throughtput:吞吐量,每秒完成的请求数,request per second
KB/sec:每秒从服务器接收到的数据量
性能指标
QPS:query per second 每秒查询率
并发用户数量:线程数
吞吐率:KB/sec,每秒从服务器接收到的数据量
点击率:samples/sec,每秒向服务器发送的请求的数量
断言
获取响应数据中的值
Q:用户定义的变量需要防止在一个结构树的最前面位置执行吗
A:会在测试的初始阶段执行,无论它处于测试数的什么位置
Q:什么时候使用事务控制器?为什么要使用事务控制器?
A:将多个samper请求放置在一个事务控制器下面,选中gegeate parent sample,那么聚合报告中将统计的是各samper请求数据的总计值,用于有多个请求是完成同一个目的
Q:正则表达式提取器作用是什么?
A:作用:从请求的响应结果中取到需要的内容,然后再其他地方引用
Q:正则表达式提取器使用方法?
1、引用名称:是指在其他地方使用${变量名}进行引用
2、正则表达式:比如要提取响应文本"<title>百度一下,你就知道</title>百度一下,你就知道"中的"百度一下,你就知道",那么正则表达式就为:<title>(.*)</title>,括号里的内容代表要获取的内容百度一下,你就知道百度一下,你就知道百度一下,你就知道
3、模板:用$$引用起来,如果正则表达式中有多个括号括起来的值,如<title>(value1)(value2)(value3)</title>,则模板可以是:$0$,$1$,$2$,分别对应
4、匹配数字:0代表随机,-1代表所有,其余正整数代表将在已提取的内容中
5、缺省值:正则匹配失败时,取的值
Q:接口请求有登陆权限控制,每次访问接口的时候,都提示我没有登陆,无权访问,怎么解决?
A:发送请求的时候经常要校验cookies信息,no cookies或者cookies无效的时候,都访问不了接口,jmeter有一个元件:HTTP Cookie 管理器
cookie从哪里获取?抓包工具,或者浏览器F12键都可以获取到这个接口请求的cookies数据,如下图为charles中请求接口request中cookies中的数据,填写到上图cookies管理器中,再jmeter中访问接口,就会有Cookie Data的数据