我正在尝试利用自动化团队开发的Java中现有的硒自动化脚本来获得一些端到端的性能指标(总页面加载时间等)-与api负载测试并行的非常小的负载。
[请让我知道最有效的方法是什么。我也在寻找对Selenium脚本进行最少更改的方法,因为这将是每个发行版的一项持续活动,并且我正在寻找使用功能脚本的方法,就像围绕它的性能包装器一样。
您的建议将不胜感激。
谢谢!
我会避免使用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;
最后,将这两个值加在一起,以便在现有硒测试的中间进行粗略/近似的性能检查。