1、前言

我大概是在2012年第一次正式接触到自动化测试,那个时候跟随我的团队一起,就当时项目的UI自动化尝试做出了探索。
在我离开那家公司的时候,我们的自动化测试体系仍然难言完美,但是也已经达到了非常高效的程度。我们的测试部门从业务向的纯手工测试团队,也转型为了自动化:手动=2:1的队伍结构。
时至今日,自动化测试的火热程度比起当年又要上升了几个层级,对于测试工程师而言,掌握自动化测试的技术和思路,无疑是个人重要的技术性向道路。因此我准备花一定的篇幅,从新从头开始对于java+selenium3这套自动化体系进行一些记录和解析,算是对相关技术的一个自我沉淀。也希望能对新接触此领域的朋友提供一些指引和帮助。

2、自动化体系的小简介

请允许我花小小的篇幅来介绍现在市场上主流的自动化测试体系。
抛开“广义”的自动化不说,现今的测试自动化方向主要集中在“UI”层和“API”层,也即所谓的UI自动化和接口自动化,如下图所示:

UI自动化的优势在于:

  • 通过模拟用户操作实现测试
  • 贴近产品和业务,方便验证和验收

其劣势(主要是对比API自动化):

  • 代码量大,维护工作量大
  • 容易受到变更的影响

尤其是这第一点,导致UI自动化被一些人员和企业所诟病,甚至引发一系列争议。
但是实际项目中,并不存在UI自动化是鸡肋的说法,有相当多的项目仍然选择采用UI自动化的方式提升测试效率。我们这一系列文章就预计做UI自动化的一个总集,至于API自动化后续可能会同样做一个汇总。

写这一段的目的在于,对于自动化领域的新手而言,UI自动化绝对是你不能不会的一块技术,也可以说是起步。

3、环境搭建

开始实现基于java+selenium的UI自动化,第一步就是搭建环境,我们需要以下东西:

  • JDK:写java代码当然要有java development kit
  • Eclipse:java继承编程环境
  • Selenium:UI自动化的主心骨
  • 各类浏览器driver:Selenium3时代,浏览器与自动化之间的桥梁。

后续我们可能还要加入诸如testNG,maven等部件和框架,这个可以后续需要在做。要写出初步的自动化代码并调试成功,只需要上述四个东西就可以了。

3.1 JDK

推荐到Oracle官网下载:
https://www.oracle.com/technetwork/java/javase/downloads/index.html

安装配置过程网上有大量教程,这里不再赘述。

3.2 Eclipse

同样推荐至Eclipse官网下载:
https://www.eclipse.org/downloads/

装好了JDK的话,eclipse的安装应该没有任何问题。

3.3 Selenium

如果使用maven管理的话,类似selenium及其它可能需要类库都可以使用maven进行管理和下载。出于学习的目的,这里我们暂时不使用maven管理,而是手动去下载他。
推荐去到selenium官网进行下载,地址是:https://www.seleniumhq.org/download/

可以选择下载历史版本或者最新版本:

4. 浏览器driver

去到 https://www.seleniumhq.org/download/
下翻到浏览器驱动下载区域,选择需要测试的浏览器的对应驱动:
(本文会涉及到Firefox及Chrome,所以需要下图红色箭头所指两个驱动)

5. 备选下载地址

如果以上下载遇到问题,可以到以下网盘中获取相关资源:

链接:https://pan.baidu.com/s/1yWZg22kQJQ0z_G8tJJnjXA
提取码:d19c

4. 项目配置

打开eclipse,新建一个java project,命名为seleniumTest,其他选项保持默认完成。
新建一个文件夹lib,用来放置我们需要的类库,建好以后将前序下载的selenium jar包使用拷贝过去,F5刷新项目:

另建一个文件夹tools,用来放置浏览器驱动文件,操作同样如上:

右键项目,选择build path - configure build path - Libraries - Add Jars,选择lib文件夹下面的selenium jar包。

完成以后,初步的java + selenium环境就搭建完毕了。

下一篇来写第一个selenium代码,启动浏览器


软件测试交流群:717380210
有软件测试,自动化测试,安全测试相关问题需要交流探讨的小伙伴,欢迎加入!

