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

自动化(二)之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——不勾选骨架——Next2、填写Groupil:com.autoArtifactid: java-auto-testVersion: 1.0.03、选择项目存放路径——Finish4、等待项目初始化完成自动生成src目录5、删除自动生成的多余App类干净项目结构。Maven 核心依赖直接复制pom.xmljava项目中最常见的Maven 核心依赖一般普通java项目中不会直接引这些Maven插件/工具开发才会用到。xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion groupIdcom.auto/groupId artifactIdjava-auto-test/artifactId version1.0.0/version properties maven.compiler.source8/maven.compiler.source maven.compiler.target8/maven.compiler.target junit.version5.9.2/junit.version restassured.version5.3.0/restassured.version selenium.version4.15.0/selenium.version allure.version2.23.1/allure.version /properties dependencies !-- JUnit5 单元测试 -- dependency groupIdorg.junit.jupiter/groupId artifactIdjunit-jupiter-api/artifactId version${junit.version}/version scopetest/scope /dependency dependency groupIdorg.junit.jupiter/groupId artifactIdjunit-jupiter-engine/artifactId version${junit.version}/version scopetest/scope /dependency !-- 接口自动化 RestAssured -- dependency groupIdio.rest-assured/groupId artifactIdrest-assured/artifactId version${restassured.version}/version scopetest/scope /dependency dependency groupIdio.rest-assured/groupId artifactIdjson-schema-validator/artifactId version${restassured.version}/version scopetest/scope /dependency !-- Web UI 自动化 Selenium -- dependency groupIdorg.seleniumhq.selenium/groupId artifactIdselenium-java/artifactId version${selenium.version}/version scopetest/scope /dependency !-- 日志、JSON处理 -- dependency groupIdorg.slf4j/groupId artifactIdslf4j-simple/artifactId version1.7.36/version scopetest/scope /dependency /dependencies build plugins !-- 测试插件 Allure报告 -- plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-surefire-plugin/artifactId version3.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.javajava 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.javaJava 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.javajava 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清理缓存重启IDWA2、Chrome浏览器启动失败Selenium4无需手动下载驱动自动匹配升级Chrome到最新版本3、JUnit5注解不识别确认pom已引入junit-jupiter-api / engine模块SDK选为JDK84、Allure命令不存在检查Allure是否配置环境变量Path重启CMD/DEA再试说在文尾如果你感觉小班的分享有帮助到你。嘿嘿搓手关注下小编呗......希望在技术分享的路上同学们相互支持。

相关文章:

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

小编本文主要是关于Java自动化环境的配置搭建与大家进行分享。 本篇内容包含(基于上篇的基础上根据不同端汇总环境配置):单元测试(JUnit5) 接口自动化(RestAssured) UI自动化(Selenium) 测试报告(Allure)。 前置必备软件&#x…...

本地包管理器指南:实现开发环境隔离与依赖管理的工程实践

1. 项目概述:一个为开发者而生的本地包管理器指南如果你是一名开发者,尤其是经常在本地环境折腾各种工具、依赖和项目配置的开发者,那么“包管理器”这个词对你来说一定不陌生。无论是 Node.js 的 npm/yarn/pnpm,Python 的 pip/co…...

基于Milvus混合检索与Java SpringBoot的全栈实现

阿里云有数千份产品文档,腾讯云有上万页技术规格,华为云的价格清单每天都在更新,开发者如何在浩如烟海的资料中,3秒内找到“ECS g6.2xlarge在华东区的按量计费价格”?传统关键词搜索解决不了语义理解,纯向量…...

轻量级包管理器LPM指南:从原理到实践,构建高效软件依赖管理方案

1. 项目概述:一个为开发者而生的轻量级包管理器指南如果你是一名开发者,尤其是经常在Linux或macOS环境下工作的开发者,那么“包管理器”这个词对你来说一定不陌生。从系统级的apt、yum、brew,到语言级的npm、pip、cargo&#xff0…...

一个开发团队的时序数据库选型实战手记

当实验室的模拟数据,遇上真实产线上轰鸣的机器与错综复杂的业务逻辑,我们才发现:选择一款数据库,远不止比拼性能数字那么简单。历时半年选型、三个月上线,本文将完整复盘我们从InfluxDB、TDengine到最终落地金仓KES时序…...

多模态RAG实战:基于CLIP与向量数据库构建图文检索增强生成系统

