本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,可能才勉强将环境搭建了起来。
在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你,也就当自己做了个笔记,防止下次忘记。
不过,熟练之后应该也就不会忘记了,所以,开始自学时要多练呢,小伙伴们!!!
1.安装配置eclipse环境
我想大家配置eclipse应该是分分钟的事,我也就不多啰嗦了
(1)在官网上下载eclipse安装包,解压;
(2)在官网下载jdk,配置环境变量:
JAVA_HOME: jdk文件所在目录;
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环境变量;
MAVEN_HOME:maven文件所在目录
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中有的选项找不到,一定是没有下载对应的插件,这个自己百度吧;
祝你早日成功~~~~~~
---------本文内容不用于商业目的,如涉及知识产权问题,请随时联系!!!-------
-----------------祝福所有人学有所成,工作顺利,万事如意!!!----------------