使用Selenium进行加载测试

时间:2015-08-20 09:48:45

标签: java selenium selenium-webdriver

我正在编写一个java代码来使用selenium进行加载测试。我有一个文本文件,其中包含我用于测试的网站的网址。我希望我的应用程序读取文本文件并显示文本文件中每个URL的加载时间。我该怎么办?

此代码适用于两个网站,但我如何阅读包含多个网站的文本文件并获取加载时间。

package webauto;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class WebAuto {

    public static void main(String[] args) {
        WebDriver firefoxDriver=new FirefoxDriver();

        long start = System.currentTimeMillis();

        firefoxDriver.get("http://www.google.com");

        long finish = System.currentTimeMillis();
        long totalTime = finish - start; 
        System.out.println("Total Time for page load - "+(totalTime/1000)+"s");

        long start1 = System.currentTimeMillis();

        firefoxDriver.get("http://www.ebay.com");

        long finish1 = System.currentTimeMillis();
        long totalTime1 = finish1 - start1; 
        System.out.println("Total Time for page load - "+(totalTime1/1000)+"s");
    }
}

3 个答案:

答案 0 :(得分:1)

您可以执行以下操作,假设文本文件中的每一行都引用了网站链接,并在filePath变量中传递文本文件的路径: -

WebDriver firefoxDriver=new FirefoxDriver();
try {
    BufferedReader reader= new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "Cp1252"));         
    String websiteLink;
    while ((websiteLink = reader.readLine()) != null) {
        long start = System.currentTimeMillis();
        firefoxDriver.get(websiteLink);
        long finish = System.currentTimeMillis();
        long totalTime = finish - start; 
        System.out.println("Total Time for page load - "+(totalTime/1000)+"s");
    }
    reader.close();

} catch (IOException e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

作为负载测试工具,使用Jmeter会更好,但在某些情况下,尤其是当您为AJAX丰富的应用程序编写测试或需要模仿真实用户场景时,它是必要的结合Jmeter的优点,比Selenium更适合生成负载和收集性能指标,以及Selenium,更适合与网页交互。当然,建议使用Blazemeter作为运行测试的基于云的解决方案。

您可以在此处找到此解决方案的详细信息:https://www.blazemeter.com/blog/gotta-test-em-all

答案 2 :(得分:-1)

如果您的目标是纯粹测试页面在单个浏览器会话中的加载方式而不是模拟用户加载模式,则可以使用selenium的用户浏览器mob代理。您可以使用所选语言解析.har文件以确定页面加载时间。