Selenium 是Thought Works专门为Web应用程序编写的一个验收测试工具。(Web应用程序:通过浏览器访问的程序)
selenium的发展史:
selenium1.0
selenium IDE
Firefox插件,可以录制用户的基本操作,生成测试用例。
然后可以运行这些测试用例在浏览器里回放,可转化语言,eg:Java,python
selenium Grid
允许selenium——RC针对规模庞大的测试案例集或需要在不同环境中运行的测试案例集进行扩展
selenium RC
rc:remote control 的缩写,功能:模拟一个浏览器,主要测试web方面的东西。
支持多平台(windows,linux,Solaris)和多种浏览器(IE,Firefox,Opera,Safari),多语言(Java,Python,ruby,PHP,c#) 编写测试用例。
不足:
不支持本机键盘和鼠标事件
不支持同源策略xxs/http(s)
不支持弹出框,对话框(基本身份认证,自签名的证书和文件上传、下载)
selenium2.0
selenium2.0=selenium1.0+webdriver
基于调用webdriver api 来模拟用户操作
webdriver的速度更快,因为它直接交互使用的浏览器
支持多种编程语言
selenium3.0 (如果需测edge或safari,可以用此版本)
以下内容摘抄 原文地址:http://blog.csdn.net/hello_worldee/article/details/76512826去掉了对selenium rc 的支持
全面拥抱Java 8
支持macOS,支持官方的Safaridriver
通过ms官方的webdriver server 支持edge 浏览器
只支持ie 9.0 版本以上
通过Mozilla官方的geckodriver 来支持firefox
selenium学习路线
配置你的测试环境,真对你所学习语言,来配置你相应的selenium 测试环境。selenium 好比定义的语义---“问好”,假如你使用的是中文,为了表术问好,你的写法是“你好”,假如你使用的是英语,你的写法是“hello”。 所以,同样有语义在不同的语言下会有不同的写法(语法)。
接着你需要熟悉webdriver API ,API就是selenium 所定义一方法,用于定位,操作页面上的各种元素。
先学习元素的定位,selenium 提供了id、name、class name、 tag name、link text、partial link text、 xpath、css、等定位方法。xpath和css 功能强大语法稍微复杂,在这其间你可能还需要了解更多的前端知识。xml ,javascript 等。
定位元素的目的是为了操作元素,接就要学习各种元素有操作,输入框,下拉框,按钮点击,文件上传、下载,分页,对话框,警告框...等等。
经过一段时间的学习,你可以游刃有余的模拟手工测试来操作页面上的各种元素了。接着你需要做的就是把这些“用例”组织起来,统一来跑。
那么你需要做的就是学习并使用单元测试框架,单元测试框架本身就解决了用例的组织与运行。
当你写了一些“测试用例” 之后,你会发现用例中有大量重复的操作,能不能写到一个单独的文件中,需要的时候调用这些操作?当然可以,运用你的编程能力来实现这一点将非常简单。然后,你又发现每个用例中都有一些数据,这些数据也是一样的,但如果变化了修改起来非常麻烦,你也可以把他写到一个单独的文件中进行读取。
接着你又遇到了新的疑问,我写的脚本(用例)都是流水式的,我怎么知道用例运行失败还是成功。那么就需要在脚本中加一些验证与断言。
接着你又有了更多的想法,单元测试框架的log太简陋了,能不能生成一张漂亮的测试报告出来。我能不能定时的来跑这个脚本。能不能把每一次跑脚本的测试结果直接发到我的邮箱。能不能......
为解决这些问题,你不得不学习更多的编程技术,然后你的“测试结构”会功能越来越强大,越来越灵活。产生了一定的通用性和移植性。一个有模有样的自动化测试框架诞生了