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参数化设置——通过函数助手的更多相关文章

  1. Jmeter(十一)函数助手

    可以在JMeter的选项菜单中找到函数助手对话框 我们可以从下拉列表中选择一个函数,并为其参数设定值.如图,表格的左边一列是函数参数的简要描述,右边一列是供用户填充参数的值.不同函数要求的参数也不同. ...

  2. Jmeter参数化设置,多用户登录

    一.模拟多用户登录场景 如登录模式如下图所示,登录界面中需要输入:用户名.密码.验证码 用户名以及密码均是固定值,不需要做处理.验证码需要处理一下,可以后台配置成固定值,具体可以找开发咨询. 在此场景 ...

  3. jmeter参数化数据(_csvread函数、用户自定义变量等)

    以下是转载内容,仔细看过后,觉得用得最多的应该是csvread函数.用户自定义变量以及CSV DATA CONFIG控制器这几个,但是做练习之后,在结果树和聚合报告中怎么查看执行结果是个问题,没找到对 ...

  4. Jmeter中各种参数化设置的方法

    Jmeter中有较多需要参数化测试的地方: 1.从一个用户登录的接口获取登录后的token值,取值后用于后续接口调用 2.获取用户浏览后的cookies信息,需要用到HTTP Cookie 管理器来为 ...

  5. Jmeter参数化(_csvread函数、CSV Data Set Config)

    方法一.Jmeter自带的函数助手——_CSVRead函数 1.数据准备:先在excel存储数据,保存格式选择csv格式.或在记事本存储数据,列之间用英文逗号分隔,保存为txt 2.使用_csvrea ...

  6. jmeter函数 助手

    Jmeter(一)——函数助手 __char:把一组数字转化成Unicode __counter:计数器,支持多线程(可以理解为多用户) 线程组设置为2个用户,循环两次${__counter(true ...

  7. JMeter参数化实现

     参数化:指对每次发起的请求,参数名称相同,参数值进行替换,如登录三次系统,每次用不同的用户名和密码. 1.1.1. 从csv文件读取(CSV Data Set Config) 步骤: 1)新建一个文 ...

  8. Jmeter参数化的方法

    测试接口时,使用Jmeter在请求中输入参数,若是有多种情况,有多条测试参数,是不是要每个情况逐条输入呢?逐条输入会让人觉得比较麻烦,因此,就有了Jmeter参数化. Jmeter参数化的方法: 用户 ...

  9. jmeter生成时间的函数

    在一个接口测试中,需要提交的请求中要带时间,在看完jmeter帮忙文档,正好总结一下 1.需求 在一个http请求中请求数据要带有时间,如下: 2.实现 突然想到jmeter自带的函数助手好像是可以实 ...

随机推荐

  1. Hibernate注解详解

    一.实体Bean 每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Entity 注解来进行声明. 声明实体Bean @Entitypublic class Flightimplem ...

  2. Neural Networks and Deep Learning学习笔记ch1 - 神经网络

    近期開始看一些深度学习的资料.想学习一下深度学习的基础知识.找到了一个比較好的tutorial,Neural Networks and Deep Learning,认真看完了之后觉得收获还是非常多的. ...

  3. PS 如何用PS制作GIF图像

    首先我们准备好要依次播放的图片(这里使用的是CS的光标缩放,只有两张图) 然后在窗口中打开动画,则下方会出现动画的面板. 点击图层按钮可以添加一帧,我们让第一帧显示为大图片,第二帧为小图片.还可以设置 ...

  4. 从TCP协议的原理来谈谈rst复位攻击

    在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接.四次握手如何把全双工的连接关闭掉.滑动窗体是怎么数据传输的.TCP的flag标志位里RST在哪些情况下出现.以下我会画一些尽量简化的 ...

  5. php.ini的载入位置

    php.ini文件找不到,载入WINDOS下的,但找不到,后来强制-c查找是OK的.思考,为什么载入window下的ini文件.1.可能是有一个默认路径.2.可能没有路径.默认载入. 问题解决:htt ...

  6. STM32串行通信USART解说笔记

    STM32串行通信USART程序例举链接:http://blog.csdn.net/dragon12345666/article/details/24883111 1.STM32串行通信USART的相 ...

  7. spring security开发步骤

    1.web.xml中加载spring ,spring security 2.spring security配置文件中配置好.... 3.自己写一个myFilter代替原有的FilterSecurity ...

  8. 分享ArcGIS Server 10.0修复安装心得

    最近,捣腾了一阵子在xp系统上安装ArcGIS Server10.0(下方均简称server),解决了一些初学者可能面临的problem,给大家贴出来, 希望能够给初学者一些有益的帮助. 我的系统环境 ...

  9. python(10)- 字符编码

    一 什么是编码? 基本概念很简单.首先,我们从一段信息即消息说起,消息以人类可以理解.易懂的表示存在.我打算将这种表示称为“明文”(plain text).对于说英语的人,纸张上打印的或屏幕上显示的英 ...

  10. 不使用while,for,if等实现加法

    不使用if, while,for,switch等实现从1到10的加法 解:这里使用静态函数和静态变量实现,利用类似的方法也能够实现从1打印到1000 class TheSum{ public: The ...