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,35.6,-94.32,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,查看测试结果。