Java + Selenium 3.x 实现Web自动化 - 1.自动化准备
Posted 幸灾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java + Selenium 3.x 实现Web自动化 - 1.自动化准备相关的知识,希望对你有一定的参考价值。
(一)自动化准备
说明:本文主要记录了基于公司现有项目(一个电子商务平台),从0开始实现UI自动化的历程。从准备阶段,部分内容直接省略了基础知识,一切以最终做成自动化项目为目标,难免会有晦涩之处。文章主要用于记录过程,翻阅回顾。如有记录出错,描述晦涩之处,望读者能及时指出,一起进行讨论交流,以免误导他人。
1 所使用工具的简单介绍
1.java + selenium WebDriver:用于脚本的编写;
2.TestNG:测试框架,用于结构化用例,生成测试报告;
3.log4j2:用于生成日志;
4.arrow插件:用于失败用例的重跑;
5.chrome浏览器;
2 提前安装 jdk1.8以上版本、eclipse、chrome
3 在线安装TestNG
1.打开eclipse,选择菜单【help】->【Install New Software】;
2.填写如下内容
Name:TestNG
Location:http://beust.com/eclipse
3.等待出现插件列表,选择TestNG,一路NEXT到Finish,之后重启eclipse完成安装;
4 在线安装PropertiesEditor插件
PropertiesEditor是eclipse的properties插件,用于将ACSII码转化为中文显示。在.properties文件中不能输入、显示中文,用该插件可以输入、显示中文。
注意:安装成功后,需要对eclipse编码设置为utf-8,否则仍不能显示中文.
1.打开eclipse,选择菜单【help】->【Install New Software】;
2.填写以下内容
Name:PropertiesEditor
Location:http://propedit.sourceforge.jp/eclipse/updates/
3.等待出现插件列表,选择PropertiesEditor,一路NEXT到Finish,之后重启eclipse完成安装;
5 提前下载的内容
1.1 client-combined-3.11.0.jar
1.2 selenium-sever-standalone-3.11.0.jar
1.3 log4j-api-2.11.0.jar
1.4 log4j-core-2.11.0.jar
1.5 webdriver
注意:webdriver需要与浏览器版本对应,推荐使用chrome浏览器和chromeDriver
chrome与chromeDriver版本对应表:http://chromedriver.storage.googleapis.com/2.37/notes.txt
chromeDriver各版本下载链接:http://chromedriver.storage.googleapis.com/index.html
在写本文时,当前使用chrome v65.0版本,chromeDriver 2.36_win64版本
jdk、eclipse、chrome请自行下载,其他下载内容(chromeDriver、jar包)可通过以下链接:
链接:https://pan.baidu.com/s/17VUiF9OAYf89hiaHco0HNw 密码:a7a1
6 创建java Project
6.1 创建Java Project
1.打开eclipse,选择菜单【file】->【new】->【Java Project】;
2.【Project Name】命名为SeleniumTest;
6.2 添加依赖jar包,构建路径
1.右击项目名称,【new】->【Floder】,【Floder Name】填写为lib;
2.lib文件夹主要存放依赖的jar包;
3.将上述jar包复制到lib文件夹;
4.全选jar包,右击,Build Path -> Add to Build Path;
6.3 添加ChromeDriver(浏览器驱动)
项目中创建文件夹res,将chromeDriver复制到res文件夹
6.4 添加TestNG配置文件
右击项目名称,【TestNG】->【convert to TestNG】,出现弹窗如下图,直接点击【Finish】;
6.5 添加TestNG依赖
右击项目名称,Build Path -> Add Libraries,出现弹窗如下图,选择【TestNG】->【Next】->【Finish】;
6.6 配置测试结果输出路径
1.选择菜单【window】->【preferences】(首选项,关于eclipse的基本配置都在这里)
2.选择【TestNG】,在【Output dictionary】处填写”\\result\\test-output“(配置测试结果输出路径,每个项目的测试结果都输出在该项目的result/test-output路径下)
6.7 设置编码格式为UTF-8(非必要)
选择菜单【window】->【preferences】,选择【General】->【Workspace】,选择编码格式为UTF-8
6.8 创建package & class
创建new Package,创建new Class,此时项目结构如下图
建议:
1.测试类的名称不要用Test(会与TestNG注解冲突),建议使用Test_1_OpenWindow、Test_2_Click等,类名中包含序号和功能;
2.包名建议用com.公司名/个人英文名.testcases;
6.9 修改TestNG配置文件
在test标签内,添加classes标签、class标签,如下图
class标签的name属性,是要执行的测试文件路径
7.试运行
现在基本的环境和依赖文件已经配置完成,我们可以来试一下TestNG是怎样执行测试方法的。
1.首先,在Test_1_OpenWindow类中创建方法,输出Hello World;
2.之后,添加@Test注解,并导入相应的依赖类(org.testng.annotations.Test);
3.右击xml文件,【Run As】->【TestNG Suite】;
4.此时,可以在控制台看到,Hello World正常输出,并显示出执行了1条用例,失败0条,跳过0条;
5.文件夹中打开SeleniumTest/result/test-output/index.html,同样可以查看测试运行结果;
注意:在eclipse里面F5刷新一下,就可以看到项目组的result文件夹了
8 关于UI自动化
1.UI自动化的本质就是模拟人工操作。从根本上来说,UI自动化仅包括2个动作:【获取元素】、【操作元素】。
2.我们的测试过程基本是建立在对页面元素的点击、输入、选择等【操作】之上,对结果进行判断。
3.包括我们找到、辨认出要操作的元素,对测试结果进行判断,实质上都是【获取元素】。
4.我们的点击、输入、选择等操作,归纳起来就是【操作元素】。
5.综上,UI自动化并不难,只要学会【获取元素】,之后针对各种元素,学会其【操作】方法,接下来就可以设计用例了。
以上是关于Java + Selenium 3.x 实现Web自动化 - 1.自动化准备的主要内容,如果未能解决你的问题,请参考以下文章
java+selenium webdriver怎么实现数据参数化
Selenium+PageObject+Java实现测试用例
全屏操作在 selenium webdriver 3.x 中不起作用