首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对不断变化的UI运行基于UI的selenium smoke测试

针对不断变化的UI运行基于UI的selenium smoke测试
EN

Stack Overflow用户
提问于 2014-11-26 17:13:29
回答 2查看 2K关注 0票数 0

我们目前正在使用Selenium Webdriver & JUnit对B2C产品进行冒烟测试。因为我们使用的是Selenium,所以脚本完全依赖于UI。考虑到该产品不是一家科技初创公司,UI和工作流程一直在以极高的频率变化/发展。

其后果是:本应验证应用程序神圣性的冒烟测试总是失败。团队花费更多的时间来修复脚本,而不是验证构建。

我非常确定大多数自动化人员都会面临类似的问题,特别是。快速的开发周期。期待看到行业中其他面临类似问题的人采取的一些方法。

注意:前端是PHP开发的

EN

回答 2

Stack Overflow用户

发布于 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项的“词典”不应该是一个主要任务

票数 0
EN

Stack Overflow用户

发布于 2014-11-26 19:52:03

被测系统的通用性越强,基于Selenium的框架就越重要,该框架可以减少更改的维护工作。对于被测系统中最常见的更改,有几种已知的模式可以帮助您减少维护工作:

  • 通过使用UIMaps对应用程序的UI进行建模非常容易处理更改的ID、CSS类或类似的UIMaps减少了较大的UI更改的工作量(例如,当输入字段从TextBox更改为下拉字段时)
  • 使用关键字驱动的测试对测试用例进行建模,而不需要了解底层的技术表示。例如,从用户的角度来看,一个关键字封装了一个动作--一个关键字的例子可以是:如果UI /应用程序/工作流经常发生重大变化,则“loginWithValidUser()”
  • Don’t只需使用UI进行烟雾测试。大多数情况下,通过在不使用任何Web

的情况下调用WebServices来测试某些功能也很有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27145168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档