我们如何使用现有的硒脚本(java)获得端到端的性能指标(低负载)

问题描述 投票:0回答:1

我正在尝试利用自动化团队开发的Java中现有的硒自动化脚本来获得一些端到端的性能指标(总页面加载时间等)-与api负载测试并行的非常小的负载。

[请让我知道最有效的方法是什么。我也在寻找对Selenium脚本进行最少更改的方法,因为这将是每个发行版的一项持续活动,并且我正在寻找使用功能脚本的方法,就像围绕它的性能包装器一样。

您的建议将不胜感激。

谢谢!

performance selenium testing client client-side
1个回答
0
投票

我会避免使用Selenium进行负载测试。如果无法设置专用的性能测试,则至少可以这样做:

//Put this into the loaded scripts of your page under test. Make sure loadTimeMs is a global variable or saved to a hidden control.
var loadTimeMs = 0;
var pageContentRecieved = (new Date()).getTime();
$(window).load(function () {
    var pageLoaded = (new Date()).getTime();
    loadTimeMs = pageLoaded - pageContentRecieved;
});

这将为您提供大约时间来加载页面的同步部分。更重要的是Web服务器为您提供内容的时间。我建议以可控的方式通过将页面作为JavaScript中的API回调来实现。

//Return previous value for page load time.
JavascriptExecutor je = (JavascriptExecutor)driver;
int pageLoad = je.executeAsyncScript("return loadTimeMs;");

//Goes into Java code.
je = (JavascriptExecutor)driver;
int apiResponseTime = je.executeAsyncScript("
    var loadTimeMs = 0;var pageContentRecieved = (new Date()).getTime();
    $.ajax({url: "demo_test.txt", success: function(result){
        var pageLoaded = (new Date()).getTime();
        return pageLoaded - pageContentRecieved; 
    }});
");
int fullLoadTime = pageLoad + apiResponseTime;

最后,将这两个值加在一起,以便在现有硒测试的中间进行粗略/近似的性能检查。

© www.soinside.com 2019 - 2024. All rights reserved.