PostgreSQL上测试监视器API的性能
- 更新时间2025-05-12
- 阅读时长23分钟
了解PostgreSQL上Test Monitor API在四种常见测试数据场景中的查询和引入性能。
场景 | 说明 | 性能总结 |
---|---|---|
多种少量(High-Mix Low-Volume) | 产品种类多,步骤数量少 |
|
少种多量(Low-Mix High-Volume) | 产品少步骤多 |
|
少种中量(Low-Mix Medium-Volume) | 产品少结果量大 |
|
少种极多量(Low-Mix Very-High-Volume) | 单个产品具有非常高的结果和步骤量 |
|
控制条件
NI在下列基础设施和测量条件下,针对每种场景评估了测试监视器API的性能。
- 由Kubernetes (AWS EKS)部署和管理Test Monitor服务,规范如下。
产品规范 说明 节点规范 类型:r6a.4x large
vCPU:16
RAM:128 GiB
Pod规范 CPU:250 m
内存:320 Mi(最高512 Mi)
Pod复制 自动缩放默认值:2
自动缩放最大值:10
- Test Monitor数据库规范如下。
数据库规范 说明 源 RDS PostgreSQL单实例 产品规范 PostgreSQL版本:14.5
Instance类别:db.t4g.xlarge
vCPU:4
RAM:16 GB
- 数据从EC2实例上传到同一AWS集群中的PostgreSQL数据库,以消除任何网络延迟。数据以产品、结果和步骤的形式上传。
- 从Test Insights UI查询以下工作流程。
- 产品查询根据产品编号、产品详细信息、元数据查看和筛选产品。
- 结果查询可根据零件编号、结果详细信息和元数据查看和过滤结果。
- 步骤查询可根据步骤名称和测量名称查看和过滤步骤。
- 数据空间查询,用于过滤和检索可视化步骤详细信息。过滤器包括高级LINQ过滤器、结果元数据、步骤元数据和条件过滤器。
可变条件
NI在下列不同数据集条件下评估了测试监视器API的性能。
数据集大小 | 5M | 10M | 15M | 20M | 25M |
---|---|---|---|---|---|
步骤数 | 500万 | 1000万 | 1500万 | 2000万 | 2500万 |
产品数量 | 250 | 500 | 750 | 1000 | 1250 |
每个产品的结果数 | 200 | 200 | 200 | 200 | 200 |
每个结果的步骤数 | 100 | 100 | 100 | 100 | 100 |
数据集大小 | 5M | 10M | 15M | 20M | 25M |
---|---|---|---|---|---|
步骤数 | 500万 | 1000万 | 1500万 | 2000万 | 2500万 |
产品数量 | 1 | 2 | 3 | 4 | 5 |
每个产品的结果数 | 313 | 313 | 313 | 313 | 313 |
每个结果的步骤数 | 16000 | 16000 | 16000 | 16000 | 16000 |
数据集大小 | 5M | 10M | 15M | 20M | 25M |
---|---|---|---|---|---|
步骤数 | 500万 | 1000万 | 1500万 | 2000万 | 2500万 |
产品数量 | 50 | 50 | 50 | 50 | 50 |
每个产品的结果数 | 1000 | 2000 | 3000 | 4000 | 5000 |
每个结果的步骤数 | 100 | 100 | 100 | 100 | 100 |
数据集大小 | 5M | 10M | 15M | 20M | 25M |
---|---|---|---|---|---|
步骤数 | 500万 | 1000万 | 1500万 | 2000万 | 2500万 |
产品数量 | 1 | 1 | 1 | 1 | 1 |
每个产品的结果数 | 1000 | 1000 | 1000 | 1000 | 1000 |
每个结果的步骤数 | 5000 | 10000 | 15000 | 20000 | 25000 |
多种少量场景性能详情
在这种情况下,每个结果的步骤数和每个产品的结果数保持不变。添加更多产品可增加数据规模。
引入步骤 | 平均每秒引入的步数 | 平均每秒请求数 |
---|---|---|
0至500万 | 744 | 7.4 |
500万至1000万 | 673 | 6.73 |
1000万至1500万 | 607 | 6.07 |
1500万至2000万 | 584 | 5.84 |
2000万至2500万 | 574 | 5.74 |


