Web Polygraph负载测试工具运行时长配置方法问询
设置Web Polygraph运行时长的解决方案
我刚好熟悉Web Polygraph的配置逻辑,你说得对,Robot块里确实没有直接的duration或类似的时长配置项,但我们可以通过全局的Runtime配置块来实现测试时长控制,这样测试会自动停止,完全避免手动kill进程导致的数据丢失问题。
具体配置方法
在你的配置文件中添加一个全局的Runtime块,指定测试的总运行时长。比如你需要运行40分钟(即2400秒),可以这么写:
// 全局运行时长配置,控制整个测试的运行时间 Runtime TestRuntime = { duration = 2400; // 单位:秒,40*60=2400 };
把这个块添加到你的配置文件中(全局配置不依赖位置,放在Server或Robot块的上方/下方都可以),修改后的完整配置如下:
Content SimpleContent = { size = exp(1KB); // response sizes distributed exponentially cachable = 100%; }; // 新增全局运行时长配置 Runtime TestRuntime = { duration = 2400; // 运行40分钟 }; Server S1 = { kind = "S101"; contents = [ SimpleContent ]; direct_access = contents; addresses = ['X.X.X.X' ]; }; // a primitive robot Robot R1 = { kind = "R101"; req_rate = 100/sec; interests = [ "foreign" ]; foreign_trace = "/home/x/trace.urls"; pop_model = { pop_distr = popUnif(); }; recurrence = 100% / SimpleContent.cachable; origins = S1.addresses; addresses = ['X.X.X.X' ]; };
补充说明
Runtime是全局配置,会控制整个测试的生命周期,所有Robot都会在达到指定时长后自动停止,此时Web Polygraph会正常生成完整的测试报告,不会丢失任何运行数据。- 如果你需要单独控制某个Robot的运行时长(而非全局所有Robot),可以通过计算总请求数的方式,在Robot块中添加
max_reqs参数:
不过这种方式依赖请求速率的稳定性,如果你更关注时长而非总请求数,优先推荐使用Robot R1 = { // 其他配置不变 max_reqs = 100*2400; // 100req/sec * 2400sec = 240000次请求 };Runtime全局配置。
内容的提问来源于stack exchange,提问作者py_guy_5
相关产品推荐
相关产品推荐

