JMeter随机对某一网点进行随机压力测试

标签: jmeter 随机 网点 | 发表时间:2016-12-30 22:33 | 作者:bijian1013
出处:http://www.iteye.com

        Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java 对象、数据库, FTP服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。

        另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

        下面我对我本机的SpringMVC进行压力测试,压力测试对象为随机的几个网页链接,这几个链接是写在一个文本文件中的,在压力测试的时候会随机读取。

1.建立一个线程组


        为什么要建立线程组?原因很简单,因为我们要模拟多个线程(用户)来访问。

        线程属性部分中,线程数是启动多少个线程,我这里填写的是100,Ramp-Up Period (in seconds)表示线程之间间隔多少时间允许,单位是秒,比如如果填写1,那么1/100=0.01表示100个线程间每隔0.01秒钟请求网站。

        循环次数:100个线程运行完毕算是一次,循环次数就是这样的一个请求过程运行多少次,我这里测试就填写的是100。

      每次修改一个设置后,别忘记了保存一下。

 

2 .设置请求服务器、压力链接等信息

      接下来很自然的是,我们要测试的网站地址是什么?链接是什么?所以现在我们就来设置这些信息。右键点击我们刚创建的线程组,在弹出的菜单中,选择添加->Sampler->Http请求,弹出如下图界面:


        路径:假如你只是对一个链接进行压力测试,直接填写一个链接就ok,比如http://localhost:8080/SpringMVC/greet?name=lisi,但是大多数情况下都不是这样的,我们这里需要多个链接,就如同刚开始讲到的那样,我们要将多个链接保存到一个文本文件中,然后随机读取进行压力测试。我们可以这么做,如图:


        在选择一个功能下拉列表中选择_StringFromFile,然后在本机新建一个测试文件D:\software\Jmeter-2.13\data\test.txt,在第一行(你也可以不在第一行)的值中填写测试文件的路径,如下图:


        然后点击“生成”按钮,在生成按钮的左边文本框中将生成一个字符串如:${__StringFromFile(D:\software\Jmeter-2.13\data\test.txt,,,)}

        在test.txt测试文件中,我们每行写一个URL链接,如下格式:


        注意,每行前面并没有http://localhost:8080这样的信息,因为我们在前面已经填写了服务器地址为localhost,端口为8080,这里就没必要再为每个url填写这个相同前缀了;另外,上面的url格式也只是个例子,表示域名后的部分。

        这样一来,当我们并非请求的时候,就会从test.txt中随机选择url来进行压力测试。

        另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在Jmeter中的编码设置与你要请求的网页编码是一致的。

        路径文本框下面的选项,可以按默认的就成,Use multipart/form-data for HTTP POST是当请求中有附件的情况,一般情况下都不用选中的。

 

3.查看运行结果

        鼠标右键点击线程组,在弹出的菜单中选择添加->监听器->用表格查询结果,如下图:


 

4.运行

        当然,在运行前,请把所有修改都保存好。运行后的结果表格如下:


各属性如下:

        Sample:每个请求的序号

        Start Time:每个请求开始时间

        Thread Name:每个线程的名称

        Label:Http请求名称

        Sample Time:每个请求所花时间,单位毫秒

        Status:请求状态,如果为勾则表示成功,如果为叉表示失败。

        Bytes:请求的字节数

        如果Status为叉,那很显然请求是失败了,但如果是勾,也并不能认为请求就一定完全成功了,因为还得看Bytes的字节数是否是所请求网页的正常大小值,如果不是则说明发生了丢包现象,也不是完全成功。

在下面还有几个参数:

        样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数

        平均:每个线程请求的平均时间

        最新样本:表示服务器响应最后一个请求的时间

        偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布(这个我不是很理解)。

        当然,也可以察看结果树来看到请求及请求响应的详细信息,如下所示:



5.配置文件下载

        以上实例生成的配置文件,可下载附件《》获得。

 

附:术语

        线程组:测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。可以在“Test Plan(鼠标右击) -> 添加  ->Threads(Users) -> 线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。

        取样器(Sampler):可以认为所有的测试任务都由取样器承担,有很多种,如:HTTP请求。

        断言:对取样器返回的请求结果给出判断是否正确。

        monitor:它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等

 

文章来源: http://blog.csdn.net/hshl1214/article/details/50611910





已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [jmeter 随机 网点] 推荐:

JMeter随机对某一网点进行随机压力测试

- - 互联网 - ITeye博客
        Apache JMeter是Apache组织开发的基于Java的压力测试工具. 用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java 对象、数据库, FTP服务器, 等等. JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能.

JMETER 参数化

- - 开源软件 - ITeye博客
用Jmeter中的函数获取参数值,__Random,__threadNum,__CSVRead,__StringFromFile. 2.用户定义的变量 “配置元件”->“用户定义的变量”. 从csv文件中读取“配置元件”->“CSV Data Set Config”. 调用方法${id_g1} ${id_g2} ${id_g3}.

JMeter使用技巧

- - 博客园_首页
在这此对新版本jmeter的学习+温习的过程,发现了一些以前不知道的功能,所以,整理出来与大分享. 如何使用英文界面的jmeter. 如何使用英文界面的JMeter.   Jmeter启动时会自动判断操作系统的locale 并选择合适的语言启动,所以,我们启动jmeter后,其会出现一个倍感亲切的中文界面.

[转]JMeter进行WebService测试

- - 小鸥的博客
1. Building a WebService Test Plan参考. 1.   建立WebServiceTest Plan. 参考 http://jmeter.apache.org/usermanual/build-ws-test-plan.html. 1)      添加ThreadGroup.

[转]Jmeter测试结果分析

- - 小鸥的博客
Jmeter测试结果分析这一篇,我打算分成上下两部分. 上篇,主要讲述如何使用jmeter中Assertion对结果进行简单的分类;下篇,主要讲述的是当我们拿到测试结果后,我们应该如何去看待这些测试结果. 用过LoadRunner的人都知道,LoadRunner本身提供了很多函数可以对收集回来的结果进行一些初步的分析.

Jmeter分布式部署文档

- - BlogJava-qileilove
测试时,如果进行大数据量的并发测试时,单个电脑的CPU和内存可能无法承受,这个时候,我们需要进行一个分布式的测试,比如10000个并发,使用三台电脑来进行并发,. Jmeter提供了这种功能,你可以很轻松的实现Jmeter的这种分布式测试.   1 首先确何所有的电脑上都安装Jmeter.   2 在所有电脑上开起Jmeter,开启命令是jmeter-server.bat,而不是以前的jmeter.bat.

JMeter使用记录1 -- JDBC测试

- - CSDN博客互联网推荐文章
场景:使用jmeter对web应用和mysql数据库进行压力测试. JMeter是一款非常强大的测试工具,可以用来测试web,数据库,从07年用过之后一直对它情有独钟,下面记录下在一个项目中对它的简单使用. 项目分数据库测试和web应用测试. 数据库测试比较简单,将要测试的数据库的jdbc driver放到jmeter的lib文件夹,新建线程组,配置起100线程,循环10次,10秒启动所有线程,加入一个jdbc connection configuration,加入要进行的CRUD操作,点击启动按钮,然后通过summary report看performance.

Jmeter常用函数之__CSVRead使用

- - 行业应用 - ITeye博客
__CSVRead函数用于对脚本进行参数话,当脚本中不同变量需要不同参数值时,可以考虑__CSVRead函数. 以登录的用户名、密码为例:实际进行压力测试时,需要模拟使用不同的用户并发访问系统,此时需要我们对脚本中的用户名、密码进行参数化;下面具体介绍如何使用csvread函数:. 准备好参数取值List清单,文件格式为:csv或者txt文件,里面保存变量要读取的参数值,每个变量间用逗号相隔.

jmeter beanShell 修改http请求参数

- - ITeye博客
在使用jmeter进行测试时,需要对上一步响应的明文参数,如userName='tom' token='%sdf%sdkdfj'之类的参数,加密一下,才能进行下一步http请求,. 1、加密要引入自定义的加密函数. 2、要可以拿到第一次http的响应. 3、第二次http请求前,要动态构建参数. 2、在beanShell里拿上一次请求的响应.

Jmeter教程 简单的压力测试

- - 行业应用 - ITeye博客
Jmeter是一个非常好用的压力测试工具.   Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好.     做压力测试的常用工具.     做压力测试的步骤如下:.     本文做压力测试的例子.     第一步: 使用CSV Data Set Config 来参数化.