Han*_*a90 7 performance selenium automated-tests selenium-webdriver
我需要使用Selenium和Selenide来测量网站的响应时间.
网站的响应时间:
我的意思是加载时间,我看到有一种方法可以在打开网站之前和之后的时间之间取差.
但是这样,会衡量客户端的加载时间,它会依赖于使用过的客户端吗?这样做的最佳方式是什么?
long startTime = System.currentTimeMillis();
driver.get("http://zyxware.com");
new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.id("Calculate")));
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println("Total Page Load Time: " + totalTime + "milliseconds");
Run Code Online (Sandbox Code Playgroud)或这个?
driver.get("url");
WebElement ele = $(By.tagName("body"));
// get the page load time
Long loadtime = (Long)((JavascriptExecutor)driver).executeScript(
"return performance.timing.loadEventEnd - performance.timing.navigationStart;");
System.out.println(loadtime);
Run Code Online (Sandbox Code Playgroud)
最后一种方式如下:
StopWatch pageLoad = new StopWatch();
pageLoad.start();
//Open your web app (In my case, I opened facebook)
driver.get("url");
// Wait for the required any element (I am waiting for Login button in fb)
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.tagName("body")));
pageLoad.stop();
//Get the time
long pageLoadTime_ms = pageLoad.getTime();
long pageLoadTime_Seconds = pageLoadTime_ms / 1000;
System.out.println("Total Page Load Time: " + pageLoadTime_ms + " milliseconds");
Run Code Online (Sandbox Code Playgroud)
您可以使用performance.timing
API 获取给定页面的与时序相关的性能信息:
// launch the browser
WebDriver driver = new FirefoxDriver();
// visit a page
driver.get("http://stackoverflow.com");
// get the page load time
Long loadtime = (Long)((JavascriptExecutor)driver).executeScript(
"return performance.timing.loadEventEnd - performance.timing.navigationStart;");
Run Code Online (Sandbox Code Playgroud)
文件:
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceTiming
伙计们,您可以使用Selenium Web驱动程序来收集有关您的网页的计时数据,只需执行以下操作:
from selenium import webdriver
source = "http://www.example.com/"
driver = webdriver.Chrome()
driver.get(source)
navigationStart = driver.execute_script("returnwindow.performance.timing.navigationStart")
responseStart = driver.execute_script("return window.performance.timing.responseStart")
domComplete = driver.execute_script("return window.performance.timing.domComplete")
backendPerformance = responseStart - navigationStart
frontendPerformance = domComplete - responseStart
print "Back End: %s" % backendPerformance
print "Front End: %s" % frontendPerformance
driver.quit()
Run Code Online (Sandbox Code Playgroud)
网站负载测试始终取决于所使用的客户端。有专门的工具可以测试您的网站加载时间,例如Apache JMeter,但是它不会执行 Javascript 或呈现 HTML 页面(并且这些操作的加载时间非常特定于客户端),它只收集接收请求所需的时间。网站,像你的第二个问题这样的情况可能比 JMeter 更容易在 selenium 中测试,具体取决于搜索的执行方式。
至于你的第二个问题,你将有一个 WebDriverWait 直到找到搜索结果,与你的示例相同。
归档时间: |
|
查看次数: |
17346 次 |
最近记录: |