东莞南城网站建设公司,秦皇岛网络优化排名,怎么查询域名,深圳媒体网络推广有哪些PyRestTest支持通过Curl请求本身收集比较差的网络环境下的性能指标。
基准测试#xff1a;它们扩展了测试中的配置元素#xff0c;允许你进行相似的REST调用配置。然而#xff0c;它们不对HTTP响应情况进行验证#xff0c;它只收集指标数据。
下列选项被指定用于benchmar…PyRestTest支持通过Curl请求本身收集比较差的网络环境下的性能指标。
基准测试它们扩展了测试中的配置元素允许你进行相似的REST调用配置。然而它们不对HTTP响应情况进行验证它只收集指标数据。
下列选项被指定用于benchmark
warmup_runs:如果没有指定该选项默认为10。在开始收集数据之前多次运行这个基准测试调用以允许JVM warmup、缓存等。benchmark_runs: 如果没有指定该选项默认为100。运行基准测试的次数。output_file: 如果没有指定该选项默认为None。要写入基准输出的文件名每次运行都会被覆盖如果没有给定则只会写入终端output_format:如果没有指定该选项默认为CSV。将结果写入‘json’或’csv’的格式。metrics: 必须指定要收集的指标如下所述否则基准测试将不起作用。
Metrics指标
收集性能指标的方法有两种原始数据Raw Data、聚合统计值Aggregates。
每一个指标可以生出原始数据Raw Data、一个或多个聚合Aggregates值
Raw Data: 返回值是一个数组一个基准每运行一次都会参数一个数组。Aggregates: 运行一个缩减reduction函数在整个基准运行期间返回单个值中值、平均值等。
为获取原始数据在“metrics”配置元素中只需在“metrics”配置元素值列表中输入度量名称。示例如
- benchmark: # create entity- name: Basic get- url: /api/person/- warmup_runs: 7- benchmark_runs: 101- output_file: miniapp-benchmark.csv- metrics:- total_time- size_download上述示例会返回运行101次之后每组元素数值总时间、下载大小。
Aggregates are pretty straightforward:
聚合数值更直观下面给出常用的聚合数值指标
mean/mean_arithmetic: 算术平均数通常是作为平均值mean_harmonic: 调和平均值等于两数乘积的二倍被两数之和除 (有助于衡量速率)median: 数值中位数std_deviation: 标准偏差, 有助于衡量它们的一致性total/sum: 给定值之和
通常支持下述给定的指标这些是Curl get_info变量的子集。关于这些变量的解释说明这些变量移除了CURLINFO_ 前缀https://curl.haxx.se/libcurl/c/curl_easy_getinfo.html。支持指标如下 ‘appconnect_time’, ‘connect_time’, ‘namelookup_time’, ‘num_connects’, ‘pretransfer_time’, ‘redirect_count’, ‘redirect_time’, ‘request_size’, ‘size_download’, ‘size_upload’, ‘speed_download’, ‘speed_upload’, ‘starttransfer_time’, ‘total_time’
报告格式
默认报告格式是CSV输出报告包括如下内容
Benchmark name名称Benchmark group所属组默认为defaultBenchmark failure count (raw HTTP failures)失败次数Raw data arrays作为一个表头是度量名称按字母顺序排序Aggregates: 格式为metricnameaggregate_nameresult的结果表
以JSON格式输出数据结构会有一些不同下方式给出的json格式输出样例
{failures: 0,
aggregates:[[metric_name, aggregate, aggregateValue] ...],
failures: failureCount,
group: Default,
results: {total_time: [value1, value2, etc], metric2:[value1, value2, etc], ... }
}Benchmark样例:
---
- config:- testset: Benchmark tests using test app- benchmark: # create entity- name: Basic get- url: /api/person/- warmup_runs: 7- benchmark_runs: 101- output_file: miniapp-benchmark.csv- metrics:- total_time- total_time: mean- total_time: median- size_download- speed_download: median- benchmark: # create entity- name: Get single person- url: /api/person/1/- metrics: {speed_upload: median, speed_download: median, redirect_time: mean}- output_format: json- output_file: miniapp-single.json