这是很早之前做过的一个测试,最近在整理postgresql测试相关的资料,所以也把它拿出来了与大家分享。
首先解释一下所谓的PostgreSQL空间性能,主要是基于postgis的空间数据导入性能,详细的postgis知识请baidu,下面记录一下整个测试过程。
PostgreSQL中空间图层手动创建
1、 跳过PostgreSQL、postgis和jmeter的部署操作(如果此步骤不会跳过一下所有步骤)
2、 创建模板为postgis数据库的数据库,创建成功的数据库模式中存在topology,如下图所示:
3、 在该数据库中创建普通表,如下图所示:
CREATE TABLE test1
(
Id integer,
name varchar(20)
)
再给test1添加一个名为shape的几何字段(二维点\线\面):
Select AddGeometryColumn('public', ' test1', 'shape', 4326, 'POINT', 2)
或 Select AddGeometryColumn('public', ' test1', 'shape', 4326, 'LINESTRING', 2)
或 Select AddGeometryColumn('public', ' test1', 'shape', 4326, 'POLYGON', 2)
其中4326代表GW84(空间)的srid,4610代表Xian80的srid,4326代表CGCS2000的srid,相关详细参数请查询spatial_ref_sys表
Jmeter中创建空间数据入库测试计划
1、 首先下载相关PostgreSQL涉及的jdbc驱动文件,并将其拷贝到Jmeter安装路径下的lib文件夹中,下载路径如下:
https://jdbc.postgresql.org/download.html(建议下载和PostgreSQL版本一致的驱动)
2、 启动Jmeter后,点击测试计划,在library中添加已下载jdbc的jar文件,如下图所示:
3、 添加“线程组”,如下图所示:
4、 在线程组下添加“JDBC Connection Configuration”,如下图所示:
5、 在JDBC Connection Configuration中输入相关参数,如下图所示:
或者在此界面点击其上方的帮助按钮,获取该界面配置的相关方法,如下图所示:
6、 在线程组中添加“循环控制器”
7、 在循环控制器中添加“JDBC Request”,如下图所示:
注意:JDBC Request中Variable Name的值必须与JDBC Connection Configuration中的Variable Name一致
8、 在线程组下添加“察看结果树”,用于查看执行结果是否成功,如下图所示:
9、 在线程组下添加“聚合报告”,用于查看执行响应时间等信息,如下图所示:
10、 在JDBC Request中设置如下参数:
11、保存测试计划并运行,运行结果如下:
参数化入库
1、 在线程组中添加“CSV Data Set Config”,如下图所示:
2、 制作参数文件csv,并放到测试方案存储的路径下,csv文件内容如下:
注:由于参数值中存在“,”字符,因此整个参数值应使用双引号进行引用,样例如下:
”参数值”
3、 设置CSV Data Set Config参数如下:
4、 在JDBC Request中设置如下参数: