第一步 安装JDK

JDk1.7.

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

一路猛击‘下一步’,OK。安装完成后配置环境变量:

JAVA_HOME = E:\Java\Java\jdk1.7.0_15

PATH = %JAVA_HOME%\bin

CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

配置完环境变量后,CMD命令行输入:java -version,返回如下结果,则表示安装成功:

第二步 下载Eclipse

下载地址:http://www.eclipse.org/download/

最新的Eclipse Standard 4.3, 198 MB,下载的都是不用安装的,解压出来后直接用。

第三步 下载Selenium IDE、SeleniumRC、IEDriverServer

下载地址:http://www.seleniumhq.org/download/

  1、  Selenium IDE:selenium-ide-2.5.0.xpi 用来在Firefox上录制脚本。

  2、  Selenium RC:selenium-server-standalone-2.40.0.jar 模拟服务器端,selenium 1.0执行脚本时需要单独启动该jar包, selenium webdriver无需单独启动。

  3、  IEDriverServer:IEDriverServer_Win32_2.40.0.zip IE驱动

  

这里,我将下载得到的所有文件,全存放在E:\eclipse\selenium下面,方便管理:

第四步 下载Firefox

下载地址:http://www.firefox.com.cn/download/

下载得到文件:Firefox-latest.exe,最好是下载Firefox 25简体中文版,后续版本有人说通过Selenium会启动不了Firefox。

第五步 安装IDE、Firebug、Xpath checker、Xpath finder

安装完Firefox后,打开Firefox,把前面下载的selenium-ide-2.5.0xpi拖放到Firefox,弹出下图后,安装即可。

Firebug、Xpath checker、Xpath finder,打开firefox浏览器,选择工具――附加组件,打开附加组件管理器页面,搜索firebug、Xpath。

将查询到的firebug、xpath checker、xpath finder都装上,重启浏览器后生效:

SeleniumIDE、Firebug和xpath的用法,可以百度Selenium私房菜(新手入门教程).pdf,里面有很好的说明。

第六步 启动SeleniumRC

注意:selenium 1.0需要启动单独rc,webdriver则不需要启动。

启动seleniumRC的方法:
cmd命令行进入selenium-server-standalone-2.40.0.jar存放目录,输入如下命令
java -jar selenium-server-standalone-2.40.0.jar

为了方便,可以将启动命令写一个bat来执行,Run_selenium.bat,内容如下:

@echo off
cd E:\eclipse\selenium
E:
java -jar selenium-server-standalone-2.40.0.jar

第七步 Eclipse执行Selenium的Java实例

-----7.1

打开Eclipse,新建一个工程File—new—Java Project

 

-----7.2

输入工程名:Selenum,next

-----7.3

接下来,窗口进入Java Settings,选择Libraries,点击Addlibrary。

引用Junit4的Jar包(E:\eclipse\plugins\org.junit_4.11.0.v2XXXX)。

然后点击Add External Jars..,

引用Selenium相关的包(E:\eclipse\selenium),最终Libraries如下:

完成后,Java视图如下:

-----7.4

右击src,new->package新建一个包Selenium_Test,

再右击包Selenium_Test,new->class,新建一个Class类Case1.java,最终效果如下:

-----7.5

下面我们来用IE浏览器执行一个实例,修改Case1.java,这里我们用selenium webdriver来写代码,代码如下:

package Selenium_Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public class Case1 {
public static void main(String[] args) {
System.setProperty("webdriver.ie.driver",
"E:\\eclipse\\selenium\\IEDriverServer.exe");//注意这里IEDriverServer.exe的文件存放路径
DesiredCapabilities ieCapabilities = DesiredCapabilities
.internetExplorer();
ieCapabilities
.setCapability(
InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
true);
//new一个webdriver对象
WebDriver driver = new InternetExplorerDriver(ieCapabilities);
//上面这一段是用来解决IE安全设置提示的
//通过webdriver的get方法调用浏览器,打开网页:http://www.google.com.hk
driver.get("http://www.google.com.hk");
//通过页面元素的name=q定位到查询输入框 WebElement element = driver.findElement(By.name("q"));
//在输入框输入‘hello Selenium!’
element.sendKeys("hello Selenium!");
//提交查询
element.submit();
//等待,超时则抛出错误
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//输出当前页面的title
System.out.println("Page title is: " + driver.getTitle());
//关闭所有webdriver进程,退出
driver.quit();
}
}

-----7.6

右击Case1.Java,Run As—>Java Application,执行成功结果如下:

-----7.7

接着,我们换成用selenium 1.0来写代码,Case1_1.java代码如下:

package Selenium_Test;

import com.thoughtworks.selenium.*;

public class Case1_1 {

public static void main(String[] args)

{

        DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "http://www.baidu.com/");

       selenium.start();

       selenium.open("/");

       selenium.type("id=kw1", "selenium");

       selenium.click("id=su1");

       System.out.println("Page title is: " + selenium.getTitle());

       selenium.stop();

 }

}

-----7.8

右击Case1_1.Java,Run As—>Java Application,执行成功结果如下:

-----7.9

上面提示不能连接服务器,下面我们先执行前面的Run_selenium.bat,启动selenium rc

-----7.10

再次右击Case1_1.Java,Run As—>Java Application,执行成功结果如下:

以上例子,展示了使用selenium webdriver和selenium 1.0写代码的执行区别。

两者打开浏览器用的方法不同,当然,还有其他的方法也不同。且1.0还得另外启动selenium rc

下面我们通过Junit来运行脚本,脚本需要修改一下,因为Junit的Java文件有它自己的格式。

第八步 Eclipse通过Junit执行Selenium的Java实例

-----8.1

右击Selenium_Test,new->Junit test case 新建一个Case2.java。

完成后如下:

-----8.2

修改Case2.java代码如下:

 1 package Selenium_Test;
2
3 import org.junit.*;
4 import org.openqa.selenium.*;
5 import org.openqa.selenium.firefox.FirefoxDriver;
6
7 public class Case2 {
8 WebDriver driver;
9
10 @Before
11 public void setUp() throws Exception {
12 driver = new FirefoxDriver();
13 }
14
15 @Test
16 public void test_case2() throws Exception {
17 driver.get("http://www.google.com.hk");
18 WebElement element = driver.findElement(By.name("q"));
19 element.sendKeys("hello Selenium!");
20 element.submit();
21 }
22
23 @After
24 public void tearDown() throws Exception {
25 System.out.println("Page title is: " + driver.getTitle());
26 driver.quit();
27 }
28 }

-----8.3

右击Case2.java,Run As—>Junit Test,执行成功结果如下:

第九步 Eclipse通过TestNG执行Selenium的Java实例

-----9.1

安装 TestNG

  在 Eclipse 中,点击 Help ->  Install new software ,在 add 栏中输入http://beust.com/eclipse,在下面就会看到 TestNG.选中点击安装,按下一步直到安装完,在线安装会有点很慢。

安装完重启Eclipse后,在 window->Show View->other 里面选中Java->TestNG,就会出现TestNG选项了。

-----9.2

右击包Selenium_Test,new->other->TestNG新建一个 TestNG 的测试类Case3.java。

完成后如下:

修改Case3.java脚本内容如下:

 1 package Selenium_Test;
2
3 import org.testng.annotations.Test;
4 import org.openqa.selenium.By;
5 import org.openqa.selenium.WebDriver;
6 import org.openqa.selenium.WebElement;
7 import org.testng.annotations.BeforeMethod;
8 import org.testng.annotations.AfterMethod;
9 import org.openqa.selenium.firefox.FirefoxDriver;
10
11 public class Case3 {
12 WebDriver driver;
13
14 @BeforeMethod
15 public void beforeMethod() {
16
17 }
18
19 @AfterMethod
20 public void afterMethod() {
21 System.out.println("Page title is: " + driver.getTitle());
22 driver.quit();
23 }
24
25 @Test
26 public void test_case3() {
27 driver = new FirefoxDriver();
28 driver.get("http://www.google.com.hk");
29 WebElement element = driver.findElement(By.name("q"));
30 element.sendKeys("hello Selenium!");
31 element.submit();
32 }
33 }

-----9.3

右击Case3.java,Run as->TestNG Test,执行成功结果如下:

执行完,会生成一个test-output文件夹,文件夹下面的index.html就是测试报告,如下:

以上是在Eclipse下如何搭建Selenium的测试环境,包括直接执行.java,通过Junit执行.java,通过TestNG执行.java。

