WebUI自动化测试框架 Dagger

Apache
Java 查看源码»
跨平台
网易
2013-03-05
ChenKan

Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于SeleniumTestNg可以认为是对Selenium进行二次封装的一个框架(俗称 造轮子 )。之所以把这个轮子开源出来,主要在于经过了公司内部多个项目的实践,也取得了不错的成效,因此,希望开源以后可以对大家有所帮助及参考。

设计理念

Dagger首先是一个WebUI自动化框架,提供了赖以操纵浏览器的一些API。API数量不多,少于20个,但从实践上,已经基本涵盖95%的应用场景了(其余5%比较 个性 的自动化操作一般是封装在业务逻辑层面,有时候甚至会须要hack)

Dagger其次是一个测试框架,使用TestNg管理和运行用例,TestNg相关断言内嵌于上述API中。因此,在我们的测试用例里面不应该看到单独的TestNg断言的

Dagger还是一种设计风格:简约。无论是Dagger框架本身还是基于Dagger编写的测试用例,都是十分light及straightforward的,以至于会让人感觉有点土。但实践中,这两者确保了低成本、易用性、可维护性

WebUI自动化从业界看,难推进,易烂尾,原因基本在于:维护成本高、运行速度慢、稳定性差

Dagger专注于WebUI自动化,从技术上克服了速度与稳定问题(见下文)。只封装够用的浏览器操作为API,并充分简化/强化这些API,以简约的风格去降低自动化的学习及使用成本。同时,在实践中,我们主要使用Dagger编写冒烟用例、其次是主干用例,少写逻辑复杂功能,不写边边角角功能,让用例也保持清爽(在整个自动化实施过程中,会定期进行用例Review),同样易于后期维护

主要特性

  • API极少,易于上手,详见这里.

  • 提供比较完备的文档,便于快速入门,详见这里.

  • 支持单机多浏览器并发执行,大大缩短用例执行时间,详见这里

  • 通过修改TestNg源码实现失败用例自动重运行(详见这里)由此几乎消除WebUI自动化中常见的虚假失败

  • 默认使用Chrome浏览器,原因详见这里

  • 失败用例自动截屏

后续工作

  • 加入Flex/Flash自动化支持

如何使用

Dagger十分适合中小型团队从零开始WebUI自动化,这样的话,只须要直接下载整个Dagger代码就行了,Dagger本身都已经配置好了,下载后看一下使用文档就可以直接开始写用例了

也可以把Dagger打成Jar包,导入已有的自动化框架中,详见这里

的码云指数为
超过 的项目
加载中

评论(6)

m
muyu1520
感谢大神的慷慨开源,中国就应该多些像大神一样的无私的技术大牛
红薯
红薯
来自网易的 Web UI 自动化测试框架! Dagger
ui(
ui(
请问为什么要把.settings这类文件也提交? Dagger
xiaoxin
xiaoxin
WebUI自动化测试框架 Dagger,好东西方,值得学习 Dagger
AndrewLeo
AndrewLeo
Dagger已发布1.2版本,新特性详见:http://my.oschina.net/u/1265639/blog/174497 Dagger
qingfeng05
qingfeng05
针对控件的操作 比如支付宝密码输入 可以怎么输入呢 #Dagger#

WebUI 自动化测试框架 Dagger V1.3 正式发布

Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium 及TestNG,可以认为是对 Selenium进行二次封装的一个框架(俗称造轮子)。现发布1.3版本。...

2014/03/19 09:59

Dagger 1.2 发布,WebUI自动化测试框架

Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium及TestNG,可以认为是对 Selenium进行二次封装的一个框架(俗称造轮子)。在之前版本的基础...

2013/11/06 11:12

没有更多内容

加载失败,请刷新页面

没有更多内容

1
回答
Dagger2中Scope注解原理是什么?

学习了Dagger2中Scope注解,不太理解 ,比如 定义了 PerActivity ,它的作用域怎么就是Activity了呢? 怎么实现的?? @Sc...

2016/07/04 17:52
6
回答
一个简单的benchmark程序告诉你Spring依赖注入的性能有多好

依赖注入是目前Java开发过程中经常遇到的情况。现在常用的依赖注入工具有: Google Guice SpringFramework PicoContai...

2016/07/31 14:22
2
回答
dagger2编译失败
zhx2012 的回答 2016/06/29 16:08
最佳答案
知道原因了 要把 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' } 这句放到项目的build.gradle里 而不是module的build.gradle里
4
回答
Dagger有Python接口吗?

@ChenKan 你好,想跟你请教个问题: 我看到了您发布的自动化UI测试框架。在github的文档上翻了一下,只有java sdk,请问有支持pytho...

2013/03/06 08:07

没有更多内容

加载失败,请刷新页面

没有更多内容

Android上使用Dagger实现依赖注入

前面看过不少Dagger介绍的文章,总是感觉读着糊涂,弄复杂了。碰到一篇写得简单明了的文章,翻译出来。原文链接: http://www.vogella.com/tutorials/Dagger/article.html 依赖注入(depende...

2016/05/03 23:51
390
1
Dagger2图文完全教程

Dagger2图文完全教程 讲解各个情况下如何使用

2016/06/28 19:35
126
0
dagger2学习心得

学习dagger2应该从简入繁,需求导向才能更容易使定义更容易理解。

2016/06/05 08:42
35
0
Dagger2的使用

Dagger2的使用示例

2016/07/04 14:40
98
0
Android依赖注入Dagger的使用和源码解析(上篇)

一、基本概念 依赖注入(DI)和控制反转(IOC): 依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描...

2016/06/17 23:25
76
0
dagger2 让你爱不释手:终结篇

本文作者: 伯乐在线 - 牛犇 。未经作者许可,禁止转载! 欢迎加入伯乐在线作者团队。 前言 如果您对dagger2的概念,整个依赖注入框架还不清楚,可以先了解下我的前2篇文章: 《dagger2让你爱...

2016/04/01 15:50
276
1
WebUI自动化测试框架 Dagger 1.2版正式发布!

Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium及TestNG,可以认为是对Selenium进行二次封装的一个框架(俗称造轮子)。在之前版本的基础...

2013/11/06 10:13
633
2
Dagger 版本

square版 v1.2 相关资料: Dependency injection using Dagger (Part 1) @ antonioleiva.com Dependency injection using Dagger (Part 2) @ antonioleiva.com Dependency injection using D...

2016/03/31 16:52
7
1
dagger2笔记

dagger2是一个依赖注入框架,依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性。 官方简介:https://google.github.io/dagger/ 本文示例完整代码(官方代码整理到一个工程里):...

2016/12/29 00:00
17
0
依赖注入神器:Dagger2详解(2)

依赖注入神器:Dagger2详解

2016/12/07 17:25
49
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部