java+eclipse+selenium+maven+testng+reportng+jenkins自动化测试环境搭建

自己在研究自动化测试时,真的入了不少坑,直到现在,可能才勉强将环境搭建了起来。

在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你,也就当自己做了个笔记,防止下次忘记。

不过,熟练之后应该也就不会忘记了,所以,开始自学时要多练呢,小伙伴们!!!

1.安装配置eclipse环境

我想大家配置eclipse应该是分分钟的事,我也就不多啰嗦了

(1)在官网上下载eclipse安装包,解压;

(2)在官网下载jdk,配置环境变量:

  1. JAVA_HOME: jdk文件所在目录;

  2. path:%JAVA_HOME%\bin或者C:\Program Files\Java\jdk1.8.0_111\bin

(3)配置完成后,在cmd控制台中输入java -version,如果出现版本信息等内容,则证明配置成功。

2、配置maven环境

使用maven的目的是不用导入selenium的jar包,可以在maven的pom文件中添加依赖,直接下载jar包,用起来比较方便。

(1)在官网下载maven文件,后缀为zip的包,将文件解压;

(2)配置maven环境变量;

  1. MAVEN_HOME:maven文件所在目录

  2. path:%MAVEN_HOME%\bin

 

此时maven已经安装成功,我们需要在cmd中输入mvn -version检查一下,出现版本信息则证明安装成功。

3、在eclipse中添加maven

(1)点击window→preference进入对话框页面,在进入UserSettings设置页面,如图选择settings.xml文件和本地仓库的绝对路径。点击Apply→OK

(2)测试maven是否安装成功,打开eclipse选择上面菜单“File”–>“New”–>“Project”选择创建“Maven Project”项目试试。如下图表示配置完成:

4、在eclipse中添加testng。

运用testng的目的是方便管理用例,需要执行哪个用例就执行哪个,而不是全部执行,同时testng要在pom文件中添加依赖,这样方便jenkins中执行pom文件时可以执行测试用例。

(1)打开我们的Eclipse,点击Help ->Install New Software,如图:

(2)点击右上角的Add按钮,在弹出来的对话框中填入如下内容。Name:testNG location: beust.com/eclipse ,点击OK. 勾选testNG,然后点击next进行下一步的操作直至完成。

(3)进度条完成之后,应该已经成功。验证是否安装成功,重新启动Eclipse,点击file–>new–>other–>testNG.出现如下图所示即为安装成功。

5、编写代码示例

我这里就比较简单介绍一下我的操作步骤。

(1)新建一个maven项目(怎么新建请自行百度)

我的目录结构如图所示

下面是我的用例代码的编写,写个三个Test,从注解就能看出来。当然中间牵扯到调用其他类、调用文件、继承其他类等问题,我就不全部粘贴出来了


@Test

//打开首页

public void openPage(){

driver.get(“这里是打开的地址”);

waitTime(2000);

driver.manage().window().maximize();

waitTime(2000);

}

@Test(dependsOnMethods={"openPage"})

//账号登录

public void Login(){

this.propertiesfile();

WebElement name = driver.findElement(By.id(prop.getProperty("user")));

name.sendKeys(prop.getProperty("uservalue"));

waitTime(1000);

WebElement passwo = driver.findElement(By.id(prop.getProperty("passwo")));

passwo.sendKeys(prop.getProperty("passwovalue"));

waitTime(1000);

WebElement Loginbutton = driver.findElement(By.id(prop.getProperty("login")));

Loginbutton.click();

waitTime(3000);

String e1 = driver.findElement(By.id("login-name")).getText();

System.out.println("当前登录人是: "+e1);

}


@Test(dependsOnMethods={"Login"})

//新增供应商

public void Addgys(){

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("arguments[0].click();",driver.findElement(By.linkText("供应商管理")));

js.executeScript("arguments[0].click();",driver.findElement(By.linkText("供应商列表")));


WebElement iframe = driver.findElement(By.id("/cpkhe/supplier/list"));

driver.switchTo().frame(iframe);


WebDriverWait wait1 = new WebDriverWait(driver,30);

wait1.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(prop.getProperty("addgysbutton"))));

WebElement gys3 = driver.findElement(By.cssSelector(prop.getProperty("addgysbutton")));

gys3.click();

waitTime(2000);

driver.switchTo().defaultContent();


WebElement iframe1 = driver.findElement(By.id("/cpkhe/supplier/add"));

driver.switchTo().frame(iframe1);


driver.findElement(By.id("supName")).sendKeys("Auto供应商名称1");;

driver.findElement(By.id("firstContact")).sendKeys("第一联系人");

driver.findElement(By.id("firstContactPost")).sendKeys("第一联系人职务");

driver.findElement(By.id("firstContactMobile")).sendKeys("18892080505");

driver.findElement(By.id("contactEmail")).sendKeys("9072388@qq.com");

driver.findElement(By.id("sourceInfo")).sendKeys("渠道信息渠道信息渠道信息啦啦啦啦");

driver.findElement(By.id("brandName0")).sendKeys("品牌名称1");

driver.findElement(By.cssSelector(".ant-select-selection__placeholder")).click();

driver.findElement(By.xpath(prop.getProperty("branddowm"))).click();