已应用筛选条件 | 输入1 | 返回计数2 | 500万(秒) | 1000万(秒) | 1500万(秒) | 2000万(秒) | 2500万(秒) |
---|---|---|---|---|---|---|---|
产品查询 | |||||||
产品编号 | 1000 | 假 | 0.064 | 0.056 | 0.108 | 0.093 | 0.062 |
类别和名称 | 1000 | 假 | 0.071 | 0.059 | 0.058 | 0.061 | 0.06 |
更新时间 | 1000 | 假 | 0.069 | 0.062 | 0.103 | 0.076 | 0.069 |
元数据 | 1000 | 假 | 0.081 | 0.086 | 0.08 | 0.078 | 0.065 |
无筛选条件 | 1000 | 假 | 0.075 | 0.063 | 0.064 | 0.062 | 0.066 |
结果查询 | |||||||
测试程序 | 1000 | 假 | 0.164 | 0.286 | 0.328 | 0.502 | 0.363 |
产品编号 | 1000 | 假 | 0.152 | 0.073 | 0.095 | 0.091 | 0.075 |
状态 | 1000 | 假 | 0.169 | 0.129 | 0.136 | 0.145 | 0.135 |
属性 | 1000 | 假 | 0.147 | 0.195 | 0.754 | 0.864 | 0.813 |
关键词 | 1000 | 假 | 0.239 | 0.379 | 0.38 | 0.252 | 0.296 |
工作区 | 1000 | 假 | 0.112 | 0.149 | 0.145 | 0.131 | 0.326 |
Id | 1000 | 假 | 0.234 | 0.115 | 0.222 | 0.153 | 0.125 |
无筛选条件 | 1000 | 假 | 0.185 | 0.276 | 0.591 | 0.444 | 0.268 |
计数查询 | 0 | 真 | 0.102 | 0.113 | 0.263 | 0.335 | 0.435 |
步骤查询 | |||||||
步骤名称 | 1000 | 真 | 0.068 | 0.076 | 0.075 | 0.084 | 0.104 |
测量名称 | 1000 | 真 | 0.069 | 0.089 | 0.093 | 0.088 | 0.093 |
测量名称和步骤名称 | 1000 | 真 | 0.086 | 0.079 | 0.078 | 0.083 | 0.093 |
应用预测 | 1000 | 真 | 0.08 | 0.086 | 0.069 | 0.095 | 0.074 |
步骤ID | 1000 | 真 | 0.068 | 0.084 | 0.065 | 0.069 | 0.077 |
数据空间查询 | |||||||
产品编号 | 1000或10000 | 假 | 3.584 | 1.171 | 1.343 | 1.967 | 2.383 |
产品名称 | 10000 | 假 | 1.662 | 2.022 | 2.043 | 2.97 | 3.101 |
产品编号和测试程序 | 10000 | 假 | 0.974 | 1.099 | 1.462 | 1.591 | 1.42 |
产品名称和结果状态 | 10000 | 假 | 1.949 | 1.685 | 1.945 | 2.258 | 2.532 |
产品编号和结果元数据 | 1000 | 假 | 1.659 | 0.518 | 0.723 | 0.841 | 0.995 |
产品编号和步骤状态 | 10000 | 假 | 1.587 | 2.322 | 2.238 | 2.147 | 1.855 |
产品编号、测试程序和步骤名称 | 1000或10000 | 假 | 0.111 | 0.143 | 0.171 | 0.413 | 0.218 |
产品编号和路径 | 1000 | 假 | 0.712 | 0.48 | 0.719 | 1.131 | 1.011 |
输入条件 | 1000 | 假 | 0.539 | 0.764 | 1.238 | 1.957 | 1.721 |
产品编号(路径API) | 1000 | 假 | 2.604 | 7.255 | 11.738 | 超时 | 超时 |
产品编号和程序名称(路径API) | 1000 | 假 | 0.105 | 0.147 | 0.219 | 0.141 | 0.13 |
产品编号包含 | 10000 | 假 | 17.772 | 超时 | 超时 | 超时 | 超时 |
1表示查询请求正文中的take参数,用于限制获取的记录数量。 2表示查询请求正文中的returnCount参数,如果为真,则获取符合应用的筛选条件的记录总数。 注:
6.7%的数据空间查询(使用产品编号包含过滤器)返回了503错误,且数据大小增加。这些错误表示测试监视器服务的资源有限。 |