1. 项目概述:从“Mureo”看多模态检索增强生成最近在折腾一个挺有意思的开源项目,叫“Mureo”。这个名字乍一看有点抽象,但如果你拆开来看,它其实融合了“Multimodal”(多模态)和“Neural”(神经…...

IoTDB与TimechoDB深度解析

全球物联网设备将在2025年突破416亿台,每天产生79.4ZB的数据,相当于8000多万个1TB硬盘才能装下。面对这场数据海啸,传统数据库纷纷“侧漏”,时序数据库成为企业数字化升级的“救生艇”。 本文将从五大核心维度,系统剖…...

Arduino智能小车避障与拟人化设计:从传感器到行为逻辑

1. 项目概述与核心思路最近在整理工作室的物料,翻出了几个闲置的360度舵机和超声波模块,手痒之下决定做个智能小车玩玩。这个项目本身不新鲜,网上教程一抓一大把,但我想做点不一样的:不仅要能实现基础的自动避障&#…...

工业物联网数据上云省钱实战:边缘预处理与协议瘦身详解

背景与问题 工业物联网项目落地时,带宽费用往往是降本增效的第一道坎。几百台设备每秒上传数据,每月带宽费轻易上万,其中大量数据属于冗余“常态数据”。本文记录一套低成本方案:通过边缘计算网关做数据清洗与协议压缩&#xff0c…...

内容创作团队如何借助Taotoken统一调度多个模型提升内容多样性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 内容创作团队如何借助Taotoken统一调度多个模型提升内容多样性 对于自媒体、内容运营或数字营销团队而言,持续产出高质…...

Zotero插件市场:告别繁琐安装,开启高效学术插件管理新时代

Zotero插件市场:告别繁琐安装,开启高效学术插件管理新时代 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing, installing, and reviewing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zoter…...

FPGA串行FIR滤波器设计:Verilog实现与资源优化实战

1. 项目概述在数字信号处理(DSP)的硬件实现领域,FIR(有限脉冲响应)滤波器因其绝对稳定性和线性相位特性,成为工程师们手中的一把利器。无论是通信系统的信道均衡,还是音频处理中的噪声抑制&…...

Cyber Engine Tweaks完整指南:5步掌握《赛博朋克2077》终极脚本框架

Cyber Engine Tweaks完整指南:5步掌握《赛博朋克2077》终极脚本框架 【免费下载链接】CyberEngineTweaks Cyberpunk 2077 tweaks, hacks and scripting framework 项目地址: https://gitcode.com/gh_mirrors/cy/CyberEngineTweaks Cyber Engine Tweaks是一个…...

架构设计实战指南:在约束中做取舍的工程智慧

架构设计实战指南:在约束中做取舍的工程智慧 版本:V1.0 适合人群:开发工程师、架构师、技术负责人、CTO、技术出身的创业者写在前面:你是不是也遇到过这些问题? 如果你是开发工程师: 刚写完的代码&#xff…...

用TensorFlow和BERT搞定CTI分析:一个实战案例教你从威胁报告中自动提取攻击技战术

基于BERT与TensorFlow的威胁情报自动化分析实战指南 在网络安全领域,威胁情报分析正经历着从人工解读到智能解析的范式转变。传统安全团队每天需要处理数百份威胁报告,分析师往往淹没在大量非结构化文本中,难以快速识别关键攻击模式。本文将展…...

Cursor AI 规则引擎:自动化编码规范与项目约束实践指南

1. 项目概述:一个为 Cursor 编辑器量身定制的规则引擎如果你和我一样,深度依赖 Cursor 这款 AI 驱动的代码编辑器,那你一定经历过这样的时刻:面对 AI 生成的代码,既惊叹于它的效率,又时常为它不遵守团队规范…...

data-prep-kit:Python数据预处理工具包,自动化清洗、特征工程与流水线构建

1. 项目概述与核心价值最近在数据科学和机器学习社区里,一个名为data-prep-kit的项目开始引起不少同行的注意。如果你经常和数据打交道,无论是做数据分析、构建模型,还是搭建数据管道,你肯定对“数据准备”这个环节又爱又恨。爱的…...

TestDisk与PhotoRec:免费开源的数据恢复双雄终极指南

TestDisk与PhotoRec:免费开源的数据恢复双雄终极指南 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 在数字时代,数据丢失是每个人都会遇到的噩梦。无论是误删除重要文件、分区表损坏…...

从 LLM 到 Agent:Harness Engineering 的角色演变

从 LLM 到 Agent:Harness Engineering 的角色演变 本文字数:约10200字 | 阅读时间:25分钟 | 适合人群:AI算法工程师、产品经理、技术负责人、AI应用开发者 1. 引入与连接:被忽略的AI落地核心桥梁 1.1 开场:一个真实的AI落地场景 2024年中,某互联网公司运维团队负责人李…...

Arm Ethos-U85 NPU架构解析与边缘AI优化实践

1. Arm Ethos-U85 NPU架构解析:边缘AI的算力引擎在嵌入式AI领域,算力与功耗的平衡始终是核心挑战。Arm Ethos-U85 NPU的诞生,为Cortex-M/A系列处理器提供了专用的神经网络加速方案。这款NPU采用独特的微架构设计,支持TOSA标准指令…...

线程相关知识

线程是进程内的一条独立执行流,是操作系统调度 CPU 的最小单位,共享进程的地址空间与资源,有自己独立的栈、寄存器、程序计数器。一、核心本质拆解1.从属关系 进程是资源分配最小单位(内存、文件、句柄); 线…...

DeepSeek在MMLU基准测试中狂揽86.7分:这3个被99%开发者忽略的推理优化技巧,立竿见影!

更多请点击: https://intelliparadigm.com 第一章:DeepSeek在MMLU基准测试中狂揽86.7分:技术突破与行业意义 DeepSeek-V3 在涵盖57个学科领域的MMLU(Massive Multitask Language Understanding)基准测试中取得86.7%的…...

基于AI宏观流动性监测框架的黄金三日连跌研究:美联储加息预期按兵不动后的市场重定价逻辑

摘要:本文通过AI宏观利率模型、美元流动性监测系统与黄金波动率因子分析,结合美通胀数据、美债收益率变化及市场利率预期重定价过程,分析黄金连续三日回落背后的核心驱动逻辑,并探讨当前“高利率持续”环境下黄金资产的阶段性压力…...

ThreadLocal原理与内存泄漏防范

前言 在现代软件开发中,ThreadLocal原理与内存泄漏防范是一个非常重要的技术点。本文将从原理到实践,带你深入理解这一技术,并通过完整的代码示例帮助你快速掌握核心知识点。 核心概念 基本原理 ThreadLocal原理与内存泄漏防范的核心在于理解…...

MySQL数据库基础3--(函数)完

一、聚合函数聚合函数包括COUNT()、SUM()、AVG()、MAX()和MIN()。当需要对表中的记录求和、求平均值、查询最大值和查询最小值等操作时,可以使用聚合函数。GROUP BY关键字通常需要与聚合函数一起使用。COUNT()用来统计记录的条数;SUM()用来计算字段的值的…...

Zabbix监控扩展实战:zbx-openclaw开源模板深度解析与应用指南

1. 项目概述与核心价值最近在折腾监控告警系统,发现一个挺有意思的开源项目,叫zbx-openclaw。这名字乍一看有点抽象,但拆开来看就明白了——zbx指的是 Zabbix,那个老牌的监控系统;openclaw直译是“开放的爪子”&#x…...

【DeepSeek Chat功能测试全链路指南】:20年AI工程师亲测的7大核心场景验证法

更多请点击: https://intelliparadigm.com 第一章:DeepSeek Chat功能测试的底层逻辑与验证哲学 DeepSeek Chat 的功能测试并非仅面向接口响应的“黑盒点击”,而是建立在模型行为可解释性、推理路径可追溯性与系统边界可控性三重基石之上的验…...

Simics在网络转型与SDN迁移中的核心价值与应用

1. Simics在网络转型与SDN迁移中的核心价值解析网络架构正经历从传统硬件设备向软件定义网络(SDN)和网络功能虚拟化(NFV)的深刻变革。这场变革的核心挑战在于:如何在保持网络高性能的同时,实现控制平面与数据平面的解耦,以及如何将传统网络功…...

Mali GPU着色器优化与性能分析实战

1. Mali离线着色编译器深度解析Mali离线着色编译器是Arm为开发者提供的专业工具链组件,专门用于分析和优化面向Mali GPU架构的着色器代码。与运行时编译不同,它允许开发者在构建阶段就对着色器性能进行静态分析和调优。1.1 核心工作原理该工具通过模拟Ma…...

基于CRICKIT与CircuitPython的蛇形机器人避障项目实践

1. 项目概述与核心思路最近在捣鼓一个挺有意思的创客项目:用Adafruit的CRICKIT扩展板和CircuitPython,做一个能自己溜达、遇到障碍会躲开的蛇形机器人。这玩意儿听起来复杂,其实拆解开来,核心就是“感知-决策-执行”这个经典的控制…...