如何利用ApacheBench进行服务器压力测试

如何利用ApacheBench进行服务器压力测试,第1张

Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便。

工具/原料

Apache

方法/步骤

打开Apache服务器的安装路径,在bin目录中有一个abexe的可执行程序,就是我们要介绍的压力测试工具。

在Windows系统的命令行下,进入abexe程序所在目录,执行abexe程序。注意直接双击无法正确运行。

执行ab命令成功后,可以看到如图提示。该帮助很清楚详细的介绍了ab的用法以及各个参数的含义。

ab 的用法是:ab [options] [http://]hostname[:port]/path

例如:ab -n 5000 -c 200 http://localhost/indexphp

上例表示总共访问http://localhost/indexphp这个脚本5000次,200并发同时执行。

ab常用参数的介绍:

-n :总共的请求执行数,缺省是1;

-c: 并发数,缺省是1;

-t:测试所进行的总时间,秒为单位,缺省50000s

-p:POST时的数据文件

-w: 以HTML表的格式输出结果

执行测试用例:ab -n 1000 -c 100 -w http://localhost/indexphp >>c:\1html

上面的测试用例表示100并发的情况下,共测试访问indexphp脚本1000次,并将测试结果保存到c:\1html文件中。

测试报告如图,可知在该100并发访问的情况下,共测试访问1000次,失败了852次。可知该脚本在此环境无法满足100并发访问的要求。

修改参数继续测试。测试并发50和30两种情况,由测试报告得知,在并发访问降到30时,错误的访问数降为39。

步骤阅读

在“服务器名称或ip”设置127001,端口号设置:8080,“方法”设置post,路径设置网站登录的地址,如“/exam/operatorAction”。

登录需传入用户、密码。在“同请求一起发送参数”列表中添加参数。参数值根据web应用设置。如login_user=0001;login_password=1;actFlag=login。

一般网站登录后,在tomcat中生成了session,之后访问其他页面将无需再次登录,前提是浏览器需支持cookie。在jmap中也同样,如要继续访问其他页面,还需做下面关键的设置。

Apache JMeter

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

         Jmeter可以用来模拟多用户来访问http(s)请求,并返回访问结果,而地图服务归根结底仍是个http(s)请求。所以我们可以使用Jmeter对地图服务进行压力测试。

        当然地图服务也有着它的特殊性,对于一般的网页服务用户是打开,浏览,跳转,关闭这些步骤。而对于一个地图服务来说用户除了以上的操作外还会不停的去放大缩小、拖拽地图。因此页面上的数据也会不停的改变所以我们要充分考虑其特殊性来设计压力测试。

1创建一个测试计划,自定义其名称和注释,并将测试计划文件保存在文件目录下。

2添加线程(组),设置线程组参数。线程组模板多样而且支持插件拓展,本文选取steping thread group作为例子。

名称: 线程组的名称

注释: 线程组注释

采样器错误后执行的动作: 分为继续、开始下一个进程循环、停止线程、停止测试、立刻停止测试五种。常用的为继续和停止测试两种。

在Steping Thread Group线程组中一下参数需要设置:

This  group will start: 本次测试中将启动的最大线程数。

First wait for: 启动第一个线程之前等待的时间。

Then start: 第一次启动的线程数。

Next add: 启动后每次增加的线程数。

Threads every: 两次增加线程数的时间间隔。

Using  ramp-up: 增加线程数的时间。

Then hold load for: 增加到最大线程数后持续的时间。

Finally stop: 停止过程中每次减小的线程数。

Threads every: 两次减小线程数的时间间隔。

3添加测试请求,并设置参数。

协议:http(s)

服务器名称或IP:填写ArcGIS server 对应的服务器名称或IP地址,要保证测试客户机和服务器网络通畅。

端口:所测试http(s)请求的端口号。在ArcGIS Server中http对应6080,https对应6443。

路径:填写测试的http(s)服务端口号后的部分。

4设置ArcGIS自定义参数

同请求一起发送的参数:

F: 返回类型,支持html | json | image | kmz四种格式,我们请求的是,选择f=image即可;

Bbox: 地图的左下角坐标和右上角坐标,排列顺序是<xmin>,<ymin>, <xmax>, <ymax>。例如bbox=-104,356,-9432,41;

Size: 返回的大小,宽度和长度,例如:size=600,550;

imageSR: 请求的坐标系统;

format: 请求的格式,有以下几种:png | png8 | png24 |jpg | pdf | bmp | gif | svg | png32

layers: 请求的图层,有四个关键词:show(显示)hide(隐藏)include(包括)exclude(不包括);例如:show:1(表示显示第一层数据),同样hide:1(表示隐藏第一层数据);

layer Definitions: 表示获取满足当前条件的数据,相当于where条件或者是Filter;例如:layerdefs=0:COM1='COPPER'(表示第0层,字段COM1中的值等于“COPPER”的所有要素);

transparent: 透明度,只对png格式有效;

5通过Bbox参数,模拟用户移动、放大缩小地图。

Bbox参数可以随http请求发送一个矩形范围,来让服务器返回对应矩形范围内的数据。通过Bbox参数传入不同大小的矩形范围和不用位置的矩形范围来模拟用户不断的放大缩小和拖拽地图。Bbox中参数为地图的左下角坐标和右上角坐标,排列顺序是<xmin>,<ymin>, <xmax>, <ymax>。首先需要一个生成的随机矩形范围的数据,可以是txt或者csv。

填写随机网格数据配置参数

变量名称: CSV文件中的表头名称,用英文逗号隔开

忽略首行: 选择true

在设置请求中添加Bbox参数,将四个坐标参数使用${}引用,填写格式为 ${XMin},${YMin},${XMax},${YMax} 。勾选编码选项

6,添加监听器收集测试结果。

添加监听器,配置监听器输出的文件路径。

启动jmeter,查看测试结果。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何利用ApacheBench进行服务器压力测试

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情