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. extjs常用技巧

    grid http://extjs.org.cn/node/590 监听 http://extjs.org.cn/node/593 总结 http://extjs.org.cn/node/641 常用 ...

  2. IntelliJ IDEA出现Search for无法退出的问题

    说明: 1.这个不是安装了Vim导致的 解决方式: 1.可能是在不正确的系统时间启动的IDEA,然后启动完成后又把时间改成正确的. 2.直接方式是重启. 3.间接方式是修改完时间后再重启一下全部IDE ...

  3. CentOS 笔记

    对安装CentOS安装使用过程中的问题做一个笔记,第一次安装,安装的是7.0版本,最小化安装. 安装环境 :Windows 2012 R2 Standard,Hyper-V Virstual Mach ...

  4. 邁向IT專家成功之路的三十則鐵律 鐵律七:IT人效率之道-時間管理

    彷間有許多與時間管理方面的相關書籍與實務課程,但是究竟對於一位IT專業人士來說,甚麼樣的時間管理法則才是最有效率的呢?過去有許多IT朋友私下請教顧大俠這個問題,而顧大俠始終沒有很完整的分享這方面的經驗 ...

  5. 【UI】为项目添加类似于淘宝筛选列表勾选的ui-choose

    jQuery下载的地址:http://www.htmleaf.com/jQuery/Form/201512182916.html GitHub地址:https://github.com/wangxin ...

  6. EasyHook库系列使用教程之四钩子的启动与停止

    此文的产生花费了大量时间对EasyHook进行深入了解同一时候參考了大量文档 先来简单比較一下EasyHook与Detour钩取后程序流程 Detours:钩取API函数后.产生两个地址,一个地址相应 ...

  7. jsp中获取spring 管理的bean(通过config)

    WebApplicationContext wac = (WebApplicationContext)config.getServletContext().getAttribute(WebApplic ...

  8. Odoo MRP 实际成本

    Odoo MRP 8 对于 产成品并不支持 实际成本记账 本人开发了一个模块,支持此特性, 可以在 淘宝店铺 购买 https://item.taobao.com/item.htm?_u=85jr9d ...

  9. 使用match、test控制输入字符格式后键盘向左向右键光标自动定位解决

    直接举例说明(正则表达式替换红色区域即可) /** * 判断是否位数字 * @param obj 数字 */ function numOnly(obj) { if(!(/^\d*$/.test(obj ...

  10. VS2010/12多核编译

    在工作中,我们的一个完整的项目肯定是由多个个解决方案组成的,我们在调试的时候就会不断的去编译修改过的解决方案,如果当修改的解决方案多了以后我们编译的速度就在很大的程度上决定了我们的工作效率.这时候我们 ...