性能,压力

Jmeter测试地图服务性能(二)--对地图服务进行压力测试

2019-10-31  本文已影响0人  昶衿莅

Jmeter测试地图服务性能(二)--使用Jmeter对地图服务进行压力测试

一、前言废话

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

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

二、测试步骤

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

截图1:创建测试计划
截图2:保存工程文件到目录

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

JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思,换句话说一个线程组就是一组虚拟用户(virtualusers),这些虚拟用户用来模拟访问被测试系统。

截图3:添加线程组
截图4:设置线程组参数

名称:线程组的名称

注释:线程组注释

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

继续:报错,并进行本线程组的下一个线程测试。

开始下一个进程循环:报错并停止本线程组的测试进入下一个线程组的测试。

停止线程:报错并停止所有的线程组测试。

停止测试:报错并停止测试任务,包括测试数据的收集器的工作。

立刻停止测试:立刻停止jmter向服务器收发请求。

在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.添加测试请求,并设置参数。

测试请求是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元。在ArcGIS Server中指通客户机过一次HTTP(S)向服务端一次请求返回的结果。

截图5:添加http服务请求
截图6:填写测试请求参数

协议:http(s)

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

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

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

4.设置ArcGIS自定义参数

截图7:添加自定义参数

同请求一起发送的参数:

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。

PerfQA Analyzer测试(二)--生成随机矩形范围

截图8:随机网格数据
截图9:添加配置元件引入随机网格数据

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

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

忽略首行:选择true

截图10:填写随机网格配置参数

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

截图11:填写Bbox参数

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

监听器是用来对测试结果数据进行处理和可视化展示的一系列元件,如图形结果、查看结果树、聚合报告等都是常用的监听器。由于Jmeter是开源软件,社区中共享了大量的监听器用于测试结果的可视化,此处只介绍最常见的三种其他的有待大家去探索。

截图12:添加监听器

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

截图13:配置监听器输出文件路径

启动jmeter,查看测试结果。

截图14:结果树监听器输出
截图15:结果表监听器输出
上一篇下一篇

猜你喜欢

热点阅读