保姆级教程:从0到1搭建web自动化测试环境

之前都是在linux上安装,第一次在windows上配置环境,加上距离上次配置环境有点久了,竟也花了点时间。特此记录下保姆级教程,给初学者一个有效的参考!

一. 环境搭建

工具清单

工具工具名版本
Java开发工具包JDK1.8
浏览器Chrome112.0
IDEEclipse
开发语言Java1.8
Web自动化测试工具Selenium3.141.59
依赖包管理Maven3.3.9
测试框架TestNG6.14.2
1.1 安装java 并配置环境变量
  • 1.1.1 下载java并安装

下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
下载后傻瓜安装,会先安装JDK,再安装JRE。
这里JDK的路径是:D:\Program Files\Java\jdk1.8.0_40
JRE的路径是:D:\Program Files\Java\jre1.8.0

  • 1.1.2 配置环境变量

设置-系统-高级系统设置-高级,环境变量,新建系统变量:

  1. JAVA_HOME:D:\Program Files\Java\jdk1.8.0_40

  2. CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar

  3. PATH(已有,追加): %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin

设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包
设置PATH的目的,在于可以查找到可执行的程序。

  • 1.1.3 验证安装

输入java -verison,出现以下输出说明安装OK(注意版本要和安装设置的一致)

输入javac,出现以下输出说明环境变量设置OK

1.2 下载maven并配置环境变量

Maven是Apache的一款开源的项目管理工具,其作用主要有两大块:

  1. 管理依赖包
  2. 编译打包部署

maven使用POM(Project-Object-Model 项目对象模型)来管理项目的构建。下面会有POM的配置说明。

  • 1.2.1 下载并解压缩

下载地址:https://maven.apache.org/download.cgi

这里我使用的版本是3.3.9,可以找到该版本的下载地址:https://dlcdn.apache.org/maven/maven-3/3.3.9/binaries/

Windows下载这个即可:

解压后的目录文件如下,主要关注conf/settings.xml:

  • 1.2.2 修改maven配置文件

这里Maven解压缩的目录:D:\Program Files\apache-maven-3.3.9\conf\settings.xml

这里指定了本地仓库,即maven的jar包下载的路径

这里指定了maven中央仓库的镜像地址,即jar包的下载路径。为什么这样写,参考 https://developer.aliyun.com/mvn/guide:

  • 1.2.3 配置maven环境变量

MAVEN_HOME:D:\Program Files\apache-maven-3.8.8

将maven变量添加到path中(目的:使得程序可以在任何地方运行maven):

  • 1.2.4 验证配置

  • 1.2.5 下载maven依赖包

下载的依赖包即存放在settings.xml配置的localrepository里:

出现下面的输出即为OK:

1.3 安装IDE并配置

这里用的是eclipse,IDEA也是类似,工具不同而已,配置大同小异。

  • 1.3.1 下载,解压缩

下载地址:https://www.eclipse.org/downloads/packages/
选择windows版本。Eclipse是免安装的,下载后直接运行eclipse.exe

  • 1.3.2 配置eclipse maven installation选项

该操作是为了配置eclipse使用安装的maven。
打开Eclipse,windows -> preferences,搜索maven,Installations, add,选择maven路径

  • 1.3.3 修改maven User settings

该操作是为了配置eclipse使用安装maven的settings

  • 1.3.4 配置Eclipse Installed JREs

Eclipse需要在JRE上运行,maven编译需要使用JDK中的编译器,因此需要配置Eclipse installed JREs指向JDK,选择自己安装的JDK即可。

1.4 创建maven项目并配置依赖
  • 1.4.1 创建maven项目

File-> new->other,搜索maven,选择maven project

GroupId 是项目组织唯一的标识符,实际对应项目的包,其实就是包结构;ArtifactId 实际对应项目名称。
GroupId和ArtifactId被统称为“坐标”是为了保证项目唯一性而提出的,对于maven项目而言,groupID和artifactId是maven管理项目包时用作区分的字段,就像是地图上的坐标。
建好的项目结构如图:


其中pom.xml是maven项目的核心配置文件,在这里管理各种依赖。
Src/main/java 存放项目的java源码
Src/main/resources 存放项目的相关配置文件
Src/test/java 存放项目的测试代码
Src/test/resources 粗放项目的测试相关配置文件

  • 1.4.2 配置POM.xml

POM全程Project Object Model,又称项目对象模型。它是Maven工程的基本工作单元,是一个XML(可扩展标记语言)文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。执行任务或目标时,Maven会在当前目录中查找 POM并读取从而获取所需的配置信息执行目标,属于项目级别的配置文件。
这里用的编译工具是maven,加入以下声明(涉及maven详细的语法,本文不展开细说):

 
  1. <build>

  2. <plugins>

  3. <plugin>

  4. <groupId>org.apache.maven.plugins</groupId>

  5. <artifactId>maven-compiler-plugin</artifactId>

  6. <version>3.3</version>

  7. <configuration>

  8. <source>1.8</source>

  9. <target>1.8</target>

  10. <encoding>UTF-8</encoding>

  11. </configuration>

  12. </plugin>

  13. </plugins>

  14. </build>

这里是maven仓库地址
https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin
用的maven版本是3.3.9:

使用的selenium版本是3.141.59;testNG版本是6.14.2,加入以下依赖:

 
  1. <dependencies>

  2. <dependency>

  3. <groupId>org.seleniumhq.selenium</groupId>

  4. <artifactId>selenium-java</artifactId>

  5. <version>3.141.59</version>

  6. </dependency>

  7. <dependency>

  8. <groupId>org.testng</groupId>

  9. <artifactId>testng</artifactId>

  10. <version>6.14.2</version>

  11. </dependency>

  12. </dependencies>

1.5 安装testng插件

TestNG是测试框架,自动化测试主要用到的是其强大的注解类。POM文件里已经定义了使用的testng版本是6.14.2,接下来需要安装该插件。

Help- install new software,下图的location中填入https://testng.org/testng-eclipse-update-site/6.14.3

接下来Next并安装完成即可。

检验一下安装,Perferences里出现TestNG即为安装OK:

1.6 安装浏览器并配置driver

在什么是自动化测试?如何做自动化测试?介绍过GUI自动化的原理,测试用例需要通过webDriver来驱动浏览器,因此需要安装并配置webDriver。

webDriver的安装比较简单,下载解压缩即可。首先查看浏览器版本,以chrome为例,点击帮助->关于Google Chrome即可。这里我的版本号是112.0.5615.87(下载driver没必要完全一致,大版本一致即可):

其次,下载浏览器版本对应的driver,下载地址:http://chromedriver.storage.googleapis.com/index.html

下载解压后有chromedriver.exe,将该exe文件的路径加入PATH。通常,我们会将其放到浏览器的安装目录,不过这一步不是必需的,必需的是将路径加入PATH变量。

这里,解压路径是“D:\Program Files\chromedriver_win32”,变量设置如下(Windows下依次点击 设置-系统-高级系统设置,环境变量):

1.7 安装完毕,验证!

在src/test/java里新建包,新建类(随便命名),写一个最简单的自动化测试代码,右键Run as – TestNG Test,运行成功!

自此,环境已经OK,接下来可以开启web自动化之旅了!

二. 总结与思考

搭建GUI自动化环境是基础,很多同学都倒在了环境搭建上。整理下来思路很清晰:首先明确搭建GUI自动化环境需要使用什么类型的工具,然后确定选择什么工具,再逐个安装配置就可以啦!

工具的安装配置也都是一个套路,都是安装-配置环境变量-修改配置文件。

工具不是唯一的,譬如IDE现在用IDEA很多,本文是以eclipse为例。工具的使用都是相通的,核心是自动化的使用。