driver.findElement(By.id("applyReason")).sendKeys("申请理由申请理由");


driver.findElement(By.cssSelector("span.ant-upload > input:nth-child(1)")).sendKeys("C:\\Users\\ye.menghua\\Desktop\\红星美凯龙\\图片\\timg.jpg");


waitTime(2000);

driver.findElement(By.cssSelector("button.ant-btn:nth-child(2)")).click();

WebDriverWait wait2 = new WebDriverWait(driver,30);

wait2.until(ExpectedConditions.presenceOfElementLocated(By.className("message-info-desc")));

String text1 = driver.findElement(By.className("message-info-desc")).getText();

System.out.println("新增供应商提交之后,提示信息:"+text1);

}



//时间等待

public static void waitTime(int time){

try {

Thread.sleep(time);

} catch (InterruptedException e) {

e.printStackTrace();

}

}


 (2)项目需要的包都在pom文件中添加依赖,只需要在maven仓库(mvnrepository.com)中搜索需要的包,添加到pom文件中即可。

以下代码是我的pom.xml文件中添加的依赖的内容


<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->

<dependency>

<groupId>org.seleniumhq.selenium</groupId>

<artifactId>selenium-java</artifactId>

<version>2.53.1</version>

</dependency>

<dependency>

<groupId>velocity</groupId>

<artifactId>velocity</artifactId>

<version>1.4</version>

</dependency>

<dependency>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<version>2.4.3</version>

</dependency>

<dependency>

<groupId>xml-apis</groupId>

<artifactId>xml-apis</artifactId>

<version>1.4.01</version>

</dependency>

<dependency>

<groupId>org.testng</groupId>

<artifactId>testng</artifactId>

<version>6.8.21</version>

<scope>test</scope>

</dependency>

<!-- 依赖reportNg 关联testNg-->

<dependency>

<groupId>org.uncommons</groupId>

<artifactId>reportng</artifactId>

<version>1.1.2</version>

<scope>test</scope>

<exclusions>

<exclusion>

<groupId>org.testng</groupId>

<artifactId>testng</artifactId>

</exclusion>

</exclusions>

</dependency>

<!-- 依赖Guice -->

<dependency>

<groupId>com.google.inject</groupId>

<artifactId>guice</artifactId>

<version>3.0</version>

<scope>test</scope>

</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->

<dependency>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.19.1</version>

</dependency>

<dependency>

<groupId>com.google.inject</groupId>

<artifactId>guice</artifactId>

<version>3.0</version>

<scope>test</scope>

</dependency>

<plugins>

<!-- 添加插件,添加ReportNg的监听器,修改最后的TestNg的报告 -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.5</version>

<configuration>

<properties>

<property>

<name>usedefaultlisteners</name>

<value>false</value>

</property>

<property>

<name>listener</name>

<value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>

</property>

</properties>

<workingDirectory>target/</workingDirectory>

<forkMode>always</forkMode>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.5</version>

<configuration>

<encoding>UTF-8</encoding>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.20</version>

<configuration>

<suiteXmlFiles>

<suiteXmlFile>testng.xml</suiteXmlFile>

</suiteXmlFiles>

</configuration>

</plugin>

</plugins>


</build>

6、生成testng.xml文件

(1)右键点击项目名称,TestNg→Convert to TestNg,接着点击Next→finish。就会生成testng.xml文件。

 (2)可以右键点击testng.xml文件运行用例

 

(3)也可以在pom文件中添加下图内容,关联testng.xml文件

此时执行pom文件也可执行用例 

 

(4)生成的报告在target\surefire-reports\html目录下的index.html文件中,这里要说明一下,我的pom文件中添加可reportng的依赖,所有报告的样式是按照以下样式生成的。

7、jenkins环境配置

将jenkins搭建在本地的tomcat中,首先要搭建tomcat环境,在官网上下载tomcat压缩包,解压,配置tomcat环境变量完成之后,启动tomcat的bin目录下的startup.bat文件,出现如图所示的窗口

 

如果没有更改端口号的话,默认打开地址为http://localhost:8080,如图所示 

下载jenkins.war包,下载成功之后,将改文件放在tomcat的webapp目录下,此时重启tomcat,在地址栏中输入​​​​​​http://localhost:8080/jenkins/可打开jenkins页面。 

8、jenkins如何构建pom文件的配置

(1)点击系统管理→全局工具配置,配置jdk和maven参数

(2)新建一个自由风格的任务,对改项目进行配置 点击调用顶层目标,填写下图的内容

(3)构建后显示测试报告的内容,需要将报告的绝对路径写入

(4)点击立即构建,构建项目

9、jenkins构建完成后以邮件的形式发送报告

(1)在系统管理→系统配置中配置如下内容

 

(2)在项目任务点击配置,配置内容如下

我的Default Content中输入的邮件模板是下图所示,网上有很多模版,大家可以搜索一下。

 

下图在高级里面,表示的是每次构建都会发送邮件

此时,基本就介绍完了,赶快构建一下吧

按照操作,有没有成功呢?

整个环境搭建过程不可能会很顺利,会不时的出现各种奇奇怪怪的问题;要有耐心哦!!!

jenkins中有的选项找不到,一定是没有下载对应的插件,这个自己百度吧;

祝你早日成功~~~~~~

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值