1.简介
客户端应用访问动态地图服务,主要使用的是动态地图服务的出图功能,即调用地图服务的ExportMap操作。本示例主要是测试动态地图服务的出图性能。
2.创建测试工程
使用工具栏上的New工具创建测试工程。
3.添加GIS Server服务
添加GIS Server服务是通过配置ArcGIS Server REST根地址实现。使用工具栏上的Add GIS Server工具来添加。
ArcGIS Server REST地址格式:http://<hostname>:6080/arcgis/rest/services
,如果GIS服务的访问需要登录,勾选上Requires authentication
,并输入账号密码。
添加完成,System Test会自动在GIS Servers下增加服务列表。
4.创建测试数据
4.1.加载地图服务
在上一步添加的GIS服务中选择测试的地图服务,以SampleWorldCities为例,右键选择view service,将地图服务添加到地图中。
4.2.设置数据范围
使用工具栏上的Envelope工具,在地图上画出测试的数据范围。
4.3.设置地图输出参数
使用工具栏上的Map工具,定义输出参数,如比例尺、图片大小等。
比例尺设置完成,会自动在左边树结构的Data Sources下添加bbox.csv节点。csv文件记录了地图服务使用export接口时所需的所有参数值,每个比例尺下每个bbox范围一条记录。
4.4.预览各比例尺下的数据
展开Data Sources,右键选择bbox.csv文件,选择Preview Scale Data下的各比例尺预览数据。
5.创建Web测试
5.1.创建测试
右键选择bbox.csv文件,选择Create Export Load Test-->Scale Based Transactions Test。
Scale Based Transactions Test会为每个比例尺增加一个bbox_<scale>.csv,同时在Load Tests和Web Tests下添加测试项。
5.2.负载设置
创建完测试会自动打开负载设置,也可以展开Load Tests,右键选择SampleWorldCities-->Edit打开。
示例:初始负载用户数1个,停止负载时用户数3各,步长1个用户,每次增加用户耗时时长5秒,每次负载持续时间1分钟。
5.3.监控的Server设置
(1)监控Server设置
设置内容包括:增删监控服务器,服务器的登录用户,测试连接等。默认情况下只添加了System Test所在的客户机。
点击Auto会自动将与测试相关的服务器添加进来。
(2)添加远程监控服务器注意事项
windows平台需要开启WMI访问才支持被System Test远程监控。开启WMI的方法见文末附录章节。
特别需要注意的是:System Test软件必须以开启WMI时设置的远程访问账号来运行。否则点击Auto或者手动Add服务器都不会将远程服务器添加进来。
6.执行测试
6.1.开始执行测试
展开Load Tests,右键选择SampleWorldCities-->Start Load Test,或者使用工具栏上的Start Load Test工具。
6.2.监测执行情况
测试执行过程中会动态的显示测试信息,支持右键控制图例显示与否、对图缩放、指标显示与否控制等操作。
6.3.测试报告
测试完成会自动生成Excel报告。报告包含16项内容,每项都以图和表的方式展示。
- Test Configuration
- Scalability + Performance (Tr) - Transaction Response Time
- Scalability + Performance (Req) - Request Response Time
- Request Status
- Average Content Length
- % Processor Time (CPU)
- % Idle Time (Disk)
- Disk Throughput
- Available Bytes (Memory)
- Network Throughput
- Individual Transaction Response
- Individual Transaction Length
- Megabits/Transaction
- CPU Service Time/Transaction vs. Step Load
- Key Indicators vs. Step Load
- Machine Specifications
各项指标说明见ArcGIS性能测试-System Test基础入门
7.检验测试结果
根据Excel报告,检查性能是否满足要求。
8.核心参数与内容解析
8.1.数据范围设置
数据范围设置主要用来定义地图服务被访问的主要区域范围,即用户感兴趣区域,不需要精确的值。客户端访问时,出图的范围会在这个定义的范围内。该范围设置将用在地图输出比例尺设置中。
8.2.地图输出参数设置
(1)ExportMap操作接口说明
动态地图服务访问使用的是ExportMap操作接口,该接口需要的主要参数如下:
参数名 | 参数说明 |
---|---|
bbox | 输出地图的图片范围大小,使用xmin,ymin,xmax,ymax表示 |
size | 输出图片的像素大小,使用width,height表示 |
bboxSR | bbox的空间参考 |
imageSR | 输出图片的空间参考 |
mapScale | 输出地图的比例尺 |
ExportMap接口使用示例:
http://portal.xinli.local:6080/arcgis/rest/services/SampleWorldCities/MapServer/export?transactionname=Transaction1&scale=1128&bbox=-122%2C30%2C-108%2C39&bboxSR=4326&imageSR=4326&size=1024%2C768&f=image&gdbVersion=
注意:System Test默认生成的请求地址中,scale参数在REST中不存在,且未起作用。需要修改为mapScale。
展开Web Tests-->SampleWorldCities-->bbox,在每个bbox下右键选择url地址-->Edit。修改其中的scale为mapScale。
(2)地图输出参数设置说明
地图输出参数与地图服务的ExportMap操作接口所需的参数对应。
Image Width和Image Height:定义输出图片的大小。
Scale:定义输出地图的比例尺。一般定义成与底图缓存服务一致。
Records per scale:定义每个比例尺下输出的bbox个数,即每个比例尺下输出多少张图片。
Randomized:指数据会随机分布在bbox定义的范围中。对比测试发现勾选与不勾选bbox范围没有太大差别。且在bbox右键菜单中提供了切换功能。
8.3.各比例尺预览图说明
地图输出参数设置完成,会自动计算出每个比例尺下的bbox范围值,以及其他的输出参数信息。这里的预览指的是查看每个比例尺下计算出来的bbox范围,以及该范围下包含的数据。
8.4.负载测试的几种类型
几种负载测试类型说明如下:
负载测试类型 | 说明 |
---|---|
Transaction Aggregate Test | 每次执行使用所有比例尺。 |
Scale Based Transactions Test | 每次执行使用比例尺组中的一个输出比例尺。可以分析测试每个比例尺下的执行性能。 |
Layer Based Transactions Test(Troubleshooting) | 用于测试指定图层和指定比例尺下的执行性能。注:测试客户端比较占用内存。 |
9.附录
9.1.Windows平台启用WMI远程监控
(1)创建远程监控访问账号
本例使用的是GIS Server的安装账号。再将账号分配到用户组:Administrators、Distributed COM Users、Performance Monitor Users。
(2)被监控端启用DCOM
命令行中输入dcomcnfg打开组件服务,再打开组件服务-->计算机-->我的电脑的属性。勾选上“在此计算机上启用分布式COM”,设置默认身份验证级别为连接,默认模拟级别为标识。
打开COM安全-->启动和激活权限-->编辑限制,添加远程访问账号,并设置允许的权限。如添加GIS Server安装账号,并设置权限:本地启动、远程启动、本地激活、远程激活。
(3)被监控端启用RPC和WMI服务
在系统服务中启用Remote Procedure Call (RPC)、Windows Management Instrumentation、WMI Performance Adapter服务。
启用完成,可检查服务端口启用情况:netstat -an,默认使用的是135和445端口。
(4)被监控端防火墙设置
最简单方式关闭防火墙。或者开放135和445端口。
(5)被监控端设置WMI属性
命令行输入wmimgmt.msc,然后打开WMI控件属性,为\root\CIMV2和\root\WMI配置安全设置,添加远程访问账号,并设置允许的权限。将启用账号、远程启用、读取权限赋予远端监控使用的访问账号。如添加GIS Server安装账号,并设置权限。
(6)在监控端测试远程访问
命令行输入wbemtest,打开连接,输入命名空间和访问账号。
连接成功会回到测试器。
打开枚举类,使用递归方式查询所有WMI对象。
如果要查看某个具体WMI对象的值,找到对应的对象名双击打开,再选择对话框中的实例。
再双击具体值,选择显示MOF可进一步查看明细。
9.2.添加远程监控的GIS Server服务器测试记录
(1)测试问题1:在Load Test Definition中点Auto按钮无结果。
在Servers配置中,点Auto按钮,并没有自动添加测试请求相关的服务器。
(2)测试问题2:使用手动方式Add服务器,Auth成功,但Detect无结果。
手动添加GIS Server所在的服务器IP地址,同时输入WMI开启时配置的远程访问账号。再点Detect时,远程服务器的硬件信息仍为空。
(3)日志分析
在Preferences中将System Test的日志等级更改为debug。
重新测试,日志记录中报错误:Access denied to user arcgis
。
(4)解决方法
- 在System Test所在的机器上新建WMI配置的远程访问账号。再将账号分配到用户组中,如Administrators用户组。
- 以新建的账号登录机器,再运行System Test。
-
在Web Tests下新建测试。
-
新建Load Tests测试。默认Servers下只添加了客户端机器。
-
编辑Servers设置,点Auto会自动添加192.168.80.1的服务器,同时会显示硬件信息。
参考资料:
[1] System Test帮助