当前位置: 首页 > news >正文

自动化(二)之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 test

3、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再试

说在文尾:

如果你感觉小班的分享有帮助到你。

嘿嘿(搓手)关注下小编呗......希望在技术分享的路上同学们相互支持。

http://www.jsqmd.com/news/825953/

相关文章:

  • Vite+React+TypeScript+VsCode框架实战
  • fre:ac免费音频转换器:跨平台终极指南与实用教程
  • 综合能源系统多级环式一体化设计【附代码】
  • 给老人的火车票打个折,挺好,但差了点什么
  • MySQL 配置文件(my.ini/my.cnf)核心参数详解,新手必改配置
  • 令牌管理实战:从JWT原理到token-ninja库的集成与应用
  • OpenContext开源框架:模块化设计实现AI上下文管理新范式
  • 甘蓝中耕除草机器人结构与运动控制【附代码】
  • 【flutter for open harmony】第三方库Flutter 鸿蒙版 心情日记 实战指南(适配 1.0.0)✨
  • 为 OpenClaw 智能体框架配置 Taotoken 作为模型供应商的要点
  • DeepSeek在MMLU基准测试中狂揽86.7分:这3个被99%开发者忽略的推理优化技巧,立竿见影!
  • 基于Gemini CLI的深度研究工具:命令行AI助手的架构与实战
  • 【DeepSeek Chat功能测试全链路指南】:20年AI工程师亲测的7大核心场景验证法
  • 训练篇第6节:NCCL(三)——性能调优:NVLink vs. PCIe vs. InfiniBand
  • Qt 主窗口全家桶:菜单栏、工具栏、状态栏与对话框完全指南
  • GaN飞跨电容三电平逆变器调制与均压【附代码】
  • 概率计算与RRAM硬件在分子对接中的应用与优势
  • 服务器入侵应急处置:痕迹清理、漏洞封堵与事后加固全流程
  • 线程相关知识
  • 12 - AI Native“基因测序法”:你的产品是“数字生命”还是“行尸走肉”?
  • 训练篇第7节:混合并行实战——以Megatron-LM和DeepSpeed为例剖析3D并行
  • ContextGit:为代码库注入结构化上下文,提升代码可追溯性与团队协作效率
  • 绝缘子缺陷检测数据集2148张VOC+YOLO格式
  • 中小企业云上安全从零搭建:低成本防护架构落地指南
  • Arm Ethos-U85 NPU架构解析与边缘AI优化实践
  • 使用go-ios运行fastbot
  • DNS优化实战:从运营商DNS到HttpDNS的进化之路
  • MySQL 登录报错排查:1045、2003 错误,新手快速解决
  • 软件交付质量与风险管理的关键指标与实践
  • 汽车电源管理系统:同步降压转换器与LDO技术解析