`
Tin
  • 浏览: 138589 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Selenium做功能测试的一点讨论(061102 update)

阅读更多
先后和nemo、limo、raimudox、nicholas讨论:
selenium的Remote Control比较适合在需求阶段就撰写(当然Fit方式也可以先于实现写),作为验收的测试。好处是RC对重构支持相对好一些,而且你可以换Agent,也可以做浏览器兼容测试。(但是由于RC的限制,兼容侧试兼容性并不好:)
按照raimudox所说RC是更加Pragmatic的实践,更能体现敏捷软件开发的测试先行的特性。功能测试可以说是沟通用户与开发者的最佳契约。
Selenium IDE录制script适合作为基线保留(指先实现需求,后录制测试这样的顺序),作为某次重构之前的样本。或者说,如果觉得手写测试脚本太麻烦,而喜欢本末倒置(没有贬义,纯技术上)的人设计的。更现实的说,这很有用,比如一个项目从一半开始敏捷改造,引入功能测试、单元测试,对以后的迭代进行基线的衡量,给新引入的CI(持续集成)一个更有实际意义的测试保障,用Selenium IDE帮助生成一下Script,然后再使用RC或者直接用Core执行一下都是不错的实践。而Fit方式(这里指先于应用实现就写出来的基于html/table的Fit式测试),相对吸引力差一些,因为工作量与RC相仿,重构支持比较差,而且没有DSL风格的封装,读起来相对费解一些。
还有,据Nicholas同学实践,Selenium IDE所录制的script在IDE中执行比RC方式兼容性要好,尤其对于跨域的情况,RC很有可能是无法工作的。还有一个问题,就是Selenium实际上是ThoughtWorks和BEA牵头的项目,TW负责Core,目前Core的代码发展的必较快,而RC由BEA负责,发展比较缓慢,所以,有些时候选择也就成为无奈了。
061102补充:
1、Selenium目前有做不到的地方:例如<input type="file"/>的情况,由于安全问题,浏览器是不允许通过javascript置里面的value的,所以selenium在此时会处于无能为力的情况。比较郁闷。虽然强行修改如Mozzila的安全属性可以办,但那不是好办法。
2、对于拥有复杂的Ajax widget的应用测试可能会非常麻烦,因为需要写很多javascript api在测试里面,对重构支持差(如api发生变化修改unit test很麻烦,而且可能出现需要对你的测试进行测试的尴尬情况)。当然对于大部分的ajax应用Selenium都是很好的选择。
3、大家都很看好的Remote Control方式发展比较慢,API还不够友好(经常抛出奇怪的异常),Bug还是比较多。所以还需要耐心等待,要多些像我们这样的小白鼠:D
推荐大家看看我的同事nicholas的这篇:用 Selenium 进行功能测试
浓缩一下:
1、何时、何目的来用Selenium选择不同。RC、Fit适合从需求阶段就开始写。而IDE录制则适合后补。
2、重构支持。RC重构友好一些。Fit重构不友好。
3、IDE目前限定于FF,做跨浏览器RC比较好。但是IDE录制后的代码很方便转为RC方式。
4、跨域兼容性问题,IDE解决的比较好。
分享到:
评论

相关推荐

    viff:Viff 测试框架。 在不同环境(开发、登台、生产)和浏览器中查找网页之间的视觉差异

    $ wdm update --standalone // install selenium and webdrivers 然后安装viff命令行。 npm install -g viff 例子 查看存储库以获取更多示例,包括: 微小的 CSS 差异 图表差异 内容差异 部分差异 事件处理 React...

    2021 年9 月整理:互联网技术岗--笔试面试题集合.zip

    了解缺陷管理工具(如JIRA)和自动化测试框架(如Selenium)也是必要的。 7. **数据库**:数据库知识涵盖SQL语句(如SELECT、INSERT、UPDATE、DELETE等)、索引、事务处理、数据库设计(如ER模型)以及性能优化技巧...

    [搜索链接]要广告分类系统 v2.0_yad20.zip

    JUnit用于单个方法的测试,而工具如Selenium或Postman可以帮助进行接口和功能测试。 8. **文档编写**:一份完整的毕业设计应包含详细的设计文档,包括需求分析、系统架构、模块设计、数据库设计、API接口说明等,...

    viff:我们目前使用的 Viff 核心,由开源 Viff 修改而来,分叉自

    $ wdm update --standalone // install selenium and webdrivers 然后安装viff命令行。 npm install -g viff 例子 查看存储库以获取更多示例,包括: 微小的 CSS 差异 图表差异 内容差异 部分差异 事件处理 React...

    ACCP8.0S2-Y2转换课程第2到11章上机课程素材(答案)

    这部分内容涵盖了软件测试的基本理论,包括黑盒测试、白盒测试、单元测试、集成测试等,以及自动化测试工具的使用,如JUnit、Selenium等。 **第十一章:职业素养与团队协作** 本章强调了软技能的培养,包括沟通技巧...

    java项目 BBS系统

    - **测试框架**:JUnit进行单元测试,Selenium进行Web界面测试。 7. **文件名称“bbs”** - 这可能是项目的主目录或者启动文件,包含Java源代码、配置文件、静态资源等。 通过以上分析,我们可以看出这个Java...

    行动

    9. **自动化测试**:在测试领域,"actions"可能是Selenium或Appium等自动化测试框架中的步骤,模拟用户与应用程序的交互。 10. **API设计**:在RESTful API设计中,HTTP动词(GET、POST、PUT、DELETE)可以理解为...

Global site tag (gtag.js) - Google Analytics