【发布时间】:2015-02-22 16:59:44
【问题描述】:
我们正在研究使用 CouchDB 和 PouchDB 堆栈,我们希望对 CouchDB 进行压力测试,因为我们的用例之一可以同时让多达 70-80 个用户进行复制。
我们设法对 CouchDB 进行了压力测试,并对结果感到满意,但我们想从 PouchDB 做一些端到端的压力测试。
我尝试了一些方法:
1) 使用在 for 循环中启动多个页面的 PhantomJS 脚本 2) 使用 PhantomJS 脚本和 Github 上的某种并行函数 3) 使用 bash 脚本和 & 启动多个 phantomJS 4) 使用 bash 脚本和 GNU Parallel 启动 PhantomJS 的多个实例 * 上述所有测试都使用waitFor函数,仅在全局变量设置为true时完成(我能想到的唯一方法将等待页面中的所有JS执行)
虽然一次 phantomJS 执行大约需要 200-300 毫秒,但在运行多个时,它们似乎会以某种方式排队,并且对于大约 30 次执行中的最后一次,我们得到的数字从 200 毫秒到 30,000 毫秒不等。
看起来 PhantomJS 正在以某种方式排队。我可以看到每个后续请求的 n*200 毫秒的稳定进展。
我可能可以在 2-3 台设备上构建一个演示应用程序并循环 PUT 和 Replicate,但我想尝试以类似的方式编写脚本,以便 Siege 可以对具有多个资产的页面进行压力测试。只是,我希望它“等待”直到页面真正完成并且所有 JS 都完成运行。
知道我该怎么做吗?
【问题讨论】:
标签: javascript scripting stress-testing pouchdb