测试计划一

1)测试网站:http://www.geneedu.cn/和http://supu01.1688.com/

2)测试目的是该网站在负载达到20 QPS 时的响应时间。

备注:

QPS : Query Per Second 每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。

1、建立测试计划

启动jmeter后,jmeter会自动生成一个空的测试计划,用户可以基于该测试计划建立自己的测试计划。

2、添加线程组

一个性能能测试请求负载是基于一个线程组完成的。测试计划右键弹出下拉菜单(添加-->Threads(Users)--->线程组)中选择线程组即可。jmeter中 每个测试计划至少需要包含一个线程组,当然也可以在一个计划中创建多个线程组。在测试计划下面多个线程是并行执行的,也就是说这些线程组是同时被初始化并同时执行线程组下的Sampler的。

线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。

(1)线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。

(2)准备时长: 设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。

(3)循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。

note: 设置合理的线程数对于能否达到测试目标有决定性的影响。在本例中,要求得到网站首页在20 QPS 负载情况下的响应时间,如果如果线程数量设置的过小,则很可能无法达到设定的QPS要求。另外,设置合理的循环次数也很重要,除了上面介绍的固定循环次数 与永远外;也可以灵活的选择设定测试运行时间。勾选“调度器”,进行调度器配置。

3.添加http请求

添加完成线程组后,在线程组上右键菜单(添加--->Sampler--->HTTP请求)选择HTTP请求。对于jmeter来说,取样器(Sampler)是与服务器进行交互的单元。一个取样器通常进行三部分的工作:

向服务器发送请求;

记录服务器的响应数据;

记录相应时间信息;

一个HTTP请求有着许多的配置参数,下面将详细介绍:

(1)名称:本属性用于标识一个取样器,建议使用一个有意义的名称。

(2)注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。

(3)服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。

(4)端口号:目标服务器的端口号,默认值为80 。

(5)协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https ,默认值为http 。

(6)方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

(7)Content encoding :内容的编码方式,默认值为iso8859

(8)路径:目标URL路径(不包括服务器地址和端口)

(9)自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。

(10)Use keep Alive : 当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。

(11)Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。

(12)同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。

(13)同请求一起发送文件:在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟。

(14)从HTML文件获取所有有内含的资源:当该选项被选中时,jmeter在发出HTTP请求并获得响应的HTML文件内容后,还对该HTML进行 Parse 并获取HTML中包含的所有资源(图片、flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载。

(15)用作监视器:此取样器被当成监视器,在Monitor Results Listener 中可以直接看到基于该取样器的图形化统计信息。默认为不选中。

(16)Save response as MD5 hash? :选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。

  在这里我们添加两个HTTP请求,分别用于对www.geneedu.cn和supu01.1688.com发送请求。

4.设置QPS限制

本次性能测试的需求中提到测试的目的,因此需要控制向首页发送请求的负载为20QPS。

 一种可行的方法是逐步调整测试计划中的线程计算的数量以及为取样器(Sampler) 添加定时器(Timer),以使HTTP取样器发出的请求的QPS保持在20个左右。但这种方法耗时耗力,需要经过多次尝试才能达到;另一方法,完全通过 设置定时器来控制QPS,一旦取样器的响应时间发生改变(网络环境发生改变),就需要重新调整定时器的等待时间。

Jmeter提供了一个非常有用的定时器,称为Constant Throughput Timer (常数吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量。

右键点击www.geneedu.cn ,弹出菜单(添加--->定时器--->Constant Throughput Timer)选择Constant Throughput Timer

Constant Throughput Timer 的主要属性介绍:

(1)名称 :定时器的名称

(2)Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,因此,对应测试需求中所要求的20 QPS ,这里的值应该是1200 。

(3)Calculate Throughput based on :有5个选项,分别是:

This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的target Throughput乘以该线程的数量。

All active threads : 设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。

All active threads in current thread group :设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。

All active threads (shared ):与All active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行。

All cative threads in current thread group (shared ): 与All active threads in current thread group基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行。

该元件仅作用于www.geneedu.cn,设置定时器的Target throughput为1200/分钟(20 QPS),设置Calculate Throughput based on 的值为All active threads 。

当然,Constant Throughput Timer只有在线程组中的线程产生足 够多的request 的情况下才有意义,因此,即使设置了Constant Throughput Timer的值,也可能由于线程组中的线程数量不 够,或是定时器设置不合理等原因导致总体的QPS不能达到预期目标。

5.添加监听器(Listener)

脚本的主要部分设置完成后,需要通过某种方式获得性能测试中的测试结果,在本例中,我们关心的是请求的响应时间。

Jmeter 中使用监听器元件收集取样器记录的数据并以可视化的方式来呈现。Jmeter有各种不同的监听器类型,因为HTTP请求,我们可在添加聚合报告,更为直观的查看测试结果。

添加聚合报告,右键点击线程组,在弹的菜单(添加--->监听器--->聚合报告)中选择聚合报告。

6.运行脚本

点击工具栏上的运行按钮,或者点击菜单栏“ 运行--->启动 ” 或者使用快捷键ctrl+r 来运行程序。

7.聚合报告

转载于:https://www.cnblogs.com/nanaheidebk/p/9953468.html

JEMTER简单的测试计划相关推荐

  1. JMeter基础之一个简单的性能测试

    我们了解了jmeter的一此主要元件,创建一个简单的测试计划来使用这些元件.该计划对应的测试需求: 1)测试目标网站是www.51cto.com 2)测试目的是该网站在负载达到20 QPS 时的响应时 ...

  2. jdbc插入数据_JMeter数据库测试计划

    在本章中,我们将看到如何创建一个简单的测试计划,测试数据库服务器.对于我们的测试目的,我们使用MySQL数据库服务器.您可以使用任何其他数据库进行测试.MYSQL的安装和创建表,请参阅MYSQL教程. ...

  3. 如何制定一份高质量的测试计划

    在编写测试计划之前首先我们需要明确几点: 第一.什么是测试计划? 第二.为什么要制定测试计划? 第三.怎样指定切合实际的测试计划? 第四.测试计划都包含哪些内容? 一.什么是测试计划: 1.测试计划是 ...

  4. Apache JMeter--网站自动测试与性能测评

    Apache JMeter--网站自动测试与性能测评 2013-02-28 15:48:05 标签:Jmeter From:http://bdql.iteye.com/blog/291987 出于学习 ...

  5. jmeter聚个报告怎么看qps_【jmeter】jmeter测试网站QPS

    上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测试目标网站是fnng.cnblogs.co ...

  6. 利用JMeter进行Web测试(简介适合初学者)

    利用JMeter进行Web测试 JMeter介绍 脚本录制 运行JMeter进行测试 JMeter主要组件介绍 参数化设置 动态数据关联 使用命令行运行JMeter脚本 利用XSLT分析JMeter结 ...

  7. bash脚本创建变量_创建一个Bash脚本模板

    bash脚本创建变量 在本系列的第一篇文章中,您创建了一个很小的单行Bash脚本,并探讨了创建Shell脚本的原因,以及为什么它们是系统管理员而非编译程序最有效的选择. 在第二篇文章中,您将开始创建一 ...

  8. 我:一个女孩从软件测试工程师到主管的成长

    燕子(化名) 从前是学经济贸易的,由于对测试行业的强烈兴趣,毕业后又学习了软件测试.工作不到一年的时间里,我从测试员升职到测试主管了.对于学习.工作,积累了许多点点滴滴的经验,愿意与大家分享. 走入测 ...

  9. 第十一次作业 - Alpha 事后诸葛亮(团队)

    软工 · 第十一次作业 - Alpha 事后诸葛亮(团队) 组长本次作业链接 现代软件工程 项目Postmortem 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场 ...

最新文章

  1. 里氏替换原则(Liskov Substitution Principle,LSP)
  2. PD003-NET通用后台系统
  3. Python将PDF文件转换成PNG的方案
  4. hdu1053 Entropy hdu2527 Safe Or Unsafe
  5. 《恋上数据结构第1季》二叉树代码实现
  6. TCP完成端口服务器构建
  7. 搜索——广度——I - A计划 (骑士救公主,三维bfs())
  8. 蚂蚁篇无聊吗?看看猎人骨灰粉丝绝妙分析(1)
  9. 当析构函数遇到多线程 转载
  10. Web前端HTML使用
  11. Tromino(更准确地说是“右Trominio”)是一个由棋盘上的三个1x1方块组成的L型骨牌。
  12. [OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法...
  13. 会计科目 分类 说明
  14. 服务器单核和多核性能,单核性能重要还是多核性能重要?
  15. Python学习笔记(一)压缩与解压缩文件
  16. MySQL中建表时 pk、nn、qu、b、un、zf、ai、g代表的意思
  17. 你所在专业的特色是什么计算机,专业特色是什么
  18. qq撤回的消息怎么找回 python_Python实现微信中找回好友、群聊用户撤回的消息功能示例...
  19. linux系统可以装access吗,安装华为FusionAccess Linux版本的方法
  20. Cadence IC设计环境搭建( IC617+MMSIM151+Calibre2015)

热门文章

  1. tomcat7 - 烫手山芋之热部署
  2. Android的手势的保存
  3. Lintcode: Unique Paths
  4. Ubuntu Linux配置IP地址
  5. 闪光问题的手术治疗的副作用(重要)
  6. flink on yarn模式出现The main method caused an error: Could not deploy Yarn job cluster问题排查+解决
  7. 封装时间转换工具类_利用swig封装C++的dll为C#方便使用
  8. Ubuntu使用技巧(三), 硬盘安装Linux(UEFI)
  9. java机试_java机试要点
  10. echart关系树状图_干货 | 25个常用Matplotlib图的Python代码