通过junit/TestNG+java 实现自动化测试的更多相关文章

  1. Selenium终极自动化测试环境搭建(一) Selenium+Eclipse+Junit+TestNG

    Selenium终极自动化测试环境搭建(一)Selenium+Eclipse+Junit+TestNG 第一步 安装JDK JDk1.7. 下载地址:http://www.oracle.com/tec ...

  2. Selenium自动化测试环境搭建汇总(一):Selenium+Eclipse+Junit+TestNG

    第一步 安装JDK JDk1.7. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-188026 ...

  3. Java Unit Testing - JUnit & TestNG

    转自https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaUnitTesting.html yet another insignifican ...

  4. 《手把手教你》系列基础篇(七十三)-java+ selenium自动化测试-框架设计基础-TestNG实现启动不同浏览器(详解教程)

    1.简介 上一篇文章中,从TestNg的特点我们知道支持变量,那么我们这一篇就通过变量参数来启动不同的浏览器进行自动化测试.那么如何实现同时启动不同的浏览器对脚本进行测试,且听宏哥娓娓道来. 2.项目 ...

  5. 《手把手教你》系列基础篇(七十五)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 中篇(详解教程)

    1.简介 上一篇中介绍了DataProvider如何传递参数,以及和一些其他方法结合传递参数,今天宏哥接着把剩下的一些常用的也做一下简单的介绍和分享. 2.项目实战1 @DataProvider + ...

  6. 《手把手教你》系列基础篇(七十六)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 下篇(详解教程)

    1.简介 今天这一篇宏哥主要是结合实际工作中将遇到的测试场景和前边两篇学习的知识结合起来给大家讲解和分享一下,希望以后大家在以后遇到其他的测试场景也可以将自己的所学的知识应用到测试场景中. 2.测试场 ...

  7. 《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 上篇(详解教程)

    1.简介 今天主要是讲解和分享:TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用dependsOnMethods,testNG会自动根据@Test方法名称 ...

  8. 《手把手教你》系列基础篇(七十八)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 中篇(详解教程)

    1.简介 上一篇讲解了依赖测试的各种方法,今天继续讲解依赖测试的方法,这一篇主要是讲解和分享通过xml文件配置组名依赖方法( 主要是测试组的用法).废话不说,直接上干货. 2.实例 测试组:一个组可包 ...

  9. 《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)

    1.简介 经过前边几篇知识点的介绍,今天宏哥就在实际测试中应用一下前边所学的依赖测试.这一篇主要介绍在TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用de ...

随机推荐

  1. 20170803 Airflow自带的API进行GET 和POST动作部分内容

    --1 首先你要有安装好的Airflow 环境并且在配置文件中有启用API 属性 --2 就是GET 和POST 方法的调用了 这里说一下,由于Airflow在网络上的资料比较少,可以从GETHUB中 ...

  2. Pycharm快捷键大全(windows + Mac)

    Windows快捷键 1.编辑 Ctrl + Space    基本的代码完成(类.方法.属性) Ctrl + Alt + Space  快速导入任意类 Ctrl + Shift + Enter    ...

  3. MySQL的nnodb引擎表数据分区存储

    Symlinks are fully supported only for MyISAM tables. 对应Innodb引擎数据文件放到其他目录 mysql> SHOW VARIABLES L ...

  4. Apache服务介绍

    http服务器程序 httpd             服务名称 apache         软件包名 特性: 高度模块化:   core + modules DSO:  Dynamic Share ...

  5. 简明 ASP.NET Core 手册2018

    https://windsting.github.io/little-aspnetcore-book/book/ 中文版 https://nbarbettini.gitbooks.io/little- ...

  6. Windows 10正式版的历史版本

    1.Windows 10 1507 初版Windows 10,代号TH1,版本号10240,发布于2015年7月. 2015年7月29日,微软正式发布了Windows 10操作系统.Windows 1 ...

  7. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  8. (转)Docker镜像构建上下文(Context)

    镜像构建上下文(Context) Docker在构建镜像时,如果注意,会看到 docker build 命令最后有一个 ... 表示当前目录,而 Dockerfile 就在当前目录,因此不少初学者以为 ...

  9. centos7部署fabric-ca错误解决

    1.fabric-ca 编译错误:ltdl.h: no such file 在fabric-ca目录中使用make编译时,会出现如下错误: 解决方案: 如果在ubunt操作系统中,只需安装:apt i ...

  10. [LeetCode] 788. Rotated Digits_Easy tag: **Dynamic Programming

    基本思路建一个helper function, 然后从1-N依次判断是否为good number, 注意判断条件为没有3,4,7 的数字,并且至少有一个2,5,6,9, 否则的话数字就一样了, 比如8 ...