环境搭建好了,万里长征才走完了第一步。接下来再深入学习!

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 命令 —— top

Linux 命令 —— top 相对于 ps 是选取一个时间点的进程状态&#xff0c;top 则可以持续检测进程运行的状态。使用方式如下&#xff1a; 用法&#xff1a; top [-d secs] | [-p pid] 选项与参数&#xff1a; -d secs&#xff1a;整个进程界面更新 secs 秒。默认是 5 5 5 秒。…

C++之平衡二叉搜索树查找

个人主页&#xff1a;[PingdiGuo_guo] 收录专栏&#xff1a;[C干货专栏] 大家好&#xff0c;我是PingdiGuo&#xff0c;今天我们来学习平衡二叉搜索树查找。 目录 1.什么是二叉树 2.什么是二叉搜索树 3.什么是平衡二叉搜索树查找 4.如何使用平衡二叉搜索树查找 5.平衡二叉…

一个好看的底部导航栏效果

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>底部导航栏</title> </head> <style&…

Rust学习之Features

Rust学习之Features 一 什么是 Features二 默认 feature三 简单的features应用示例四 可选(optional)的依赖五 依赖的特性5.1 在依赖表中指定5.2 在features表中指定 六 命令行中特性控制七 特性统一路径八 其它8.1 相互排斥特性8.2 观察启用特性8.3 [Feature resolver version…

从源码角度透视QTcpServer:解构QTcpServer的底层原理与技术细节

深入了解QTcpServer的底层原理和技术细节 一、背景二、QTcpServer的基本原理2.1、TCP协议简介2.2、QTcpServer的概念 三、QTcpServer源码解析3.1、QTcpServer的构造函数3.2、调用listen函数启动tcpserver3.3、QSocketNotifier的实现 总结 一、背景 QTcpServer是Qt网络模块中的…

docker 容器指定主机网段

docker 容器指定主机网段。 直接连接到物理网络&#xff1a;使用macvlan技术可以让Docker容器直接连接到物理网络&#xff0c;而不需要通过NAT或端口映射的方式来访问它们。可以提高网络性能和稳定性&#xff0c;同时也可以使容器更加透明和易于管理。 1、首先需要查询网卡的…

vuex store,mutations,getters,actions

文章目录 1.vuex概述2.构建vuex【多组件数据共享】环境Son1.vueSon2.vueApp.vue 3.创建一个空仓库4.如何提供&访问vuex的数据①核心概念 - state状态1.通过store直接访问2.通过辅助函数简化代码 ②核心概念 - mutations&#xff08;粗略&#xff09; 5.核心概念 - mutation…

Leetcode29-最大频率元素计数(3005)

1、题目 给你一个由 正整数 组成的数组 nums 。 返回数组 nums 中所有具有 最大 频率的元素的 总频率 。 元素的 频率 是指该元素在数组中出现的次数。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,2,3,1,4] 输出&#xff1a;4 解释&#xff1a;元素 1 和 2 的频率为 …

python3基础学习一

打印print()函数 R 主要的原因是为防止转义&#xff0c;保证r后面的内容全文输出f “主要作用就是格式化字符串&#xff0c;加上f以后&#xff0c;{“变量/表达式”},花括号里的变量和表达式就可以使用了” def ptSubstr():msg "hello,world!"print(msg[0:-1]);prin…

在Django Admin添加快捷方式django-admin-shortcuts