少种多量场景:性能详情
在这种情况下,每个结果的步骤数和每个产品的结果数保持不变。添加更多产品可增加数据规模。
引入步骤 | 平均每秒引入的步数 | 平均每秒请求数 |
---|---|---|
0至500万 | 1182 | 2.36 |
500万至1000万 | 1138 | 2.28 |
1000万至1500万 | 1085 | 2.17 |
1500万至2000万 | 1017 | 2.03 |
2000万至2500万 | 990 | 1.98 |


已应用筛选条件 | 输入1 | 返回计数2 | 500万(秒) | 1000万(秒) | 1500万(秒) | 2000万(秒) | 2500万(秒) |
---|---|---|---|---|---|---|---|
产品查询 | |||||||
产品编号 | 1000 | 假 | 0.088 | 0.084 | 0.066 | 0.088 | 0.056 |
类别和名称 | 1000 | 假 | 0.096 | 0.088 | 0.063 | 0.073 | 0.059 |
更新时间 | 1000 | 假 | 0.079 | 0.083 | 0.084 | 0.063 | 0.058 |
元数据 | 1000 | 假 | 0.072 | 0.058 | 0.087 | 0.064 | 0.088 |
无筛选条件 | 1000 | 假 | 0.082 | 0.059 | 0.063 | 0.099 | 0.064 |
结果查询 | |||||||
测试程序 | 1000 | 假 | 0.086 | 0.08 | 0.094 | 0.093 | 0.092 |
产品编号 | 1000 | 假 | 0.122 | 0.09 | 0.172 | 0.102 | 0.1 |
状态 | 1000 | 假 | 0.143 | 0.092 | 0.123 | 0.105 | 0.105 |
属性 | 1000 | 假 | 0.089 | 0.109 | 0.074 | 0.073 | 0.066 |
关键词 | 1000 | 假 | 0.083 | 0.109 | 0.077 | 0.069 | 0.075 |
工作区 | 1000 | 假 | 0.085 | 0.081 | 0.101 | 0.103 | 0.089 |
Id | 1000 | 假 | 0.15 | 0.1 | 0.12 | 0.11 | 0.129 |
无筛选条件 | 1000 | 假 | 0.08 | 0.113 | 0.15 | 0.126 | 0.127 |
计数查询 | 0 | 真 | 0.082 | 0.082 | 0.077 | 0.075 | 0.065 |
步骤查询 | |||||||
步骤名称 | 1000 | 真 | 0.205 | 0.89 | 3.922 | 4.107 | 4.772 |
测量名称 | 1000 | 真 | 0.292 | 1.647 | 3.474 | 4.792 | 5.934 |
测量名称和步骤名称 | 1000 | 真 | 0.17 | 0.749 | 3.42 | 2.742 | 4.565 |
应用预测 | 1000 | 真 | 0.106 | 0.099 | 0.09 | 0.085 | 0.105 |
步骤ID | 1000 | 真 | 0.107 | 0.079 | 0.104 | 0.092 | 0.096 |
数据空间查询 | |||||||
产品编号 | 1000或10000 | 假 | 1.15 | 1.381 | 1.073 | 1.172 | 1.086 |
产品名称 | 10000 | 假 | 1.475 | 2.299 | 1.442 | 1.473 | 1.447 |
产品编号和测试程序 | 10000 | 假 | 1.698 | 2.059 | 1.48 | 1.448 | 1.749 |
产品名称和结果状态 | 10000 | 假 | 1.648 | 1.558 | 1.557 | 1.566 | 2.386 |
产品编号和结果元数据 | 1000 | 假 | 0.594 | 0.843 | 2.065 | 1.008 | 2.492 |
产品编号和步骤状态 | 10000 | 假 | 1.612 | 1.536 | 1.486 | 2.243 | 1.583 |
产品编号、测试程序和步骤名称 | 1000或10000 | 假 | 1.344 | 6.632 | 6.863 | 15.797 | 14.59 |
产品编号和路径 | 1000 | 假 | 0.273 | 2.648 | 1.217 | 0.32 | 1.095 |
输入条件 | 1000 | 假 | 0.259 | 0.28 | 0.252 | 0.306 | 0.285 |
产品编号(路径API) | 1000 | 假 | 0.255 | 0.755 | 0.984 | 1.336 | 2.825 |
产品编号和程序名称(路径API) | 1000 | 假 | 0.117 | 0.2 | 0.196 | 0.24 | 0.157 |
输入条件值 - 等于 | 1000 | 假 | 17.45 | 超时 | 超时 | 超时 | 超时 |
程序名称 - 包含 | 1000或10000 | 假 | 2.281 | 超时 | 超时 | 超时 | 超时 |
结果元数据 - 包含 | 1000 | 假 | 2.355 | 超时 | 超时 | 超时 | 超时 |
1表示查询请求正文中的take参数,用于限制获取的记录数量。 2表示查询请求正文中的returnCount参数,如果为真,则获取符合应用的筛选条件的记录总数。 注:
8.7%的数据空间查询(使用程序名称包含、结果元数据包含、输入条件值等于筛选条件)会返回503错误,表示Test Monitor服务存在资源限制。 |

