selenium自动化基础知识
什么是自动化测试?
自动化测试分为:功能自动化和性能自动化
功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力。同时,如果系统有不份模块更改后,只要通过修改部分代码的方式来覆盖这部分修改的内容,大大提高测试效率。但是后期代码维护需要一定的成本,如果系统属于表单比较多或者经常修改改动的系统不太适合使用自动化,因为这个维护成本太高;针对于一些相对比较成熟(改动不是很频繁)的系统和跑回归测试的系统很适合进行自动化测试。
性能自动化即使用性能测试工具(常用的收费软件有LoadRunner、QTP,开源的有Jmeter)模拟成千上万的用户向系统发送请求,来取得系统性能峰值与瓶颈,但是性能测试的重点并不是在工具的使用上面,而是对工具产生的各种性能报表的性能分析上。需要完成一个完整的性能分析,你需要了解很多知识(计算机组成原理、操作系统、数据库原理、计算机网络原理、应用服务器【tomcat】、web server【apache】等)。
几乎每个项目都会用到性能测试,但是并不是所有的项目都适合自动化测试;然而性能测试需要更强的基础知识功底,对于半路出家的测试来说有很大难度;对于以后的发展方向都有利有弊吧。
为什么要进行UI自动化测试?
从图中我们可以看出各阶段测试的投入产出比,我们可以看到单元测试的收益是最高的,因为它直接对源代码进行测试,对某一个if判断或者一个for循环进行测试,所以收益最高,但是单元测试适不适合测试人员来做呢?答案是不一定适合,因为对于代码当然是开发者自身最熟悉自己开发的代码了,如果交给测试人员来测的话,测试人员还得清楚开发者的设计思路,对整个流程的代码通读,效率相对低下,所以单元测试在90%以上的公司都是有开发自己完成。
集成/接口测试相对收益率还是可以的,主要完成的是对各个类、接口的测试,对某个类中的add()方法,传入适当的参数,测试返回结果的正确性。
UI自动化测试的收益最低,那为什么还要进行UI自动化的测试呢,因为最终用户的操作是在UI层,所以大量的测试劳动力都会集中在UI层进行测试;而且,后期的回归测试是相当需要多劳动力进行不断的重复测试的,所以自动化测试就提现出了他的优势了。
什么是selenium?
Selenium是一款web应用的自动化测试工具,主要用于UI测试;
它的特点有如下几点:
1.支持多语言:java,python,ruby,PHP
2.多浏览器支持:IE、Chrome、Mozila-FireFox
3.开源,免费
4.多平台支持:windows、MAC、Linux
Selenium组成?
Selenium有两个版本selenium1.0和selenium2.0,现在普遍使用2.0,2.0支持的功能多。
看下selenium1.0的组成构架:


Selenium IDE是一个firefox中的一个插件,用于录制浏览器的操作,进而生成脚本的一款便于初学者使用的工具。局限性是其录制的脚本不能直接使用,代码很多的地方需要完善修改。主要是给初学者一个UI自动化的一个认识过程,实际作用不大。
Selenium Grid是一个辅助测试的工具,实现的功能是在多台测试机器上统一执行测试用例。(暂时没有用到)
Selenium RC是selenium中的核心部件,用于执行测试脚本进而对浏览器进行操作。RC由两个部件组成:Client Libraries和Selenium Server;
Client Libraries中保存的是测试脚本
Selenium Server中使用Launcher来启动和关闭浏览器;在启动浏览器后selenium core被部署到web应用中,core实际上是一个JS函数库,selenium就是通过这些JS函数对浏览器进行操作。
Selenium2.0 = selenium1.0 + webdriver
2.0相比较于1.0的区别是,2.0的selenium使用webdriver来取代了selenium RC的实现方法;
他们的区别是什么:
Selenium RC 在浏览器中运行 JavaScript 应用,使用浏览器内置的 JavaScript 翻译器来翻译和执行selenese 命令(selenese 是 Selenium 命令集合)。
2.0的WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器。Webdriver支持的页面操作更多,而且API更简介,易懂。

