如何降低执行速度?

时间:2016-06-22 06:28:08

标签: selenium-webdriver testng

我正在使用selenium web-driver进行测试。我想减慢执行速度 以下是示例代码:

@Parameters({ "provider_name", "branch", "address", "clientId", "website", "UserName", "Password", "Dpid" })
public void addDematAccount(String provider_name, String branch, String address, String clientId, String website,
        String UserName, String Password, String Dpid) {
    driver.findElement(By.xpath("//a[contains(@href, '#/app/DematAccount/Add')]")).click();

    setParameter(provider_name, branch, address, clientId, website, UserName, Password, Dpid);

    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

我使用了driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);Thread.sleep(2000);但没有帮助

3 个答案:

答案 0 :(得分:1)

如果你想查看它,它太快我会认为你可能记录你正在执行的测试,然后查看它?

见这里:http://www.seleniummonster.com/boost-up-your-selenium-tests-with-video-recording-capability/

在这里:http://unmesh.me/2012/01/13/recording-screencast-of-selenium-tests-in-java/

以下是上述链接中的一些示例

public void startRecording() throws Exception
{
GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
this.screenRecorder = new ScreenRecorder(gc,
new Format(MediaTypeKey, MediaType.FILE, MimeTypeKey, MIME_AVI),
new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey,      ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
CompressorNameKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,DepthKey, 24,       FrameRateKey, Rational.valueOf(15),QualityKey, 1.0f,KeyFrameIntervalKey, 15 *   60),new Format(MediaTypeKey,MediaType.VIDEO, EncodingKey, "black",FrameRateKey,       Rational.valueOf(30)),null);
this.screenRecorder.start();
}
 public void stopRecording() throws Exception
{
this.screenRecorder.stop();
}

自动化测试的全部目的(在我看来)是这样的,它们可以在后台运行,无需用户交互/无需查看。此外,如果您想在一定的时间内进行尽可能多的测试,并且平行测试是必不可少的。如果你想查看你正在执行的测试,我认为上面的方法可以确保你不破坏Selenium的性能并在完成时查看执行,你将完全控制视频重放等。

答案 1 :(得分:0)

在Selenium WebDriver中,没有任何方法可以控制每个“步骤”的速度。有一次,在Options接口上有一个setSpeed()方法(在Java绑定中;其他绑定在其适当命名的对象上有类似的构造),但很久以前就被弃用了。这背后的理论是,您不应该先验地减慢WebDriver代码的每一步。如果您需要在应用程序中等待某些事情发生自动化,那么您应该使用隐式或显式等待例程。

答案 2 :(得分:0)

如果你真的想慢慢地或者一步一步地执行你的程序,你可以尝试以下方法:

  • 一次一步地以调试模式执行程序;
  • 将您的代码重构为功能块,一次只执行一段代码,您不会看到代码执行速度缓慢,但您可以更轻松地将代码与结果相关联。