Java WebPagetest 的测试客户端

Java testing client for WebPagetest

我正在尝试将 WebPagetest 测试作为我的持续集成过程的一部分。换句话说,只要关键性能指标超出范围,我就会破坏构建。

WebPagetest 提供 restful API 来驱动它。

我的大部分测试都是基于 FitNesse 的,所以我想用 FitNesse 语言表达我的性能要求。

是否有 Java 客户端能够驱动 WebPagetest,验证结果是否在要求的范围内并以某种格式(例如 JUnit)生成它们。理想情况下,我想要一组允许调用 WebPagetest 的 FitNesse 装置。

我不知道这个工具的特定装置,但它的 REST API(请求 XML 或 JSON 作为响应格式)似乎很容易使用标准 REST 夹具。

例如,您可以在脚本 table 中使用我的 XmlHttpTest:使用 'set value' 设置输入参数,执行 'get from' 然后检查结果 elements/values 使用 'xPath'。

为了使 wiki table 更好一点,您可以编写标准夹具的子类,或者创建一些场景。

例如(有场景)

|scenario |start web pagetest                                                             |location                    |
|set value|                |url     |
|set value|<your key>                                                                     |for                |k       |
|set value|@{location}                                                                    |for                |location|
|set value|xml                                                                            |for                |f       |
|get from |http://www.webpagetest.org/runtest.php                                                                      |
|show     |response                                                                                                    |
|check    |xPath                                                                          |//statusCode/text()|200     |
|$xmlUrl= |xPath                                                                          |//xmlUrl/text()             |

|scenario           |get web pagetest result|url                                 |
|clear values                                                                    |
|set value          |xml                    |for                       |f        |
|get from           |@{url}                                                      |
|show               |response                                                    |
|check              |xPath                  |//statusCode/text()       |200      |
|$firstViewAverage= |xPath                  |//average/firstView/loadTime/text() |
|$repeatViewAverage=|xPath                  |//average/repeatView/loadTime/text()|


|script|xml http test|

|start web pagetest       |
|location         |xmlUrl?|
|Dulles:Chrome.DSL|$url1= |
|Dulles:Firefox   |$url2= |

|script         |
|wait|40|seconds|

|get web pagetest result                   |
|url  |firstViewAverage?|repeatViewAverage?|
|$url1|<4000            |<3000             |
|$url2|<2000            |<1000             |