PageObjectModel与基于Excel的Selenium框架 - java

每个框架的优缺点是什么?我们的团队正在决定下一个项目要使用哪个框架。

第一个框架PGO从程序员创建测试开始。这是测试对象。创建测试后,我们通过创建一个类/方法来实现该框架,该类/方法将使该测试方法通过,然后进行重构,该重构将成为页面对象。这些类将公开让QA测试人员测试特定字段的方法,例如setFirstName(firstName)和setEmail(email)等。该框架尚未启动。

第二个框架围绕一个Excel电子表格。已经创建的框架将读取三个excel电子表格的所有列和行,并使用它们自动完成测试用例。第一个电子表格是如何识别测试用例。第二张电子表格是步骤和要包括的参数,第三张电子表格是实际使用的参数。为了通过三个excel表识别每个测试用例,使用一个ID。这些Excel工作表是作为输入手动输入的。

参考方案

我个人不喜欢基于Excel的框架。我会告诉你为什么。

使用Selenium时,我们主要根据语言绑定使用TestNG,NUnit,JUnit等。这些框架维护良好且测试良好。
如果我们谈论的是相同的事情,那么基于Excel的框架将具有测试执行的所有控制权,这在维护方面可能确实令人不安。如果您阅读有关Page Object model的文章,您会发现关注点分离,重构和调试始终是UI测试套件的最大关注点,并且此模型以最佳方式处理它们。使用基于Excel的概念时,您会将pageobject的概念抛到了窗外。页面上的任何更改/修复都使您可以浏览所有三个excel工作表,找出选择器并进行更正。在pageobject中时,您知道在哪里看。并且,就添加或删除任何测试而言(我经常这样做),您可以直接转到Test对象,然后执行它而不影响任何其他测试。另一方面,删除/添加测试用例会严重影响我最讨厌的整个测试套件。

Selenium Webdriver(Java)-查找禁用了属性=“”的元素 - java

我有<input id="test" disabled="">。如何找到具有属性disable =“”的元素。附言:在这种情况下,我不需要使用ID。我想找到一个具有禁用属性的元素。我尝试使用String enbl = Login.driver.findElement(By.cssSelector("…

将ExtentTest的默认设置为FAILED - java

我正在使用extentreports为使用Java和Selenium编写的测试添加报告。我注意到,如果ExtentTest有两个日志“ INFO”和“ PASSED”,则如果未捕获通过日志,则将其视为“通过”。我如何以某种方式更改它,如果未通过测试,它将被自动标记为“失败”? 参考方案 默认情况下,无法更改行为以使测试用例失败。它是一个设计决策,每个测试框架…

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

Java:我可以在Hashmaps中使用数组吗? - java

我可以在Hashmaps中使用数组吗?如果是这样,则声明这种哈希图的确切语法是什么?谢谢 参考方案 数组也是对象。甚至像int[]这样的原始数组。Map<String,String[]> map = new HashMap<String,String[]>();