Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 集成测试和UI更改_Java_Jsp_Testing_Integration Testing_Web Testing - Fatal编程技术网

Java 集成测试和UI更改

Java 集成测试和UI更改,java,jsp,testing,integration-testing,web-testing,Java,Jsp,Testing,Integration Testing,Web Testing,我们的web应用程序有许多集成测试。如何处理页面UI结构的更改?所有测试都基于带有id和特定标记名的xpath(真正糟糕的是) ID组是一个契约,但web开发人员如何在不失败测试的情况下轻松修改页面?正如您所注意到的,XPath表达式非常脆弱,因为即使对页面结构进行很小的更改也会破坏它们。我不建议在测试中使用它们作为查找特定元素的方法 是否可以重写测试以仅使用元素的唯一ID而不使用XPath表达式搜索元素?修改页面时很容易保留ID 或者,如果出于某种原因,您需要经常更改元素的ID,那么您可以向H

我们的web应用程序有许多集成测试。如何处理页面UI结构的更改?所有测试都基于带有id和特定标记名的xpath(真正糟糕的是)


ID组是一个契约,但web开发人员如何在不失败测试的情况下轻松修改页面?

正如您所注意到的,XPath表达式非常脆弱,因为即使对页面结构进行很小的更改也会破坏它们。我不建议在测试中使用它们作为查找特定元素的方法

是否可以重写测试以仅使用元素的唯一ID而不使用XPath表达式搜索元素?修改页面时很容易保留ID

或者,如果出于某种原因,您需要经常更改元素的ID,那么您可以向HTML标记添加另一个属性,其中包含唯一且不变的“测试ID”,如下所示:

<a href="mylink.html" id="idThatWillBeChanged" test-id="myLink">My link</a>


然后您可以使用该测试id定位元素。不幸的是,添加这样的属性将意味着您的页面停止验证为有效的HTML,一些IDE会将其标记为错误。

据我所知,问题的根源在于您应该在所有测试用例中反映DOM的更改。可以通过添加另一个抽象层来消除这种冲突。在这种情况下,当元素发生更改时,您将仅在一个类中更新它

另见:


是的。这就是我真正想去的想法。但是在所有ui更改之后,开发人员应该运行集成测试。我说的对吗?如果考试不花太多时间,当然可以。不过,根据我的经验,集成测试可能需要很长时间(与单元测试不同)。如果是这种情况,并且您使用像Jenkins这样的持续集成服务器,您可以让它们在每次VCS提交后自动在那里运行,而开发人员正忙于做其他事情。好的,但是这个过程需要修改。我必须对开发者说:“观察jenkins,准备好修复测试。”jenkins可以被设置为在测试失败后向负责人发送电子邮件。至于“准备修复测试”部分,好吧,没办法解决。@socha23顺便说一句,您可以使用HTML5中的新
data-*
属性,而不是自定义属性。见: