【问题标题】:Java testing client for WebPagetestWebPagetest 的 Java 测试客户端
【发布时间】:2016-01-04 16:29:54
【问题描述】:

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

WebPagetest 提供restful API 来驱动它。

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

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

【问题讨论】:

    标签: java fitnesse webpagetest


    【解决方案1】:

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

    例如,您可以在脚本表中使用我的XmlHttpTest:使用“set value”设置输入参数,执行“get from”,然后使用“xPath”检查结果元素/值。

    要使 wiki 表格更好一些,您可以编写标准夹具的子类,或创建一些场景。

    例如(有场景)

    |scenario |start web pagetest                                                             |location                    |
    |set value|http://stackoverflow.com/questions/34595522/java-testing-client-for-webpagetest|for                |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             |
    

    【讨论】:

    • 我喜欢你的方法。我看到的唯一缺点是显式等待 40 秒。但是实现周期性探测 testStatus.php 并在报告准备好(或发生超时)后完成的不同步骤并不难。
    • 实际上,40 秒的等待可以很容易地通过对服务的一些轮询来代替(在自定义 Java 中)。 (我的 Fit SOAP 固定装置对此有一个默认实现,但我还没有将它移植到 Slim HttpTest。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多