Jmeter断言、参数化及集合点
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个请求。剩下一个线程不能集合,故没有发送请求。
Jmeter断言、参数化及集合点的更多相关文章
- Jmeter入门--参数化、集合点
一.参数化 1.用户定义的变量 用户自定义变量中的定义的所有参数的值在测试计划的执行过程中不能发生取值的改变,因此一般仅将测试计划中不需要随迭代发生改变的参数(只取一次值的参数)设置在此处.例如应用的 ...
- 7 jmeter之参数化
badboy里参数化(前面4 jmeter badboy脚本开发技术详解已讲过) jmeter里参数化-1 用户参数 1.打开badboy工具,点击红色按钮开始录制,在地址栏目中输入地址:www.so ...
- 转 7 jmeter之参数化
7 jmeter之参数化 badboy里参数化(前面4 jmeter badboy脚本开发技术详解已讲过) jmeter里参数化-1 用户参数 1.打开badboy工具,点击红色按钮开始录制,在地 ...
- 聊一聊Jmeter的参数化
背景 前面一篇讲了 JMeter 的一个最简单的例子,这篇聊一下 JMeter 的参数化. 在开始之前先来一个单元测试的例子,感受一下参数化. 上面是一个用 xUnit 写的单元测试,这个单元测试就是 ...
- jmeter ---断言持续时间(Duration to Assert )和断言文件大小
jmeter ---断言持续时间(Duration to Assert )和断言文件大小 1.断言持续时间(Duration to Assert ) Duration to Assert -- 允许的 ...
- Jmeter性能测试-----参数化方法CSVRead函数
Jmeter里面参数化的方法有很多,大家可以结合自己的项目情况来使用哪种方式来调用测试 数据. 下面我给大家介绍下Jmeter里CSVRead函数来获取参数的方法: 我这里已去到直播间发表评论为例(这 ...
- JMETER断言:终极指南
你想要: 检查服务器响应是否包含特定字符串, 或验证服务器返回了HTTP 200 OK, 或者检查json字段的值(使用类似JsonPath$.store..price). 断言是要走的路. 问题是: ...
- JMeter学习-参数化
JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户 ...
- Jmeter断言-所有断言讲解
Jmeter断言-所有断言讲解 jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似: 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中 ...
随机推荐
- 几句代码简单实现IoC容器
前言 最近在调试EasyNetQ代码的时候发现里面有一段代码,就是IoC容器的简单实现,跟着他的代码敲了一遍,发现了奇妙之处.当然也是因为我才疏学浅导致孤陋寡闻了.他的思路就是通过动态调用构造函数生成 ...
- 理解JavaScript执行环境与作用域
执行环境定义了变量或函数有权访问的其他数据,决定了它们的各自行为.每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中,虽然我们无法访问这个对象,但是解析器在处理数据时 ...
- fc全连接层的作用、卷积层的作用、pooling层、激活函数的作用
fc:1.起到分类器的作用.对前层的特征进行一个加权和,(卷积层是将数据输入映射到隐层特征空间)将特征空间通过线性变换映射到样本标记空间(也就是label) 2.1*1卷积等价于fc:跟原featur ...
- 使用libcurl下载文件小例
libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP……一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要 ...
- python入门基础:文件的读写
文件的读写操作运用广泛,无论是何种语言都会涉及到文件的输入输出. 下面简单的总结一下文件的读写: 1:open()函数 f = open('workfile', 'w') 函数 open()返回文件的 ...
- HDU 2048 神、上帝以及老天爷(错排概率问题)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2048 神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others) ...
- [SharePoint]如何去掉欢迎导航的信息?
在我们实际的开发过程中,经常会把SharePoint中的一些已有的feature去掉,如欢迎信息下面的“我的设置”,“对本页面进行个性化设置”.详细见下图: Figure 1 常见的欢迎信息的界面 ...
- 浮动产生的高度坍塌解决方法以及使用siblings()方法获取同级元素
高度坍塌:如果一个没有设置高度div里的元素都是浮动元素,这个时候就可能产生高度坍塌,因为div的高度都是普通元素撑起来的,div里的元素浮动之后,元素就会脱离文档流,所以父级的div高度就可能为零, ...
- github常见操作和常见错误
配置git的时候会使用git config,三种配置分别为git config.git config --global.git config --system. 它们之前的优先级为(由高到低):git ...
- TeamViewer13个人版使用中提示为商用版导致无法使用
前言:由于使用teamviewer个人免费版较频繁,被软件识别到不能再继续免费使用,无奈没有多余的资金进行购买正版软件, 通过鼓捣得到如下继续免费使用方案,整理下来以备不时之需,也可以被有同此困惑的朋 ...