测试自动化:java+selenium3 UI自动化(1) - 环境搭建的更多相关文章

  1. 测试自动化:java+selenium3 UI自动化(2) - 启动Firefox

    1. selenium和浏览器 基于selenium的这套自动化体系,其实现关键就在于对于各浏览器的顺畅操作. 事实上当selenium刚开始起家的时候,他使用的还是javascript注入的方式来驱 ...

  2. 基于Selenium2+Java的UI自动化(1) - 原理和环境搭建

    一.Selenium2的原理 Selenium1是thoughtworks公司的一个产品经理,为了解决重复烦躁的验收工作,写的一个自动化测试工具,其原理是用JS注入的方 式来模拟人工的操作,但是由于J ...

  3. 基于Selenium2+Java的UI自动化(4) - WebDriver API简单介绍

    1. 启动浏览器 前边有详细介绍启动三种浏览器的方式(IE.Chrome.Firefox): private WebDriver driver = null; private String chrom ...

  4. java+selenium UI自动化001

    selenium是一个用于Web应用程序测试的工具,可以用来模拟用户在浏览器上的操作. 支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Googl ...

  5. ui自动化笔记 selenium_webdriver,ui自动化框架(web)

    Selenium学习笔记 selenium webdriver是业界公认ui自动化测试的标准,其封装的api可以对浏览器的任何地方进行操作 selenium2.0和selenium3.0的区别? 3. ...

  6. 【web系统UI自动化】关于UI自动化的总结

    实施过了web系统的UI自动化,回顾梳理下,想到什么写什么,随时补充. 首先,自动化测试不是手动测试的替代品,是比较好的补充,而且不是占大比重的补充. 70%的测试工作集中在底层接口测试和单元测试,2 ...

  7. Appium+python自动化16-appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...

  8. JAVA基础学习——1.1 环境搭建 之jdk安装,环境变量配置 (系统Win10,64bit)

    大学里虽然老师教过JAVA,但我没学.后来工作了,断断续续的也碰到了JAVA的项目,都是拉过来就干的节奏.也没有好好系统的学习一下. 从今天开始系统学习整理一下JAVA,以后再碰到JAVA项目的时候, ...

  9. Java不走弯路教程(1.环境搭建)

    1.环境搭建在开始写第一个Java程序之前,我们需要做一些简单的准备工作. 1.1 还记得DOS吗 我们可以通过图形界面来操作我们的电脑.但作为程序员,你首先需要学会用命令行的方式来操作电脑,因为不是 ...

随机推荐

  1. 转载《Flex 布局》

    网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...

  2. 使用反射机制将对象序列化Json

    一 思路 获取对象的Class对象. 获取对象的属性数组, 迭代属性数据拼接属性名与属性值, 存入List. 将List转换为流库, 再将流库使用逗号分隔符转换为字符串, 去掉首尾的逗号 二 代码 p ...

  3. 8086 IO读写操作

    如图所示,通过8086来读写io口,实现流水灯以及开关.本电路是基于8086最小模式下的三总线结构添加的,三总线结构原理较为复杂本篇就不对其原理进行介绍了,大家可以自行查阅相关引脚的功能从而实现. 本 ...

  4. 洛谷P1140 相似基因

    题目:https://www.luogu.org/problemnew/show/P1140 分析: 本题一看就知道是一道动归,其实和字串距离非常的像,只不过多了题目规定的匹配相似度罢了. 匹配的相似 ...

  5. Excel催化剂开源第30波-在Excel上尽情地使用LINQ

    对于笔者这样的数据分析工作者来说,对数据库有较深的掌握,当然少不了对SQL查询的深度使用,如果在编程的世界中,可以复用这样的能力,真的是一件多么令人高兴的事情. 在.Net的世界中,恰恰提供了这样的能 ...

  6. 【HDOJ】2007平方和与立方和

    Problem Description 给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和.   Input 输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成.   ...

  7. Hadoop学习-hdfs安装及其一些操作

    hdfs:分布式文件系统 有目录结构,顶层目录是:  /,存的是文件,把文件存入hdfs后,会把这个文件进行切块并且进行备份,切块大小和备份的数量有客户决定. 存文件的叫datanode,记录文件的切 ...

  8. dubbo同步调用、异步调用和是否返回结果源码分析和实例

    0. dubbo同步调用.异步调用和是否返回结果配置 (1)dubbo默认为同步调用,并且有返回结果. (2)dubbo异步调用配置,设置 async="true",异步调用可以提 ...

  9. jango简介

    Django简介   Django框架简介 MVC框架和MTV框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Mode ...

  10. (读论文)推荐系统之ctr预估-NFM模型解析

    本系列的第六篇,一起读论文~ 本人才疏学浅,不足之处欢迎大家指出和交流. 今天要分享的是另一个Deep模型NFM(串行结构).NFM也是用FM+DNN来对问题建模的,相比于之前提到的Wide& ...