少种中量场景:性能详情
在这种情况下,每个结果的步骤数和产品数保持不变。通过在现有产品下添加新结果可增加数据规模。
引入步骤 | 平均每秒引入的步数 | 平均每秒请求数 |
---|---|---|
0至500万 | 727 | 7.27 |
500万至1000万 | 590 | 5.9 |
1000万至1500万 | 572 | 5.72 |
1500万至2000万 | 541 | 5.41 |
2000万至2500万 | 539 | 5.39 |


已应用筛选条件 | 输入1 | 返回计数2 | 500万(秒) | 1000万(秒) | 1500万(秒) | 2000万(秒) | 2500万(秒) |
---|---|---|---|---|---|---|---|
产品查询 | |||||||
产品编号 | 1000 | 假 | 0.081 | 0.064 | 0.077 | 0.072 | 0.104 |
类别和名称 | 1000 | 假 | 0.061 | 0.067 | 0.092 | 0.073 | 0.08 |
更新时间 | 1000 | 假 | 0.061 | 0.079 | 0.085 | 0.066 | 0.081 |
元数据 | 1000 | 假 | 0.061 | 0.078 | 0.122 | 0.091 | 0.094 |
无筛选条件 | 1000 | 假 | 0.065 | 0.067 | 0.058 | 0.095 | 0.055 |
结果查询 | |||||||
测试程序 | 1000 | 假 | 0.2 | 0.541 | 1.811 | 1.482 | 1.878 |
产品编号 | 1000 | 假 | 0.149 | 0.214 | 0.496 | 0.197 | 0.33 |
状态 | 1000 | 假 | 0.146 | 0.273 | 0.206 | 0.268 | 0.483 |
属性 | 1000 | 假 | 0.201 | 0.807 | 2.048 | 0.942 | 1.83 |
关键词 | 1000 | 假 | 0.317 | 1.827 | 2.717 | 3.473 | 3.473 |
工作区 | 1000 | 假 | 0.148 | 0.39 | 1.706 | 0.633 | 0.917 |
Id | 1000 | 假 | 0.135 | 0.152 | 0.371 | 0.227 | 0.166 |
无筛选条件 | 1000 | 假 | 0.259 | 0.662 | 1.741 | 1.323 | 1.269 |
计数查询 | 0 | 真 | 0.131 | 0.315 | 2.001 | 0.869 | 2.574 |
步骤查询 | |||||||
步骤名称 | 1000 | 真 | 0.071 | 0.135 | 0.171 | 0.103 | 0.183 |
测量名称 | 1000 | 真 | 0.071 | 0.111 | 0.194 | 0.106 | 0.171 |
测量名称和步骤名称 | 1000 | 真 | 0.069 | 0.113 | 0.289 | 0.122 | 0.217 |
应用预测 | 1000 | 真 | 0.077 | 0.103 | 0.129 | 0.102 | 0.102 |
步骤ID | 1000 | 真 | 0.081 | 0.085 | 0.149 | 0.102 | 0.133 |
数据空间查询 | |||||||
产品编号和测试程序 | 10000 | 假 | 0.427 | 1.124 | 2.571 | 1.035 | 3.897 |
产品编号和结果元数据 | 1000 | 假 | 0.209 | 0.407 | 1.952 | 0.784 | 1.896 |
产品编号、测试程序和步骤名称 | 1000或10000 | 假 | 0.186 | 0.401 | 2.945 | 1.14 | 2.093 |
产品编号和路径 | 1000 | 假 | 0.784 | 4.956 | 7.993 | 5.836 | 8.107 |
产品编号(路径API) | 1000 | 假 | 10.452 | 20.032 | 超时 | 19.767 | 16.725 |
产品编号和程序名称(路径API) | 1000 | 假 | 0.196 | 0.377 | 0.848 | 0.284 | 0.275 |
产品编号(等于和包含) | 1000或10000 | 假 | 9.1 | 超时 | 超时 | 超时 | 超时 |
输入条件 | 1000 | 假 | 超时 | 超时 | 超时 | 超时 | 超时 |
产品名称 | 10000 | 假 | 4.594 | 超时 | 超时 | 超时 | 超时 |
结果元数据 | 1000 | 假 | 6.167 | 超时 | 超时 | 超时 | 超时 |
1表示查询请求正文中的take参数,用于限制获取的记录数量。 2表示查询请求正文中的returnCount参数,如果为真,则获取符合应用的筛选条件的记录总数。 注: 39%的数据空间查询(使用包含(Contains)、产品名称等于(Product name equals)、结果元数据(Result metadata)和输入条件(Input condition)等过滤器)返回了503错误。这些错误表示测试监视器服务的资源有限。
|

