我们的UI设计人员想要验证他们指定的HTML是否应该出现在页面上,实际上是.jsp生成的页面。他们需要指定一组特定的HTML节点,其规则为“此节点集显示1-3次”,此节点集必须出现“此节点必须包含这些固定属性和这些可变属性”。每个规则将有一个测试案例,在一个页面上有多达100个测试案例。
我已经使用Java中的Selenium自动导航到了有关的页面。在页面上,是否有一个很好的Java或自动化工具来执行这些类型的基于规则的DOM验证?
我考虑的另一种方法是为每个预期结果编写一个xpath表达式。我担心的是它们可能很难读懂。另外,我想将这些规则的创建交给UI开发人员,我不知道他们是否能够(很容易)在xpath中创建它们。
发布于 2015-05-01 18:51:27
下面是Java解决方案的草图:
List<WebElement> list = driver.findElements(By.xpath("//*[contains(text(),'" + text + "')]"));
verifyThat(list.size(), both(greaterThanOrEqualTo(1).and(lessThanOrEqualTo(3)));
在我使用的地方:
verifyThat
,与assertThat
相反,它是一个软断言:它不会在第一个失败之后终止测试,而是会报告页面失败的所有表达式。注意,您的UI开发人员可以通过Inspect element
-> Copy XPath
为选定的元素创建带有Chrome的->表达式。但是,自动生成的表达式可能很难阅读,但是您需要运行小型可用性实验室来理解这一点。
我不认为使用Selenium是最快的解决方案,但是您已经在使用Selenium,您可以使用Selenium访问应用程序和页面状态,因此这是最简单的解决方案。如果您需要更快的解决方案,则需要直接在HTTP和HTML级别上工作,例如使用RestAssured框架。
发布于 2014-12-02 09:18:30
我认为您可以使用Apache JMeter作为工具,它就像断言一样
处理你的支票。
JMeter是一种基于协议的工具,因此它能够比Selenium更快地处理您的用例,此外,您还可以使用命令行无头模式、Ant、Maven、Jenkins插件或其他方式运行您的测试。
有关如何处理JMeter断言的更多信息,请参见如何在三个简单的步骤中使用JMeter断言指南。
https://sqa.stackexchange.com/questions/10431
复制相似问题