gpt4 book ai didi

java - Selenium webdriver 页面对象模式和 ExtentReports

转载 作者:行者123 更新时间:2023-11-30 08:10:42 24 4
gpt4 key购买 nike

有人可以告诉我如何编写结合 Selenium 页面对象模式和 ExtentsReports ( http://extentreports.relevantcodes.com/ ) 的功能性应用程序测试,以从这些测试用例生成报告。如何设计测试类?因为我知道验证应该与页面对象分开。执行此操作的最佳方法是什么?

一段示例代码会很有帮助

最佳答案

当然,将模型(页面对象)与测试分开是一种很好的方法。为此,您可以使用服务层,即可以与业务对象和页面对象交互的帮助类。

注意:我将回答您问题的第二部分,而不是在另一个用于报告的库上。

因此,您有一个业务对象:

public class Something {
boolean toHappen;

public Something(boolean toHappen) {
this.toHappen = toHappen;
}

public boolean isToHappen() {
return toHappen;
}
}

你也有你的页面:

public class ApplicationPage {

// how driver object is put here is your own business.
private static WebDriver driver;

@FindBy(id = "id")
private Button triggerButton;

public ApplicationPage() {
PageFactory.initElements(driver, this);
}

public static ApplicationPage open(){
driver.get("http://page.net");
return new ApplicationPage();
}

public void trigger() {
triggerButton.click();
}
}

因此,为了不在测试中混合业务对象和页面,您创建了一个服务:

public class InevitableService {

public static void makeHappen() {

// just a very stupid code here to show interaction
Something smth = new Something(true);

ApplicationPage page = ApplicationPage.open();

if(smth.toHappen()){
page.trigger();
}
}
}

最后是你的测试

public class TestClass extends Assert {
@Test
public void test() {
InevitableService.makeHappen();
assertTrue(true);
}
}

结果:

  • 你在测试中没有驱动
  • 您在测试中没有页面对象
  • 你只操作高级逻辑

优点:

  • 非常灵活

缺点:

  • 随着时间的推移变得复杂

考虑到您的报告工具 - 我相信它只是听取您的测试结果并将它们发送到服务器。或者它只是获取您测试的 xml/html 结果并制作漂亮但无用的饼图。同样,与 POP 无关。

关于java - Selenium webdriver 页面对象模式和 ExtentReports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31539242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com