少种极多量场景:性能详情
在这种情况下,产品数量和每个产品的结果数保持不变。通过在现有结果下添加新步骤可增加数据规模。
引入步骤 | 平均每秒引入的步数 | 平均每秒请求数 |
---|---|---|
0至500万 | 1184 | 2.37 |
500万至1000万 | 1101 | 2.2 |
1000万至1500万 | 1052 | 2.1 |
1500万至2000万 | 999 | 2 |
2000万至2500万 | 953 | 1.91 |


已应用筛选条件 | 输入1 | 返回计数2 | 500万(秒) | 1000万(秒) | 1500万(秒) | 2000万(秒) | 2500万(秒) |
---|---|---|---|---|---|---|---|
产品查询 | |||||||
产品编号 | 1000 | 假 | 0.076 | 0.079 | 0.063 | 0.087 | 0.052 |
类别和名称 | 1000 | 假 | 0.065 | 0.053 | 0.06 | 0.057 | 0.058 |
更新时间 | 1000 | 假 | 0.083 | 0.06 | 0.064 | 0.059 | 0.058 |
元数据 | 1000 | 假 | 0.072 | 0.057 | 0.072 | 0.055 | 0.079 |
无筛选条件 | 1000 | 假 | 0.071 | 0.052 | 0.058 | 0.059 | 0.056 |
结果查询 | |||||||
测试程序 | 1000 | 假 | 0.133 | 0.082 | 0.085 | 0.091 | 0.097 |
产品编号 | 1000 | 假 | 0.129 | 0.127 | 0.131 | 0.129 | 0.126 |
状态 | 1000 | 假 | 0.113 | 0.098 | 0.116 | 0.094 | 0.092 |
属性 | 1000 | 假 | 0.07 | 0.107 | 0.073 | 0.075 | 0.063 |
关键词 | 1000 | 假 | 0.073 | 0.079 | 0.075 | 0.063 | 0.069 |
工作区 | 1000 | 假 | 0.098 | 0.133 | 0.103 | 0.085 | 0.09 |
Id | 1000 | 假 | 0.099 | 0.107 | 0.139 | 0.203 | 0.099 |
无筛选条件 | 1000 | 假 | 0.131 | 0.137 | 0.107 | 0.126 | 0.144 |
计数查询 | 0 | 真 | 0.075 | 0.070 | 0.071 | 0.057 | 0.056 |
步骤查询 | |||||||
步骤名称 | 1000 | 真 | 0.082 | 1.287 | 2.778 | 5.129 | 5.891 |
测量名称 | 1000 | 真 | 0.132 | 2.053 | 1.989 | 5.382 | 3.71 |
测量名称和步骤名称 | 1000 | 真 | 0.142 | 1.277 | 3.927 | 4.681 | 7.07 |
应用预测 | 1000 | 真 | 0.08 | 0.119 | 0.079 | 0.092 | 0.082 |
步骤ID | 1000 | 真 | 0.08 | 0.092 | 0.093 | 0.09 | 0.108 |
数据空间查询 | |||||||
产品编号 | 1000或10000 | 假 | 1.039 | 1.038 | 1.01 | 1.084 | 1.132 |
产品名称 | 10000 | 假 | 1.452 | 1.422 | 1.403 | 1.472 | 1.816 |
产品编号和测试程序 | 10000 | 假 | 1.465 | 1.478 | 1.48 | 1.528 | 1.44 |
产品名称和结果状态 | 10000 | 假 | 1.566 | 1.474 | 1.437 | 1.503 | 1.488 |
产品编号和结果元数据 | 1000 | 假 | 0.623 | 0.606 | 1.074 | 1.609 | 0.343 |
产品编号和步骤状态 | 10000 | 假 | 1.503 | 1.442 | 1.498 | 1.527 | 1.9 |
产品编号、测试程序和步骤名称 | 1000或10000 | 假 | 1.412 | 9.546 | 2.031 | 3.761 | 5.345 |
产品编号和路径 | 1000 | 假 | 0.245 | 0.344 | 0.569 | 0.336 | 0.467 |
输入条件 | 1000 | 假 | 0.241 | 0.226 | 0.234 | 0.232 | 0.223 |
产品编号(路径API) | 1000 | 假 | 0.235 | 0.422 | 0.482 | 0.748 | 0.431 |
产品编号和程序名称(路径API) | 1000 | 假 | 0.099 | 0.227 | 0.167 | 0.145 | 0.217 |
输入条件值 - 等于 | 1000 | 假 | 14.024 | 超时 | 超时 | 超时 | 超时 |
程序名称 - 包含 | 10000 | 假 | 2.498 | 超时 | 超时 | 超时 | 超时 |
结果元数据 - 包含 | 1000 | 假 | 1.575 | 超时 | 超时 | 超时 | 超时 |
1表示查询请求正文中的take参数,用于限制获取的记录数量。 2表示查询请求正文中的returnCount参数,如果为真,则获取符合应用的筛选条件的记录总数。 注: 5.7%的数据空间查询(使用程序名称包含(Program name contains)和结果元数据(Result metadata)等过滤器)返回503错误。这些错误表示测试监视器服务的资源有限。
|

相关内容
- 通过测试监视器API发布测试结果
通过SystemLink测试监视器API发布测试结果、记录参数数据或将其他文件作为附件添加到结果。
- 监测测试
在 产品信息(Product Insights) 测试结果(Test Results) 中跟踪测试进度和查看测试报告。可使用/nitestmonitor API或TestStand集成。
- SystemLink API参考
- Dynamic Linq查询语言