Java充电社
专辑
博文
联系我
本人继续续收门徒,亲手指导
UI自动化
-> UI自动化第1篇:环境搭建与简单示例
1、UI自动化第1篇:环境搭建与简单示例
2、UI自动化第2篇:元素定位专题
3、UI自动化第3篇:元素操作专题
下一篇:UI自动化第2篇:元素定位专题
<div style="display:none"></div> ## 1. 准备工作 UI自动化的工具选型如下: 1. 编程语言:Java 2. 编程IDE:IDEA 3. 项目管理构建:maven,详情见 [maven安装与使用](http://itsoku.com/course/2) 4. UI自动化测试:selenium3.0 5. 版本管理:git 6. 持续集成:Jenkins,详情见: 7. 浏览器:chrome 8. webdriver:<a href="http://chromedriver.storage.googleapis.com/index.html" target="_blank">地址</a>和<a href="http://npm.taobao.org/mirrors/chromedriver/" target="_blank">备用地址</a>,下载后解压到特定文件夹 ## 2. 项目构建 新建一个maven项目: ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/202/8bee57b8-efea-4f98-986d-4464b89c9a4f.png) **这里有一个坑:注意上图中红框信息,这里要选择自己安装的jdk,不然后续项目中会有莫名其妙的报错。** 添加pom依赖,pom.xml文件全文如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>test-automation-ui</artifactId> <version>1.0-SNAPSHOT</version> <properties> <java.version>1.8</java.version> <selenium.version>3.4.0</selenium.version> <testng.version>6.14.3</testng.version> </properties> <dependencies> <!-- selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>${selenium.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.testng/testng --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>${testng.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> ``` 可以在这个 <a href="https://mvnrepository.com/" tartet="_blank">地址</a> 中查找相应的依赖地址: ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/202/15d1e4c7-2dc8-400b-a8ca-70ced0481213.png) ## 3. 编写示例 下面编写一个简单的示例。 首先,创建一个Driver类,这个类主要是封装了webDriver,目前只提供了chrome的driver,后续可以添加Firefox等,在使用时直接从该类中调用相应方法即可。 ```java import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; /** * @author muguozheng * @date 2020/4/5 11:27 * @Description: driver配置 * @modify */ public class Driver { WebDriver driver; public WebDriver chromeDriver() { String driverPath = "E:/source/driver/chromedriver_80_2.exe"; System.setProperty("webdriver.chrome.driver",driverPath); ChromeOptions options = new ChromeOptions(); options.addArguments("--start-maximized"); // 启动时自动最大化窗口 options.addArguments("--disable-popup-blocking"); // 禁用阻止弹出窗口 options.addArguments("no-sandbox"); // 启动无沙盒模式运行 options.addArguments("disable-extensions"); // 禁用扩展 options.addArguments("no-default-browser-check"); // 默认浏览器检查 Map<String, Object> prefs = new HashMap(); prefs.put("credentials_enable_service", false); prefs.put("profile.password_manager_enabled", false); options.setExperimentalOption("prefs", prefs);// 禁用保存密码提示框 driver = new ChromeDriver(options); //设置寻找一个元素的时间 driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); return driver; } } ``` 接着,创建一个测试类: ```java import com.common.Driver; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; /** * @author muguozheng * @date 2020/4/5 12:47 * @Description: demo * @modify */ public class SeleniumTest { WebDriver driver; @BeforeTest public void init() { String url = "http://www.baidu.com"; // 新建一个浏览器句柄 driver = new Driver().chromeDriver(); //打开URL driver.get(url); } @Test @Parameters("keyWords") public void search(String keyWords) throws InterruptedException { //输入搜索字符串 driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys(keyWords); //点击[百度一下]按钮 driver.findElement(By.xpath("//*[@id=\"su\"]")).click(); Thread.sleep(2000); } @AfterTest public void teardown() { driver.quit(); } } ``` 第三步,新建一个test.xml文件,并写入测试配置 ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Test Of TestNG"> <test verbose="2" name="百度搜索"> <parameter name="keyWords" value="测试" /> <parameter name="keyWords" value="测试" /> <classes> <class name="SeleniumTest"> <methods> <include name="search" /> </methods> </class> </classes> </test> </suite> ``` 在文件上右键单击运行该文件,即可执行。 ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/202/32d1337e-df51-44c4-a74e-a0bc7b113395.png) 至此,一个较为完整的测试demo完成,后续会有更详细全面的总结。 > 来源:`https://blog.csdn.net/mu_wind/article/details/105300527` <a style="display:none" target="_blank" href="https://mp.weixin.qq.com/s/_S1DD2JADnXvpexxaBwLLg" style="color:red; font-size:20px; font-weight:bold">继续收门徒,亲手带,月薪 4W 以下的可以来找我</a> ## 最新资料 1. <a href="https://mp.weixin.qq.com/s?__biz=MzkzOTI3Nzc0Mg==&mid=2247484964&idx=2&sn=c81bce2f26015ee0f9632ddc6c67df03&scene=21#wechat_redirect" target="_blank">尚硅谷 Java 学科全套教程(总 207.77GB)</a> 2. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484192&idx=1&sn=505f2faaa4cc911f553850667749bcbb&scene=21#wechat_redirect" target="_blank">2021 最新版 Java 微服务学习线路图 + 视频</a> 3. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484573&idx=1&sn=7f3d83892186c16c57bc0b99f03f1ffd&scene=21#wechat_redirect" target="_blank">阿里技术大佬整理的《Spring 学习笔记.pdf》</a> 4. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484544&idx=2&sn=c1dfe907cfaa5b9ae8e66fc247ccbe84&scene=21#wechat_redirect" target="_blank">阿里大佬的《MySQL 学习笔记高清.pdf》</a> 5. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247485167&idx=1&sn=48d75c8e93e748235a3547f34921dfb7&scene=21#wechat_redirect" target="_blank">2021 版 java 高并发常见面试题汇总.pdf</a> 6. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247485664&idx=1&sn=435f9f515a8f881642820d7790ad20ce&scene=21#wechat_redirect" target="_blank">Idea 快捷键大全.pdf</a> ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/1/2883e86e-3eff-404a-8943-0066e5e2b454.png)
#custom-toc-container