在Django管理主页上添加简单漂亮的快捷方式。 1.安装 pip install django-admin-shortcuts 2在settings.py注册django-admin-shortcuts INSTALLED_APPS [admin_shortcuts,django.contrib.admin,....... ] 3.添加ADMIN_SHORTCUTS设置 ADMIN_SHORTCUTS [ { ti…

k8s二进制及负载均衡集群部署详解

目录 常见部署方式 二进制部署流程 环境准备 操作系统初始化配置 关闭防火墙 配置SELinux 关闭SWAP 根据规划设置主机名 在master添加hosts&#xff0c;便于主机名解析 调整内核参数 配置时间同步 部署docker引擎 在所有node节点部署docker引擎 部署etcd集群 签发…

合约短线高胜率策略-扭转乾坤指标使用说明

扭转乾坤指标使用说明 行情判断 双绿线 多趋势双红线 空趋势大绿线 小红线 多震荡大红线 小绿线 空震荡 进场条件 趋势行情进场 多趋势 多信号 底金叉 做多空趋势 空信号 顶死叉 做空 震荡行情进场 多震荡 多信号 底金叉 做多多震荡 空信号 顶死叉 做空空…

idea docker 镜像生成太慢太大问题

文章目录 前言一、更小的jdk基础镜像二、服务瘦包&#xff08;thin jar&#xff09;2.1 maven2.2 修改dockerfile2.3 container run options 三、 基础jdk镜像入手&#xff1f;总结 前言 idea docker 内网应用实践遗留问题 idea docker插件 build 服务镜像太慢服务镜像太大 …

【Java程序设计】【C00223】基于Springboot+vue的图书购物商城(论文)

基于Springbootvue的图书购物商城&#xff08;论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springbootvue的前后端分离的图书商城购物系统 本系统分为用户以及管理员2个角色。 用户&#xff1a;用户登录后、可以查看新上架的书籍和新闻等…

npm ERR! reason: certificate has expired(淘宝镜像过期)

npm ERR! request to https://registry.npm.taobao.org/yauzl/-/yauzl-2.4.1.tgz failed, reason: certificate has expired 今天在执行npm install命令时&#xff0c;报错百度了下是淘宝证书过期原因 解决方法一 执行下面两个命令再进行npm install即可 npm cache clean --…

【深度学习】从0完整讲透深度学习第2篇:TensorFlow介绍和基本操作(代码文档已分享)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论深度学习相关知识。可以让大家熟练掌握机器学习基础,如分类、回归&#xff08;含代码&#xff09;&#xff0c;熟练掌握numpy,pandas,sklearn等框架使用。在算法上&#xff0c;掌握神经网络的数学原理&#xff0c;手动实…

02链表:19、删除链表的倒数第N个节点

19、删除链表的倒数第N个节点 文章目录 19、删除链表的倒数第N个节点方法一&#xff1a;快慢指针 思路&#xff1a;使用虚拟头节点快慢指针&#xff0c;fast指针先走n1&#xff0c;直到为null&#xff0c;slow节点刚好在删除元素前一个位置&#xff0c;方便操作 重点&#xff1…

2024美赛数学建模B题思路源码

赛题目的 赛题目的&#xff1a; 问题描述&#xff1a; 解题的关键&#xff1a; 问题一. 问题分析 问题解答 问题二. 问题分析 问题解答 问题三. 问题分析 问题解答 问题四. 问题分析 问题解答 问题五. 问题分析 问题解答

云计算基础(云计算概述)

目录 一、云计算概述 1.1 云计算的概念 1.1.1 云计算解决的问题 1.1.2 云计算的概念 1.1.3 云计算的组成 1.2 云计算主要特征 1.2.1 按需自助服务 1.2.2 泛在接入 1.2.3 资源池化 1.2.4 快速伸缩性 1.2.5 服务可度量 1.3 云计算服务模式 1.3.1 软件即服务(Softwar…

老师罚学生钱违法吗

在教师岗位上耕耘了近十年&#xff0c;我遇到过无数的学生和无数的教学情境。其中&#xff0c;有一个问题始终困扰着我&#xff1a;在某些情况下&#xff0c;我能否用“罚钱”的方式来纠正学生的行为&#xff1f;当然&#xff0c;这还涉及到许多复杂的因素&#xff1a;学校的规…