Selenium学习前知识储备及预装工具
学习selenium需要哪些知识支撑呢?
前端的知识:
HTML--->具体了解下HTML的各个标签的含义都是什么;
JavaScript--->了解JS的基础语法
XML--->了解配置文件
CSS--->可以了解一下,后面使用css定位可能会用到点
工具准备:
FireBug是一款Firefox的插件,它集 HTML查看和编辑、Javascript 控制台、网络状况监视器、cookie 查看于一体,是开发 JavaScript、CSS、HTML和 Ajax 的得力助手。
与FireBug配对使用的是FirePath,当通过 FireBug 的鼠标箭头选择一个页面元素后,FirePath 输入框将给出 XPath 的表达式,快速的帮我们定位。
JAVA--->根据自己使用的开发语言进行选择
Eclipse--->脚本标记IDE工具,现在流行的是intellij idea
Selenium jar包--->推荐版本:2.53.0
Ant--->构建工具(或者使用maven)
Jenkins--->持续集成工具
最后两个工具一般使用在敏捷开发的项目中,需要持续集成的自动化测试,暂时用不到。
selenium自动化基础知识的更多相关文章
- selenium 自动化基础知识(各种定位)
元素的定位 webdriver 提供了一很多对象定位方法 例如: [ id ] , name , class name , link text , partial link text , tag n ...
- Selenium·自动化基础
date:2018505+2018506 day05+06mor 一.安装环境 1.cmd→pip install selenium 2.将浏览器驱动放入X:\Python27下(如chromedri ...
- selenium入门基础知识
内容转载自:http://blog.csdn.net/huangbowen521/article/details/7816538 1.selenium介绍: Selenium是一个浏览器自动化操作框架 ...
- java接口自动化基础知识(二)
二.HttpClient+testNG实现对接口的测试及校验 在上面第一篇中已经实现了基础配置和测试用例数据准备,本篇文章将以登录举例进行测试执行. 这是之前login接口的代码 @Test(grou ...
- java接口自动化基础知识(一)
一.TestNG+MySQL+MyBatis实现对测试用例数据的读取 本篇文章讲解TestNG+MySQL+MyBatis+ExtentReports实现对测试用例数据的读取,下面放出所有配置文件的目 ...
- Selenium系列(十二) - 自动化必备知识之CSS选择器的详细使用
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
- 总结Selenium自动化测试方法(一)自动化测试基础
总结Selenium自动化测试方法 一.自动化测试基础 1.什么样的项目适合自动化测试 ①任务测试明确,不会频繁变动 ②每日构建后的测试验证 ③比较频繁的回归测试 ④软件系统界面稳定.变动少 ⑤需要在 ...
- Appium+python自动化(十五)- Android 这些基础知识,你知多少???(超详解)
简介 前边具体操作和实战已经讲解和分享了很多了,但是一些android的一些基础知识,你又知道多少了,你都掌握了吗?这篇就由宏哥给小伙伴们既是一个分享,又是对前边的一次总结.为什么要对这些做一个简单的 ...
- Selenium系列(十四) - Web UI 自动化基础实战(1)
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
随机推荐
- 理解CSS外边距margin
前面的话 margin是盒模型几个属性中一个非常特殊的属性.简单举几个例子:只有margin不显示当前元素背景,只有margin可以设置为负值,margin和宽高支持auto,以及margin具有 ...
- 将表里的数据批量生成INSERT语句的存储过程 增强版
将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...
- JS核心系列:理解 new 的运行机制
和其他高级语言一样 javascript 中也有 new 运算符,我们知道 new 运算符是用来实例化一个类,从而在内存中分配一个实例对象. 但在 javascript 中,万物皆对象,为什么还要通过 ...
- 让姑姑不再划拳 码农也要有原则 : SOLID via C#
“姑娘,别这样.我们是有原则的.” “一个有原则的程序猿是不会写出 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去.” “对,是时候和那些只会滚键盘的麻瓜不同了, ...
- .NET Core的日志[1]:采用统一的模式记录日志
记录各种级别的日志是所有应用不可或缺的功能.关于日志记录的实现,我们有太多第三方框架可供选择,比如Log4Net.NLog.Loggr和Serilog 等,当然我们还可以选择微软原生的诊断框架(相关A ...
- 创建几个常用table展示方式插件
这次和大家分享的是自己写的一个table常用几种展示格式的js插件取名为(table-shenniu),样式使用的是bootstrap.min.css,还需要引用jquery.min.js包,这个插件 ...
- netcore - MVC的ActionFilter的使用
经过一周的时间没有分享文章了,主要是在使用.netcore做一个小的项目,项目面向大众用户的增删改查都做的差不多了,打算本周在云服务器上部署试试,很期待,也希望上线后大家多多支持:以上纯属个人废话,来 ...
- [C#] C# 知识回顾 - 委托 delegate
C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...
- [Egret]优雅的写http
首先,自从使用链式调用的写法后,就一发不可收拾的喜爱上了这种优雅的方式.不管是写架构还是写模块,我都会不自觉的使用这种最优雅的方式.链式写法既减少了代码量,又非常优雅的. 在使用 egret 的htt ...
- php实现的分页类
php分页类文件: <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 pr ...