自动化(二)之Java自动化不同类型环境的配置浅析
小编本文主要是关于Java自动化环境的配置搭建与大家进行分享。
本篇内容包含(基于上篇的基础上根据不同端汇总环境配置):单元测试(JUnit5) + 接口自动化(RestAssured) + UI自动化(Selenium) + 测试报告(Allure)。
前置必备软件:
1、JDK1.8(必须8,自动化框架兼容最稳定)
2、IDEA2020+(任意专业版/社区版都可)
3、Maven 3.8.x / 3.9.x(不要用3.6及以下的)
4、Chrome浏览器(最新即可,Selenium4自动适配驱动)
5、Allure 2.23.1(和pom版本保持一致,用于生成可视化报告)
本地环境配置就翻一下小编上一篇笔记……(^_^)v
一、创建Maven自动化项目。
1、IDEA——New Project——选Maven——不勾选骨架——Next
2、填写:
Groupil:com.auto
Artifactid: java-auto-test
Version: 1.0.0
3、选择项目存放路径——Finish;
4、等待项目初始化完成,自动生成src目录;
5、删除自动生成的多余App类,干净项目结构。
Maven 核心依赖(直接复制pom.xml)
java项目中最常见的Maven 核心依赖,一般普通java项目中不会直接引这些,Maven插件/工具开发才会用到。
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>com.auto</groupId> <artifactId>java-auto-test</artifactId> <version>1.0.0</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <junit.version>5.9.2</junit.version> <restassured.version>5.3.0</restassured.version> <selenium.version>4.15.0</selenium.version> <allure.version>2.23.1</allure.version> </properties> <dependencies> <!-- JUnit5 单元测试 --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- 接口自动化 RestAssured --> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>${restassured.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.rest-assured</groupId> <artifactId>json-schema-validator</artifactId> <version>${restassured.version}</version> <scope>test</scope> </dependency> <!-- Web UI 自动化 Selenium --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>${selenium.version}</version> <scope>test</scope> </dependency> <!-- 日志、JSON处理 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.36</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <!-- 测试插件 + Allure报告 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.1.2</version> <configuration> <argLine> -javaagent:${settings.localRepository}/io/qameta/allure/allure-java-common/${allure.version}/allure-java-common-${allure.version}.jar </argLine> </configuration> </plugin> </plugins> </build> </project>操作:粘贴后点击IDEA右侧Maven——刷新,等待所有以来下载完成。
二、标准项目目录结构(直接照着建或者可以按照自己习惯创建都可以)。
plaintext java-auto-test └── src └── test └── java ├── unit // 单元测试用例 ├── api // 接口自动化用例 ├── web // Web UI自动化用例 ├── common // 公共工具类 │ ├── BaseTest.java │ ├── HttpUtil.java │ └── WebDriverUtil.java └── pojo // 实体类、请求/响应实体
三、可直接运行 三大demo示例。
1、单元测试 unit/DemoTest.java
java package unit; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class DemoTest { @Test void testDemo() { int a = 10; int b = 20; assertEquals(30, a + b); } }
2、接口自动化 api/ApiDemoTest.java
Java package api; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; public class ApiDemoTest { @Test void testGetDemo() { given() .baseUri("https://httpbin.org") .when() .get("/get") .then() .statusCode(200) .body("url", equalTo("https://httpbin.org/get")); } }
3、UI 测试 web / webDemoTest.java
java package web; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class WebDemoTest { private static WebDriver driver; @BeforeAll static void initDriver(){ // 新版selenium自动适配浏览器驱动,无需手动下载 driver = new ChromeDriver(); driver.manage().window().maximize(); } @Test void openBaidu(){ driver.get("https://www.baidu.com"); System.out.println("当前页面标题:" + driver.getTitle()); } @AfterAll static void closeDriver(){ if(driver != null){ driver.quit(); } } }
四、运行方式&Allure报告生成。
1、单条用例运行
IDEA 直接右键单个Test类 → Run 执行
2、Maven命令行执行全部用例:
Terminal输入:
bash mvn test3、Allure生成并打开报告
3.1、执行完mvn test 后,项目生成
3.2、命令行生成报告并自动打开:
allure generate allure-results-o allure-report --clean allure open allure-report五、常见报错及解决方案
1、Maven依旧爆红
刷新Maven——检查settings.xml阿里云镜像——File-invalidate Caches清理缓存重启IDWA
2、Chrome浏览器启动失败
Selenium4无需手动下载驱动,自动匹配
升级Chrome到最新版本
3、JUnit5注解不识别
确认pom已引入junit-jupiter-api / engine
模块SDK选为JDK8
4、Allure命令不存在
检查Allure是否配置环境变量Path
重启CMD/DEA再试
说在文尾:
如果你感觉小班的分享有帮助到你。
嘿嘿(搓手)关注下小编呗......希望在技术分享的路上同学们相互支持。
