news 2026/5/16 4:05:38

自动化(二)之Java自动化不同类型环境的配置浅析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动化(二)之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再试

说在文尾:

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 4:03:04

训练篇第7节:混合并行实战——以Megatron-LM和DeepSpeed为例剖析3D并行

单卡放不下?数据并行太慢?模型并行利用率低?3D并行一次性解决所有问题 前言 前两节我们分别学习了分布式训练的三种基本策略:数据并行、模型并行、流水线并行。但现实中的大模型训练(如GPT-3、LLaMA、Mixtral)用的不是单一策略,而是3D并行——三种策略的组合。 为什么…

作者头像 李华
网站建设 2026/5/16 4:03:03

UVA10341 Solve It 题解

UVA10341 Solve It 题目描述 Link: https://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&category15&pageshow_problem&problem1282 PDF 输入格式 输出格式 输入输出样例 #1 输入 #1 0 0 0 0 -2 1 1 0 0 0 -1 2 1 -1 1 -1 -1 1输出 #1…

作者头像 李华
网站建设 2026/5/16 4:00:48

Qt 主窗口全家桶:菜单栏、工具栏、状态栏与对话框完全指南

一、菜单栏Qt 中的菜单栏是通过QMenuBar 这个类来实现的。一个主窗口最多只有一个菜单栏。位于主窗口顶部、主窗口标题栏下面。菜单栏中包含菜单.菜单中包含菜单项。1、创建菜单栏代码示例&#xff1a;方法一&#xff1a;用函数menuBar()创建菜单栏//创建菜单栏QMenuBar* menub…

作者头像 李华
网站建设 2026/5/16 4:00:48

绝缘子缺陷检测数据集2148张VOC+YOLO格式

绝缘子缺陷检测数据集2148张VOCYOLO格式数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2148 标注数量(xml文件个数)&#xff1a;2148 标注数…

作者头像 李华
网站建设 2026/5/16 3:57:18

LLM提示词编排引擎:构建可维护AI工作流的工程化实践

1. 项目概述&#xff1a;一个为大型语言模型设计的“交响乐指挥家”最近在折腾大语言模型应用开发的朋友&#xff0c;估计都遇到过同一个头疼的问题&#xff1a;提示词管理。当你手头有几个、十几个甚至几十个不同的LLM任务需要编排时&#xff0c;比如先让模型A做摘要&#xff…

作者头像 李华
网站建设 2026/5/16 3:57:17

3D高斯泼溅渲染技术:无排序随机渲染原理与优化

1. 3D高斯泼溅渲染技术概述3D高斯泼溅(3D Gaussian Splatting, 3DGS)是近年来计算机图形学领域的一项突破性技术&#xff0c;它通过大量可微分的高斯基元来表示三维场景&#xff0c;实现了高质量的实时神经辐射场渲染。这项技术的核心思想是将传统点云中的离散点替换为具有空间…

作者头像 李华