主流的自动化测试工具
- QTP
- Selenium
- Robot framework
- Airtest
Selenium介绍
Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一。它最初由杰森·哈金斯(Jason Huggins)于2004年开发,作为Thought Works的内部工具。Selenium支持跨不同浏览器,平台和编程语言的自动化。
Selenium可以轻松部署在Windows,Linux,Solaris和Macintosh等平台上。此外,它支持IOS(IOS,Windows Mobile和Android)等移动应用程序的OS(操作系统)。
Selenium通过使用特定于每种语言的驱动程序支持各种编程语言。Selenium支持的语言包括C#,Java,Perl,PHP,Python和Ruby。目前,Selenium Web驱动程序最受Python和C#欢迎。 Selenium测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代Web浏览器中运行。 Selenium支持的浏览器包括Internet Explorer,Mozilla Firefox,Google Chrome和Safari。
Selenium特点
- 开源
- 跨平台:Linux、windows、Mac
- 支持多种浏览器:Firefox、Chrome、IE、Edge、Opera、Safari等
- 支持多种语言:java、python、C#、Javascript、Ruby、PHP等
- 成熟稳定
- 功能强大
Selenium的发展
从2004年至今,Selenium经历了3个版本,即Selenium1.0
,Selenium2.0
,Selenium3.0
。
- Selenium1.0
- seleniumIDE
- seleniumGrid
- 分布式测试。用于运行在不同的机器,不同的浏览器并行测试的工具,目的在于加快测试用例运行的速度,从而减少测试运行的总时间。利用Grid可以很方便地实现在多台机器上和异构环境中运行测试用例。
- seleniumRC
- Selenium2.0
- Selenium3.0
WebDriver与Selenium RC的区别
Selenium RC
Selenium RC使用的是javascript注入的方式跟浏览器打交道。这样Selenium RC需要启动一个Server,然后将操作页面元素的API 转成javascript脚本,再把这段脚本注入到浏览器中去执行。而通过这种javascript注入的方式一来太依赖翻译成javascript质量的好坏,二来javascript存在同源问题。这使测试变得不那么容易。
总结:
- Selenium RC需要Selenium Server才能运行测试用例。
- Selenium RC使用JavaScript来驱动浏览器运行测试用例。
- Selenium RC只能支持Web应用的测试。
- Selenium RC能支持所有浏览器但并不能及时支持最新版本。
WebDriver
与Selenium RC不同的是Selenium WebDriver针对不同的浏览器进行独立开发Driver,利用浏览器的原生API去直接操作浏览器和页面元素,这样大大提高了测试的稳定性和速度。当然因为不同的浏览器对Web元素操作和呈现多多少少会存在一些差异,这也就造成现在不同的浏览器需要有对应不同的Driver。
总结:
- WebDriver不需要Selenium Server就可以运行测试用例。
- WebDriver独立使用原生浏览器来运行测试用例。
- WebDriver既可以测试传统桌面Web应用,也可以测试手机上的应用程序,如iPhone或Android上的app程序。
- WebDriver能支持大多数浏览器的最新版本。
总结
Selenium RC | Selenium WebDirver |
---|---|
Selenium RC的架构复杂,运行测试脚本前必须先启动Selenium RC Server | WebDirver架构简单,通过OS层级来控制浏览器 |
Selenium RC通过Selenium RC Server中转才能与浏览器进行交互 | WebDriver直接与浏览器进行交互 |
Selenium RC则通过Selenium Core(javascript实现)来间接驱动浏览器 | Webdriver直接调用浏览器原生API进行驱动,速度较快 |
Selenium RC的API复杂冗余,不利于学习掌握 | Webdriver的API简洁,只要掌握几个常用的即可进行测试 |
Selenium RC只能驱动可视化的浏览器 | Webdriver除了驱动可视化的浏览器,还可以驱动内存模式的浏览器,比如HtmlUnit browser,phantomjs |
不能测试移动应用程序 | 可以测试iPhone/Android应用程序 |
WebDirver工作原理
参考
https://www.cnblogs.com/liuyuelinfighting/p/14901498.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。