我们目前正在使用Selenium Webdriver & JUnit对B2C产品进行冒烟测试。因为我们使用的是Selenium,所以脚本完全依赖于UI。考虑到该产品不是一家科技初创公司,UI和工作流程一直在以极高的频率变化/发展。
其后果是:本应验证应用程序神圣性的冒烟测试总是失败。团队花费更多的时间来修复脚本,而不是验证构建。
我非常确定大多数自动化人员都会面临类似的问题,特别是。快速的开发周期。期待看到行业中其他面临类似问题的人采取的一些方法。
注意:前端是PHP开发的
发布于 2014-11-26 17:25:28
Webdriver的工作原理大致是这样的:有一个起始点,webdriver与其交互(例如,通过模拟按钮按下),然后找到下一个要交互的项。下一项可能在下一页或同一页上。可以通过多种方式找到它,通过id或第三个div,即class="foo“等。
测试内容包括页面加载是否为200OK、字符串"login“是否出现在特定位置等
改变UI的问题是所有的元素都在“移动”。ids发生变化,第三个div类foo消失。这意味着webdriver交互将失败,如果它们正在寻找特定元素,则测试也将失败
一种解决方案是针对一组is进行开发和测试。这些ids将引用固定的UI元素。在webdriver中的所有搜索都应该使用ids。编写PHP的开发团队将把ids放在正确的位置。
这组in还可以用作某种规范的基础,并可以用来以不同的方式向不同的利益相关者解释UI流。
我不知道有任何特定的产品在测试和开发代码中处理这种管理ids的过程,但是维护这样一个描述UI项的“词典”不应该是一个主要任务
发布于 2014-11-26 19:52:03
被测系统的通用性越强,基于Selenium的框架就越重要,该框架可以减少更改的维护工作。对于被测系统中最常见的更改,有几种已知的模式可以帮助您减少维护工作:
的情况下调用WebServices来测试某些功能也很有帮助
https://stackoverflow.com/questions/27145168
复制相似问题