JMeter参数化设置——通过函数助手
Now you can know everything in the world, but the only way you're findin' out that one is by givin' it a shot.
你可以了解世间万物,但追根溯源的唯一途径便是亲身尝试。
电影《心灵捕手》
测试用例描述:
性能测试要求:5个用户循环2次。
| 用例名称 | 操作步骤 | 预期结果 | 备注 |
| 新建项目并设置团队时统计项目总工时 | 1、 进入项目视图,点击右侧的”添加项目“链接。 | 系统会自动计算这个项目总的可用工时。 | |
| 2、 出现项目添加的页面,添加一个新项目并保存 项目名称为: Test_Project_01 项目编号为: TP_01 项目时间为2016-01-01~2016-01-31 团队名称:TestTeam 关联产品:禅道管理系统 项目描述为:“测试组合模块之间的功能、性能” |
|||
| 3、 在保存后弹出的对话框中,选择“设置团队” | |||
| 4、 为该项目设置5个测试人员,不包括“管理员” |
这个测试用例仅仅是举例,实际测试设计工作中此类一般应用软件的类似功能是不涉及如此复杂的并发性能测试的,有兴趣的可以参考性能测试设计相关知识。
第一步: 创建测试计划

第二步: 创建线程组(调试过程中将用户数和循环次数均设置为1)

线程组说明:
域Ramp-Up Period:这个属性表示每个用户启动的迟延时间。例如,如果你输入Ramp-Up Period为5秒,JMeter将会在5秒结束前完成启动所有的用户。所以,如果你有五个用户并且Ramp-Up Period为五秒,那么开始用户的延迟就是1秒。(5个用户 / 5秒 = 1 用户每秒)。如果你设置其值为0,JMeter将会立即启动你所有的用户。
域Loop Count:这个属性表示你的测试的重复次数。如果你设置为1,JMeter将你的测试只运行一次。要让JMeter不断的运行,你要选择"永远"这个复选框。
第三步: 添加HTTP请求默认值

所有的HTTP请求都将发送到相同的Web服务器127.0.0.1。向这个域中输入这个域名,这是唯一一个需要我们去修改它的默认值的文本域,其它的文本域都保留它们的默认值。
注意: HTTP请求默认值元件并不告诉JMeter来发送HTTP请求,它仅仅定义这个HTTP请求所用的默认值。
第四步: 添加HTTP cookie
除非你的应用程序明确的不使用Cookies,几乎所有的网站应用程序都会使用cookie支持。要添加cookie支持,可以简单的在你的测试计划中给每一个线程组添加一 HTTP Cookie管理器。这样确保每个线程组有自己的cookies,但是共享跨越所有的HTTP请求对象。添加 HTTP Cookie管理器,简单地选择这个线程组,选择添加-->配置元件-->HTTP Cookie管理器,也可以从编辑菜单或通过右键点击来实现添加。
第五步: 添加设置HTTP代理服务器
第六步: 录制脚本
第七步: 回放脚本
以上5~7步如有清楚可以参考上一篇文章《使用JMeter录制脚本并调试》
第八步: 优化脚本(参数化关键字段)
1、明确哪些变量(字段)需要参数化
从回放结果中看到“项目名称”、“项目代号”重复了,导致回放失败,接下来就对这两个字段进行参数化

2、点击JMeter菜单栏的“选项”-“函数助手”,弹出函数助手设置框。
a. 选择一个功能:“_CSVRead”
b. CSV文件路径: 选择存放CSV文件的路径
c. CSV文件序列号: 从0开始

CSV文件格式如下, 参数的值之间使用逗号分隔,第1列"Test_Project_0X"对应上图中的序列号为0, 第2列为1。

d. 点击“生成”按钮,复制生成的字符串。
e. 找到对应的HTTP请求,用生成的字符串替换原HTTP请求中的值

3、1个用户循环1次,再次回放脚本并查看回放结果, 脚本回放通过。
第九步: 执行并发测试
设置线程组的用户数为5, 循环次数为2, 执行并发测试。
注意:
1. CSV文件中使用过的第一行的值,不能再被使用, 执行并发测试之前应该删除该行的值。
2. 5个用户循环2次,总共执行10次,参数值的数量需要满足10次测试使用。
第十步: 通过监听器查看测试结果。
summary report 摘要报告
摘要报告在测试中为每个不同命名的请求创建表行。这类似于聚合报表,但它使用的内存较少。

aggregate graph 聚合图
聚合图类似于聚合报表。主要的区别是聚合图提供了一个简单的方法来生成条形图,并保存为PNG文件的图形。

图形结果
图形结果监听器生成一个简单的图,绘制所有采样时间。沿着图的底部,当前样本(黑色),当前所有样品的平均值(蓝色),当前标准偏差(红色),当前吞吐量率(绿色)以毫秒为单位显示。

“吞吐量”表示服务器处理的请求/分钟的实际数目,包括实际测试事务和JMeter自己的内部处理时间。这个数字代表服务器每分种处理请求的真实值,可以增通过加线程数和/或减少延迟,以发现服务器的最大吞吐量。
JMeter参数化设置——通过函数助手的更多相关文章
- Jmeter(十一)函数助手
可以在JMeter的选项菜单中找到函数助手对话框 我们可以从下拉列表中选择一个函数,并为其参数设定值.如图,表格的左边一列是函数参数的简要描述,右边一列是供用户填充参数的值.不同函数要求的参数也不同. ...
- Jmeter参数化设置,多用户登录
一.模拟多用户登录场景 如登录模式如下图所示,登录界面中需要输入:用户名.密码.验证码 用户名以及密码均是固定值,不需要做处理.验证码需要处理一下,可以后台配置成固定值,具体可以找开发咨询. 在此场景 ...
- jmeter参数化数据(_csvread函数、用户自定义变量等)
以下是转载内容,仔细看过后,觉得用得最多的应该是csvread函数.用户自定义变量以及CSV DATA CONFIG控制器这几个,但是做练习之后,在结果树和聚合报告中怎么查看执行结果是个问题,没找到对 ...
- Jmeter中各种参数化设置的方法
Jmeter中有较多需要参数化测试的地方: 1.从一个用户登录的接口获取登录后的token值,取值后用于后续接口调用 2.获取用户浏览后的cookies信息,需要用到HTTP Cookie 管理器来为 ...
- Jmeter参数化(_csvread函数、CSV Data Set Config)
方法一.Jmeter自带的函数助手——_CSVRead函数 1.数据准备:先在excel存储数据,保存格式选择csv格式.或在记事本存储数据,列之间用英文逗号分隔,保存为txt 2.使用_csvrea ...
- jmeter函数 助手
Jmeter(一)——函数助手 __char:把一组数字转化成Unicode __counter:计数器,支持多线程(可以理解为多用户) 线程组设置为2个用户,循环两次${__counter(true ...
- JMeter参数化实现
参数化:指对每次发起的请求,参数名称相同,参数值进行替换,如登录三次系统,每次用不同的用户名和密码. 1.1.1. 从csv文件读取(CSV Data Set Config) 步骤: 1)新建一个文 ...
- Jmeter参数化的方法
测试接口时,使用Jmeter在请求中输入参数,若是有多种情况,有多条测试参数,是不是要每个情况逐条输入呢?逐条输入会让人觉得比较麻烦,因此,就有了Jmeter参数化. Jmeter参数化的方法: 用户 ...
- jmeter生成时间的函数
在一个接口测试中,需要提交的请求中要带时间,在看完jmeter帮忙文档,正好总结一下 1.需求 在一个http请求中请求数据要带有时间,如下: 2.实现 突然想到jmeter自带的函数助手好像是可以实 ...
随机推荐
- Leetcode总结之Tree
package Tree; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; imp ...
- CSS3模拟IOS滑动开关
前言 H5站点需要IOS滑动按钮的效果,想了想似乎CSS3能搞起,就折腾出来了...挺简单的..请看注释 效果 代码 <!DOCTYPE html> <html lang=" ...
- [转] 常用SQL查询语句
sunada 的原文地址 常用SQL查询语句 一.简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SELECT * FROM emp; 3. 查询指 ...
- Activiti 流程部署方式 activi 动态部署(高级源代码篇)
Activiti的流程 部署方式有非常多种方式,我们能够依据activit工作流引擎提供的ap方式进行部署. 当然了实际需求决定你要使用哪一种api操作,后面的总结具体介绍了使用场景. 以下看一下部署 ...
- DICOM医学图像处理:Deconstructed PACS之Orthanc
背景: 此篇博文介绍一个开源的.基于WEB的DICOM Server软件.该开源软件完全使用C++编写,不依赖于第三方数据库(内置了SQLite数据库)或其他框架,支持RESTful API设计模式. ...
- iOS集成百度地图方法步骤
前言:app中的导航功能越来越流行,现在我自己做的项目中也有此需求,做过了后记录下笔记. 由于源代码保密所以这里仅仅提供demo,下面是效果图 一:iOS地图SDK 1.打开 百度地图api链接 i ...
- Linux包括hash_map和hash_set的not declared问题
当在Linux下cpp文件包括hash_map或hash_set时.会出现"'hash_map' was not declared in this scope"问题. #inclu ...
- 【Access2007】Access2007的打开方式
Access2007提供了多种打开方式 仅仅读与非仅仅读就不用说了,就是能编辑与不可以编辑的差别 是否以独占的方式打开是Access2007的打开方式的核心 这里什么都没有写的打开是指以"共 ...
- python(29)- 面向对象练习Ⅲ
题目: 基于授权定制自己的列表类型,要求定制的自己的__init__方法, 定制自己的append:只能向列表加入字符串类型的值 定制显示列表中间那个值的属性(提示:property) ...
- http 错误代码一览表
http协议一些常见的状态码为: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分 ...