JMeter---QPS(Query Per Second)

QPS为每秒查询率。是一台查询服务器每秒能够处理的查询次数,在因特网上,作为域名系统服务器的性能经常用每秒查询率来衡量。
步骤:
1、添加线程组(之前学过啦)注:参数 ramp-up period 用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。假如未指定,也就是说ramp-up period 为零, JMeter 将立即建立所有线程,假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。(JMeter中时间单位为毫秒)
2、添加取样器(请求)
3、添加定时器-》Constant Throughput Timer(吞吐量定时器),设置QPS,控制给定的取样器发送的请求吞吐量

target Throughput(in samples per minute):目标吞吐量。注意这里要求是每分钟发送的请求数,实际填的数值是60*QPS。
Calculate Throughput based on:

  • This thread only:控制每个线程的吞吐量,选择这种模式时总的吞吐量为设置的target Throughput乘以该线程的数量。
  • All active threads:设置的target Throughput将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行,活跃线程指同一时刻同时运行的线程。
  • All active threads(shared):与All active threads的选项基本相同,唯一的区别是每个活跃线程都会在所有活跃线程上一次运行结束后等待合理时间后再次运行。
  • All active threads in current thread group:设置的target Throughput会分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和ALL active threads选项的效果完全相同。
  • All active threads in current thread group(shared):与All active threads in current thread group基本一致,区别是,每一个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后运行。

此次操作中选择This thread only。
4、添加监听器-》察看结果树+聚合报告(关心请求响应时间)
5、运行脚本
6、分析聚合报告
聚合报告项:

  • label:每个JMeter的element(例如:HTTP Request)都有一个Name属性,这里显示的就是Name属性的值
  • #samples:表示这次测试中一共发出了多少请求。
  • Average:平均响应时间--默认情况下是单个请求的平均响应时间,当使用了transaction controller时,也可以以transaction为单位显示平均响应时间。
  • Median:中位数,也就是50%用户的响应时间。
  • 90%Line:90%用户的响应时间。
  • Min:最小的响应时间。
  • Max:最大的响应时间。
  • Error%:本次测试中出现错误的请求数/总请求数。
  • Throughput :吞吐量--默认下表示每S完成的请求数
  • KB/sec:每S从服务器端接收到的数据量

JMeter断言

1、响应断言(最常用)
2、Size Assertion:断言返回字节大小。设定返回字节大小,若返回字节大小不符,则断言失败,反之成功。
3、Duration Assertion(持续时间断言)
如果响应时间超过设定的时间,则断言失败,反之成功。
添加监听器-》断言结果来查看断言是否成功
 
响应断言的相关使用(打开百度首页):
断言成功---断言返回数据中是否包含“百度一下”

查看断言结果--断言成功

断言失败---断言返回数据中是否包含“博客园”

响应断言失败

JMeter参数化

将参数同请求一起发送,参数值为引用值
三种参数化方法
1、用户参数
步骤:1)前置处理器-》用户参数-》添加变量-》名称:user,值:ww
          2)在HTTP请求中的Parameters-》添加-》名称:name,值:${user}(同请求一起发送参数name ,参数值为引用用户参数中的变量“user”)

在此可忽略请求失败,观察发送的请求的内容,参数name以被带上,且值为用户参数中变量user的值,表明参数生效。

2、CSV数据配置---从文件中读取参数内容

文件名:文件所在的路径(csv\txt)
文件编码:一般为空
变量名称(西文逗号间隔):文件中所表示的参数项,各参数之间用逗号隔开,参数项的名称应该与HTTP请求中的参数项一致。

其他的顾名思义。。。额

先新建一个text(E:\test.txt)--建立三组数据,第一列为变量user的值,第二列为变量passwd的值。

步骤:
配置元件-》CSV数据设置

设置HTTP请求参数


3、随机参数化--利用函数助手对话框生成函数,粘贴到HTTP请求Parameters里。

点击工具栏中问号左边的图标(函数助手对话框)-》“选择一个功能”选择_Random填入生成随机数的范围(1-5)-》点击“生成”-》拷贝函数字符串到HTTP请求Parameters中变量name的值处

同请求一起发送的参数值为1-5的随机数,有函数字符串生成。


察看结果树中的请求,参数值为4。

JMeter集合化

设定几(多)个用户一起进行操作,如秒杀设定集合点为了实现绝对的并发,测试服务器的承载能力。当所有的线程都达到集合点的时候,才开始发送请求。

实现步骤:定时器-》Synchronizing Timer(同步定时器)
注:集合点一定要放在需要集合点的元件前
设置集合点:Synchronizing Timer的Number of Simulate Userd to Group by:2---即设置2个并发用户。有2 个用户才发送请求。
Timout in millseconds:集合好之后隔多少毫秒进行执行HTTP请求。
1、设置4个线程数时,发送4个请求,每2 个请求发送。

2、设置3个线程数,发送2个请求。剩下一个线程不能集合,故没有发送请求。

最新文章

  1. [Hadoop in Action] 第2章 初识Hadoop
  2. [bzoj1007][HNOI2008][水平可见直线] (斜率不等式)
  3. NGUI制作属于自己Button
  4. EM算法(4):EM算法证明
  5. 太阳升起并下落的小动画-SWIFT
  6. Android Unlock Patterns
  7. 经典创意slogan大全
  8. 创建link server链接服务器碰到的问题及解决办法
  9. Ant编译环境
  10. CSS jQuery HTML5 CSS3
  11. ASP.NET 3.5路由总结篇
  12. Mysql 时间操作
  13. Angular2 VS Angular4 深度对比:特性、性能
  14. Java之品优购课程讲义_day06(7)
  15. 量化交易之下单函数和context对象
  16. vue-cli 构建项目在IE中无法运行解决方式(build之后可运行)
  17. yii2场景
  18. 无法连接到 OPC服务器[无此类接口支持(异常来自HRESULT:0x80004002(E_NOINTERFACE))]
  19. mysql 系统用户最大文件打开数限制
  20. bzoj 2784 时间流逝 —— 树上高斯消元

热门文章

  1. Docker创建镜像文件并在容器中运行
  2. HUD 1288 Hat's Tea(反向的贪心,非常好的一道题)
  3. Truncated class file 问题的解决
  4. http1.X与2.0
  5. 轻量ORM-SqlRepoEx (八)MySQL、Sql Service 迁移
  6. 系统优化怎么做-SQL优化
  7. OC之block 和协议
  8. Swift_方法
  9. 【Java】使用Atomic变量实现锁
  10. hdu Hat's Fibonacci(用了kuangbin模板)